Files
foxhunt/config/gpu/l40s.toml
jgrusewski 904185004c feat: L40S GPU profile + auto-derive cuda-compute-cap from GPU pool
argo-train.sh now auto-selects cuda-compute-cap based on --gpu-pool:
  - ci-training-h100* → sm_90 (Hopper)
  - ci-training-l40s  → sm_89 (Ada Lovelace)

Added config/gpu/l40s.toml:
  - batch_size=4096 (between H100's 8192 and A100's 2048)
  - buffer_size=300K (scaled for 48GB VRAM)
  - gpu_timesteps_per_episode=2000 (bandwidth-limited)
  - gpu_n_episodes=2048 (scaled from H100's 4096)

GPU profile loader maps "L40S" → "l40s" (was "a100" fallback).

Also fixed pre-existing test drift: num_atoms=52 in h100.toml/a100.toml
was 51 in test expectations (padding alignment for C51 kernels).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 16:59:06 +02:00

17 lines
740 B
TOML

# L40S (48GB GDDR6, Ada Lovelace sm_89) — datacenter GPU, lower bandwidth than H100
# 864 GB/s memory bandwidth vs H100's 3.35 TB/s (4x lower)
# 18,176 CUDA cores, 568 tensor cores (4th gen), FP8 support
[training]
batch_size = 4096 # between H100's 8192 and A100's 2048 — 48GB VRAM allows this
num_atoms = 52
buffer_size = 300000 # scaled for 48GB VRAM (H100=500K at 80GB)
hidden_dim_base = 256
replay_buffer_vram_fraction = 0.0 # exact sizing, consistent with H100
[experience]
gpu_timesteps_per_episode = 2000 # between H100's 5000 and A100's 500 — bandwidth-limited
gpu_n_episodes = 2048 # 18176 CUDA cores scaled down from H100's 4096
[cuda]
cuda_stack_bytes = 65536 # 64KB (same as H100/A100)