Skip to content

do not constexpr cast to enum a value that is outside the enum's range - #4905

Merged
ericniebler merged 1 commit into
NVIDIA:mainfrom
ericniebler:cudax-device-attribute-fix
Jun 5, 2025
Merged

do not constexpr cast to enum a value that is outside the enum's range#4905
ericniebler merged 1 commit into
NVIDIA:mainfrom
ericniebler:cudax-device-attribute-fix

Conversation

@ericniebler

@ericniebler ericniebler commented Jun 4, 2025

Copy link
Copy Markdown
Contributor

Description

For older CTK's, cudax's device attributes code defines the following:

  static constexpr type fabric = static_cast<::cudaMemAllocationHandleType>(0x8);

the trouble is that that is not actually valid code. 0x8 is outside the range of the cudaMemAllocationHandleType enum before 12.4. I'm not sure why we are skating by in the tests. maybe it's because we use the system_header pragma.

but clangd flags this as broken, which causes most of the cudax headers appear red (as having errors) in vscode when using one of the cuda12.0 devcontainers. and that makes clangd less useful.

i like clangd. i also like conforming code. make the class static an inline const instead of constexpr.

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@ericniebler
ericniebler requested a review from a team as a code owner June 4, 2025 18:30
@ericniebler
ericniebler requested a review from pciolkosz June 4, 2025 18:30
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jun 4, 2025
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jun 4, 2025
@github-actions

github-actions Bot commented Jun 4, 2025

