Skip to content

Add portable CUDA architecture support - #110

Merged
Xuan-1998 merged 1 commit into
multi-gpu-multimodefrom
codex/gpu-architecture-compatibility
Aug 13, 2026
Merged

Add portable CUDA architecture support#110
Xuan-1998 merged 1 commit into
multi-gpu-multimodefrom
codex/gpu-architecture-compatibility

Conversation

@jayzou3773

Copy link
Copy Markdown
Collaborator

Summary

  • add toolkit-aware portable CUDA architecture profiles
  • emit native cubins for A100, L40/L40S, H100/H200, and B100/B200 with PTX fallbacks
  • report build/runtime GPU details and P2P availability during initialization
  • move the default Docker build to CUDA 12.9.1 for native Blackwell code
  • add a cuobjdump-based artifact checker, unit tests, CI coverage, and build documentation

Build behavior

CUDA toolkit Native cubins Embedded PTX
12.8+ sm_80, sm_89, sm_90, sm_100 compute_80, compute_100
< 12.8 sm_80, sm_89, sm_90 compute_80, compute_90

Both CMAKE_CUDA_ARCHITECTURES and LPSIM_CUDA_ARCHITECTURES remain available for custom or machine-specific builds.

Validation

Local

  • python3 tests/test_cuda_artifacts.py
  • demand generation and spatial partition smoke tests
  • git diff --check

CUDA 12.4 compatibility build

  • configured and built with the same sm_80 target used by the current GitHub Actions workflow
  • verified sm_80 cubin and compute_80 PTX with cuobjdump

B200 (CUDA 12.9.1, driver API 13.2)

  • portable image compiled successfully
  • verified native cubins: sm_80, sm_89, sm_90, sm_100
  • verified PTX: compute_80, compute_100
  • full regression passed with CUDA_DISABLE_PTX_JIT=1
  • full regression passed with CUDA_FORCE_PTX_JIT=1
  • two-GPU probe reported bidirectional P2P availability
  • average travel time: 53.86 minutes in both loading modes

H100 (Orchard job 126116, driver 580.159.03)

  • ran the same portable binary produced on B200
  • full regression passed with CUDA_DISABLE_PTX_JIT=1
  • full regression passed with CUDA_FORCE_PTX_JIT=1
  • average travel time: 53.86 minutes in both loading modes

Notes

The simulation algorithm and output schemas are unchanged. Cross-GPU validation compares invariants and numeric tolerances rather than requiring byte-identical floating-point output.

Closes #109

@jayzou3773
jayzou3773 requested a review from Xuan-1998 August 10, 2026 17:50
@jayzou3773
jayzou3773 marked this pull request as ready for review August 11, 2026 04:06

@Xuan-1998 Xuan-1998 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great thanks

@Xuan-1998
Xuan-1998 merged commit 8ab0728 into multi-gpu-multimode Aug 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add portable CUDA builds for multiple NVIDIA GPU architectures

2 participants