Sm90 (H100) support for cuda.jl

Does CUDA.jl not yet support Hopper gpus (sm90)?

I get the following error when trying to execute any kernels:

ERROR: LoadError: CUDA error: device kernel image is invalid (code 300, ERROR_INVALID_SOURCE)

Here’s my env:

julia> CUDA.versioninfo()
CUDA runtime 12.0, local installation
CUDA driver 12.1
NVIDIA driver 525.85.12, originally for CUDA 12.0

Libraries: 
- CUBLAS: 12.0.0
- CURAND: 10.3.1
- CUFFT: 11.0.0
- CUSOLVER: 11.4.2
- CUSPARSE: 12.0.0
- CUPTI: 18.0.0
- NVML: 12.0.0+525.85.12

Toolchain:
- Julia: 1.8.5
- LLVM: 13.0.1
- PTX ISA support: 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 6.0, 6.1, 6.3, 6.4, 6.5, 7.0, 7.1, 7.2
- Device capability support: sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86

Environment:
- JULIA_CUDA_MEMORY_POOL: none

8 devices:
  0: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  1: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  2: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  3: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  4: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  5: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  6: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)
  7: NVIDIA H100 (sm_90, 95.076 GiB / 95.577 GiB available)

I can see that sm90 is not listed in Device capability support… what needs to be done to support it?

First thing I would do is try everything on Julia 1.9 (which comes with a newer LLVM) and with the latest CUDA.jl.

Thanks @carstenbauer. Unfortunately, even with Julia 1.9 and using CUDA.jl from it’s main branch on Github, I still have the same issue (no support for sm_90).

Hmm it looks like it requires LLVM v16 (the most recent julia 1.9 binaries ship with 14):

I suppose I could build Julia using a newer version of LLVM (and apply the patches):

Before I do so, are there any other alternative options out there?