Add CUDA 13.x support - #4987
Open
preslaff wants to merge 1 commit into
Open
Conversation
- configure: accept CUDA 13.x (host g++ <= 15 per crt/host_config.h) and add default CUDA_ARCH gencode lists for it; CUDA 13 dropped all pre-Turing gencodes, so the minimum is sm_75. - cu-device.cc: CUDA 13 removed cudaDeviceProp::computeMode; query the compute mode via cudaDeviceGetAttribute(cudaDevAttrComputeMode) instead, which is available on all toolkit versions Kaldi supports. Tested: CUDA 13.1, driver 595.71, RTX 5070 Ti (sm_120), g++ 13.3 (Ubuntu 24.04), MKL. Clean full build; cuda-gpu-available passes its GPU computation test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CUDA 13 currently fails at two points:
./configure --use-cuda=yesrejects it: "Unsupported CUDA version 13_1" (no13_*case).cudamatrix/cu-device.ccfails to compile: CUDA 13 removedcudaDeviceProp::computeMode.This PR:
13_*case to configure — host g++ bound of <= 15 taken from CUDA 13's owncrt/host_config.h(#if __GNUC__ > 15error),CUSOLVER=trueas for 12.x;CUDA_ARCHgencode lists for 13.x (x86_64/ppc64le and aarch64) — CUDA 13 dropped all pre-Turing gencodes, so the minimum issm_75, and Blackwell (sm_100/sm_120) is included since those GPUs are the main reason users end up on CUDA 13;computeModestruct read inCuDevice::IsComputeExclusive()withcudaDeviceGetAttribute(cudaDevAttrComputeMode, ...), which is available in every toolkit version Kaldi supports, so the change is backward-compatible.Tested: CUDA 13.1, driver 595.71, RTX 5070 Ti (sm_120), g++ 13.3, Ubuntu 24.04, MKL. Clean full build;
cuda-gpu-availablepasses its GPU computation test; nnet3 training runs on GPU.🤖 Generated with Claude Code