-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
135 lines (97 loc) · 2.81 KB
/
justfile
File metadata and controls
135 lines (97 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# kvik-rs justfile
# https://github.com/casey/just
# List available recipes
default:
@just --list
# ---------- Build ----------
# Check compilation without producing binaries
check:
cargo check
# Build in debug mode
build:
cargo build
# Build in release mode
build-release:
cargo build --release
# Build with a specific CUDA feature flag (e.g., just build-cuda cuda-12060)
build-cuda feature:
cargo build --no-default-features --features {{ feature }}
# ---------- Test ----------
# Run all tests
test:
cargo test
# Run all tests with output shown
test-verbose:
cargo test -- --nocapture
# Run unit tests only (lib target)
test-unit:
cargo test --lib
# Run integration tests only (tests/ directory)
test-integration:
cargo test --tests
# Run a specific test by name
test-one name:
cargo test {{ name }} -- --exact
# Run tests matching a pattern
test-filter pattern:
cargo test {{ pattern }}
# Run tests single-threaded (avoids env var races in config_env tests)
test-serial:
cargo test -- --test-threads=1
# ---------- Lint ----------
# Run clippy with all targets
clippy:
cargo clippy --all-targets -- -D warnings
# Run rustfmt check (no changes)
fmt-check:
cargo fmt -- --check
# Run rustfmt
fmt:
cargo fmt
# Run all lint checks (clippy + fmt)
lint: clippy fmt-check
# ---------- Doc ----------
# Build documentation
doc:
cargo doc --no-deps
# Build and open documentation in browser
doc-open:
cargo doc --no-deps --open
# ---------- Examples ----------
# Run the GDS device I/O example
example-gds:
cargo run --example basic_gds_io
# Run the host I/O example
example-host:
cargo run --example basic_host_io
# Run the parallel I/O example
example-parallel:
cargo run --example parallel_io
# Run a specific example by name
example name:
cargo run --example {{ name }}
# Run GPU VRAM stress tests (requires CUDA GPU, runs single-threaded)
test-vram-stress:
cargo test --test gpu_vram_stress -- --ignored --test-threads=1 --nocapture
# Run GDS memory transfer validation test (requires CUDA + GDS)
test-gds-memory:
cargo test --test gds_memory_transfer -- --ignored --nocapture
# ---------- Benchmarks ----------
# Run all benchmarks
bench-all: bench-host bench-device bench-parallel
# Host I/O throughput (no GPU required)
bench-host *args:
cargo run --example bench_host_io --release -- {{args}}
# Device I/O throughput (requires CUDA + GDS)
bench-device *args:
cargo run --example bench_device_io --release -- {{args}}
# Parallel I/O scaling (no GPU required)
bench-parallel *args:
cargo run --example bench_parallel_io --release -- {{args}}
# ---------- Clean ----------
# Remove build artifacts
clean:
cargo clean
# ---------- CI-style ----------
# Run the full CI check suite (fmt, clippy, test, doc)
ci: fmt-check clippy test doc