Root cause: shmem_max_in_dim only included trunk dims (state_dim, shared_h1, shared_h2) but not head dims (value_h, adv_h). When hidden_dim_base=32 made the trunk narrow while heads stayed at 128, the BF16 weight tile for branch output (255×128=32640 BF16 elements) overflowed the shared memory region (12288 BF16 elements). On H100 the overflow landed in unused-but-mapped hardware shmem (silent corruption). On RTX 3050 (48KB physical shmem) it hit unmapped memory → CUDA_ERROR_ILLEGAL_ADDRESS. Changes: - gpu_dqn_trainer.rs: shmem_max_in_dim includes value_h/adv_h - Remove all #[ignore] from smoke tests (feature_coverage, training_stability, gpu_residency) - Smoke tests use real .dbn data from test_data/ (hard error if missing) - Remove synthetic_data() fallback — no fake data in tests - GPU-direct DtoD training path (train_step_gpu, FusedTrainScalars) - GPU-native PER priority update kernel (zero CPU readback) - IQN dual-head integration (gpu_iqn_head.rs) - BF16 dtype fixes across 6 model adapters - Hyperopt 30D→31D (iqn_lambda) - portfolio_transformer: unconditional BF16 (remove dead CPU branches) - liquid/adapter: all tests use Cuda(0) directly - Fix pre-existing gpu_kernel_parity_test.rs (stale args) - Fix pre-existing evaluate_baseline.rs (removed fields) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
46 lines
1.3 KiB
TOML
46 lines
1.3 KiB
TOML
[env]
|
|
SQLX_OFFLINE = "false"
|
|
# GPU tests deadlock under parallel execution (shared CUDA context + 4GB RTX 3050).
|
|
# Single-threaded by default; CI overrides via RUST_TEST_THREADS in workflow.
|
|
RUST_TEST_THREADS = "1"
|
|
|
|
[cargo-new]
|
|
vcs = "none"
|
|
|
|
[net]
|
|
git-fetch-with-cli = true
|
|
|
|
[build]
|
|
# jobs: omitted → cargo uses all logical CPUs (scales to any machine)
|
|
incremental = true
|
|
pipelining = true
|
|
rustflags = [
|
|
"-D", "unsafe_op_in_unsafe_fn",
|
|
"-D", "clippy::undocumented_unsafe_blocks",
|
|
"-W", "rust_2024_idioms",
|
|
"-C", "force-frame-pointers=yes",
|
|
"-C", "relocation-model=pic",
|
|
]
|
|
|
|
[term]
|
|
verbose = false
|
|
progress.when = "auto"
|
|
|
|
[target.x86_64-unknown-linux-gnu]
|
|
linker = "clang"
|
|
rustflags = [
|
|
"-C", "link-arg=-fuse-ld=mold",
|
|
"-C", "link-arg=-Wl,-z,relro,-z,now",
|
|
"-C", "link-arg=-Wl,--as-needed",
|
|
# AVX2/FMA baseline — matches both Scaleway L4/H100 and most dev machines
|
|
"-C", "target-cpu=x86-64-v3",
|
|
"-C", "target-feature=+avx2,+fma,+bmi2",
|
|
# opt-level and codegen-units are set per-profile, NOT here.
|
|
# Setting them here would override ALL profiles (dev/test included),
|
|
# forcing full O3 + single-thread codegen on test builds.
|
|
]
|
|
|
|
|
|
# Profile definitions live in Cargo.toml — [profile.*] blocks in config.toml
|
|
# are silently ignored by Cargo. Do NOT add profiles here.
|