Repository navigation
Conversation
…k and nvFatbin tests The four architecture lists stopped at sm_100 and had no arch-specific target, so nothing exercised the "a" targets or sm_103 (B300 / GB300), where nvJitLink no longer serves sm_103 from sm_100 code (the reason the RDC fixture moved to -arch=all in NVIDIA#2296). Add sm_90a, sm_103 and sm_103a. In the nvJitLink tests the PTX versions pair with the architectures, so the new entries use each target's minimum PTX ISA version: 8.0 for sm_90a and 8.8 for sm_103 / sm_103a. The nvFatbin tests take the PTX version as an independent parameter, so their version list is unchanged. Tests written with Claude Opus 5.5 and reviewed by the contributor. Signed-off-by: 0z5a <dezhen.lu@student.uni-tuebingen.de>
📝 Summary
Priority: Change: Other Merge Risk:
|
There was a problem hiding this comment.
Actionable comments posted: 2

Review info
-
Run configuration-
- Source mode: Auto
- Repository: NVIDIA/cuda-python
- Branch: main
- File: .coderabbit.yaml
- Commit: a2fb804
- Layers: Repository YAML
- Review profile: CHILL
- Plan: Enterprise
- Run ID:
0584a669-5271-4431-a838-47d40421e806
Files selected for processing: 4-
cuda_bindings_13/tests/legacy_api/test_legacy_nvfatbin.pycuda_bindings_13/tests/legacy_api/test_legacy_nvjitlink.pycuda_bindings_13/tests/test_nvfatbin.pycuda_bindings_13/tests/test_nvjitlink.py
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.
-
| from cuda.bindings import nvfatbin, nvrtc | ||
|
|
||
| ARCHITECTURES = ["sm_75", "sm_80", "sm_90", "sm_100"] | ||
| ARCHITECTURES = ["sm_75", "sm_80", "sm_90", "sm_90a", "sm_100", "sm_103", "sm_103a"] |
There was a problem hiding this comment.
important: Do not add new architecture cases to this legacy test list. The tests/legacy_api rule permits updates only when needed to fix test failures. This change adds sm_90a, sm_103, and sm_103a for coverage. Keep these additions in the canonical tests/test_nvfatbin.py list unless a specific legacy failure requires them.
Source: Coding guidelines
| ARCHITECTURES = ["sm_75", "sm_80", "sm_90", "sm_90a", "sm_100", "sm_103", "sm_103a"] | ||
| PTX_VERSIONS = ["6.4", "7.0", "8.5", "8.0", "8.8", "8.8", "8.8"] |
There was a problem hiding this comment.
important: Keep new architecture coverage out of the legacy suite.
These entries add test coverage; they do not fix a reported legacy test failure. Keep the new cases in cuda_bindings_13/tests/test_nvjitlink.py. Revert the additions here unless they fix a specific failing legacy test. As per coding guidelines: “These test files should not be added to, only updated when necessary to fix test failures.”
Source: Coding guidelines
Description
closes #3217
The architecture lists in the four nvJitLink / nvFatbin test files stop at
sm_100and contain no arch-specific target:tests/test_nvjitlink.pytests/test_nvfatbin.pytests/legacy_api/test_legacy_nvjitlink.pytests/legacy_api/test_legacy_nvfatbin.pySo nothing exercises the
atargets, orsm_103(B300 / GB300). That is where nvJitLink stopped servingsm_103fromsm_100code, which is why #2296 moved the RDC fixture to-arch=all.This PR adds
sm_90a,sm_103andsm_103a:zip), so the new entries use each target's minimum PTX ISA version: 8.0 forsm_90a, and 8.8 forsm_103/sm_103a.The tests were written with Claude Opus 5.5 and reviewed by the contributor. The PR changes only existing parametrize lists and adds no test function.
Testing
Both counts cover the four files, run with
nvcconPATHso that the nvFatbin object fixtures run.These tests compile and link, but never launch anything. To check that the new
atargets also load, a separate script (not part of this PR) producedsm_103aimages on the B300 andsm_90aimages on the GH200:It loaded each image with
cuModuleLoadData, ran a kernel from it and checked the result. All three passed on both machines.The runs used
2da9c65a; the branch is rebased onto currentmain, whose two new commits do not touch these test files.Checklist