Files
foxhunt/.cargo/config.toml
jgrusewski ad28482a93 fix(cuda): shmem tile overflow → CUDA_ERROR_ILLEGAL_ADDRESS on RTX 3050
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>
2026-03-17 08:34:51 +01:00

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.