Copy link
Copy Markdown
Contributor
🟩 CI finished in 22m 24s: Pass: 100%/30 | Total: 2h 35m | Avg: 5m 11s | Max: 17m 15s | Hits: 97%/15084
  • 🟩 cudax: Pass: 100%/26 | Total: 2h 21m | Avg: 5m 26s | Max: 17m 15s | Hits: 97%/15084

    🟩 cpu
      🟩 amd64              Pass: 100%/22  | Total:  2h 08m | Avg:  5m 50s | Max: 17m 15s | Hits:  96%/12672 
      🟩 arm64              Pass: 100%/4   | Total: 13m 00s | Avg:  3m 15s | Max:  3m 31s | Hits:  99%/2412  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 27m 32s | Avg:  9m 10s | Max: 17m 15s | Hits:  76%/1514  
      🟩 12.9               Pass: 100%/23  | Total:  1h 53m | Avg:  4m 56s | Max: 11m 24s | Hits:  99%/13570 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 27m 32s | Avg:  9m 10s | Max: 17m 15s | Hits:  76%/1514  
      🟩 nvcc12.9           Pass: 100%/23  | Total:  1h 53m | Avg:  4m 56s | Max: 11m 24s | Hits:  99%/13570 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/26  | Total:  2h 21m | Avg:  5m 26s | Max: 17m 15s | Hits:  97%/15084 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total:  8m 04s | Avg:  4m 02s | Max:  4m 40s | Hits:  90%/1210  
      🟩 Clang15            Pass: 100%/1   | Total:  3m 38s | Avg:  3m 38s | Max:  3m 38s | Hits:  99%/603   
      🟩 Clang16            Pass: 100%/1   | Total:  3m 39s | Avg:  3m 39s | Max:  3m 39s | Hits:  99%/603   
      🟩 Clang17            Pass: 100%/1   | Total:  3m 36s | Avg:  3m 36s | Max:  3m 36s | Hits:  99%/603   
      🟩 Clang18            Pass: 100%/1   | Total:  3m 19s | Avg:  3m 19s | Max:  3m 19s | Hits:  99%/603   
      🟩 Clang19            Pass: 100%/4   | Total: 18m 37s | Avg:  4m 39s | Max:  8m 51s | Hits:  99%/2412  
      🟩 GCC10              Pass: 100%/2   | Total:  9m 29s | Avg:  4m 44s | Max:  5m 37s | Hits:  90%/1210  
      🟩 GCC11              Pass: 100%/1   | Total:  3m 50s | Avg:  3m 50s | Max:  3m 50s | Hits:  99%/603   
      🟩 GCC12              Pass: 100%/1   | Total:  4m 11s | Avg:  4m 11s | Max:  4m 11s | Hits:  99%/603   
      🟩 GCC13              Pass: 100%/8   | Total: 39m 45s | Avg:  4m 58s | Max: 10m 57s | Hits:  99%/4824  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 17m 15s | Avg: 17m 15s | Max: 17m 15s | Hits:  58%/304   
      🟩 MSVC14.43          Pass: 100%/1   | Total: 11m 24s | Avg: 11m 24s | Max: 11m 24s | Hits:  95%/304   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 14m 34s | Avg:  7m 17s | Max:  7m 24s | Hits:  97%/1202  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total: 40m 53s | Avg:  4m 05s | Max:  8m 51s | Hits:  98%/6034  
      🟩 GCC                Pass: 100%/12  | Total: 57m 15s | Avg:  4m 46s | Max: 10m 57s | Hits:  97%/7240  
      🟩 MSVC               Pass: 100%/2   | Total: 28m 39s | Avg: 14m 19s | Max: 17m 15s | Hits:  76%/608   
      🟩 NVHPC              Pass: 100%/2   | Total: 14m 34s | Avg:  7m 17s | Max:  7m 24s | Hits:  97%/1202  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 11m 12s | Avg:  5m 36s | Max:  7m 56s | Hits:  99%/1206  
      🟩 rtx2080            Pass: 100%/24  | Total:  2h 10m | Avg:  5m 25s | Max: 17m 15s | Hits:  96%/13878 
    🟩 jobs
      🟩 Build              Pass: 100%/23  | Total:  1h 53m | Avg:  4m 56s | Max: 17m 15s | Hits:  96%/13275 
      🟩 Test               Pass: 100%/3   | Total: 27m 44s | Avg:  9m 14s | Max: 10m 57s | Hits:  99%/1809  
    🟩 sm
      🟩 90                 Pass: 100%/3   | Total: 14m 25s | Avg:  4m 48s | Max:  7m 56s | Hits:  99%/1809  
      🟩 90a                Pass: 100%/1   | Total:  3m 14s | Avg:  3m 14s | Max:  3m 14s | Hits:  99%/603   
    🟩 std
      🟩 17                 Pass: 100%/4   | Total: 17m 04s | Avg:  4m 16s | Max:  7m 24s | Hits:  99%/2410  
      🟩 20                 Pass: 100%/22  | Total:  2h 04m | Avg:  5m 38s | Max: 17m 15s | Hits:  96%/12674 
    
  • 🟩 packaging: Pass: 100%/4 | Total: 14m 17s | Avg: 3m 34s | Max: 3m 49s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 14m 17s | Avg:  3m 34s | Max:  3m 49s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total:  7m 30s | Avg:  3m 45s | Max:  3m 49s
      🟩 12.9               Pass: 100%/2   | Total:  6m 47s | Avg:  3m 23s | Max:  3m 29s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total:  7m 30s | Avg:  3m 45s | Max:  3m 49s
      🟩 nvcc12.9           Pass: 100%/2   | Total:  6m 47s | Avg:  3m 23s | Max:  3m 29s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 14m 17s | Avg:  3m 34s | Max:  3m 49s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  3m 49s | Avg:  3m 49s | Max:  3m 49s
      🟩 Clang19            Pass: 100%/1   | Total:  3m 29s | Avg:  3m 29s | Max:  3m 29s
      🟩 GCC12              Pass: 100%/1   | Total:  3m 41s | Avg:  3m 41s | Max:  3m 41s
      🟩 GCC13              Pass: 100%/1   | Total:  3m 18s | Avg:  3m 18s | Max:  3m 18s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  7m 18s | Avg:  3m 39s | Max:  3m 49s
      🟩 GCC                Pass: 100%/2   | Total:  6m 59s | Avg:  3m 29s | Max:  3m 41s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 14m 17s | Avg:  3m 34s | Max:  3m 49s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 14m 17s | Avg:  3m 34s | Max:  3m 49s
    

👃 Inspect Changes

Modifications in project?

Project
CCCL Infrastructure
CCCL Packaging
libcu++
CUB
Thrust
+/- CUDA Experimental
stdpar
python
CCCL C Parallel Library
Catch2Helper

Modifications in project or dependencies?

Project
CCCL Infrastructure
+/- CCCL Packaging
libcu++
CUB
Thrust
+/- CUDA Experimental
stdpar
python
CCCL C Parallel Library
Catch2Helper

🏃‍ Runner counts (total jobs: 30)

# Runner
17 linux-amd64-cpu16
6 linux-amd64-gpu-rtx2080-latest-1
4 linux-arm64-cpu16
2 windows-amd64-cpu16
1 linux-amd64-gpu-h100-latest-1

@miscco

miscco commented Jun 4, 2025

Copy link
Copy Markdown
Contributor

9w907z

@ericniebler
ericniebler merged commit a97d080 into NVIDIA:main Jun 5, 2025
@github-project-automation github-project-automation Bot moved this from In Review to Done in CCCL Jun 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants