Skip to content

Commit addec39

Browse files
committed
fix(ci): align cuda toolkit roots and tags
1 parent a7b8f94 commit addec39

1 file changed

Lines changed: 17 additions & 16 deletions

File tree

.github/workflows/build-wheels-cuda.yaml

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,11 @@ jobs:
100100
run: |
101101
$cudaVersion = $env:CUDAVER
102102
if ($IsLinux) {
103-
mamba install -y --override-channels -c "nvidia/label/cuda-$cudaVersion" -c conda-forge "cuda-toolkit=$cudaVersion" "cuda-nvcc_linux-64=$cudaVersion"
103+
# Keep nvcc, cudart, and headers on the same NVIDIA label so the
104+
# detected toolkit version matches the published wheel tag.
105+
mamba install -y --override-channels -c "nvidia/label/cuda-$cudaVersion" "cuda-toolkit=$cudaVersion" "cuda-nvcc_linux-64=$cudaVersion" cuda-cudart cuda-cudart-dev
104106
} else {
105-
mamba install -y --override-channels -c "nvidia/label/cuda-$cudaVersion" -c conda-forge "cuda-toolkit=$cudaVersion"
107+
mamba install -y --override-channels -c "nvidia/label/cuda-$cudaVersion" "cuda-toolkit=$cudaVersion"
106108
}
107109
if ($LASTEXITCODE -ne 0) {
108110
exit $LASTEXITCODE
@@ -115,28 +117,25 @@ jobs:
115117
$env:CUDA_HOME = $env:CONDA_PREFIX
116118
$env:CUDA_TOOLKIT_ROOT_DIR = $env:CONDA_PREFIX
117119
$cudaHostCompilerArg = ''
120+
$env:CMAKE_ARGS = ''
118121
if ($IsLinux) {
119122
if (Test-Path '/usr/bin/g++-12') {
120123
$env:CC = '/usr/bin/gcc-12'
121124
$env:CXX = '/usr/bin/g++-12'
122125
$env:CUDAHOSTCXX = '/usr/bin/g++-12'
123126
$cudaHostCompilerArg = " -DCMAKE_CUDA_HOST_COMPILER=$env:CUDAHOSTCXX"
124127
}
125-
$cudaTargetRoot = Join-Path $env:CONDA_PREFIX 'targets/x86_64-linux'
126-
if (Test-Path (Join-Path $cudaTargetRoot 'include/cuda_runtime.h')) {
127-
$env:CUDAToolkit_ROOT = $cudaTargetRoot
128-
$env:CUDA_TOOLKIT_ROOT_DIR = $cudaTargetRoot
129-
$env:CMAKE_ARGS = "-DCUDAToolkit_ROOT=$cudaTargetRoot -DCUDA_TOOLKIT_ROOT_DIR=$cudaTargetRoot$cudaHostCompilerArg"
130-
$env:CPATH = "$cudaTargetRoot/include:$env:CPATH"
131-
$env:CPLUS_INCLUDE_PATH = "$cudaTargetRoot/include:$env:CPLUS_INCLUDE_PATH"
132-
$env:LIBRARY_PATH = "$cudaTargetRoot/lib:$env:LIBRARY_PATH"
133-
$env:LD_LIBRARY_PATH = "$cudaTargetRoot/lib:$env:CONDA_PREFIX/lib:$env:LD_LIBRARY_PATH"
128+
if (Test-Path (Join-Path $env:CONDA_PREFIX 'include/cuda_runtime.h')) {
129+
$env:CUDAToolkit_ROOT = $env:CONDA_PREFIX
130+
$env:CUDA_TOOLKIT_ROOT_DIR = $env:CONDA_PREFIX
131+
$env:CMAKE_ARGS = "-DCUDAToolkit_ROOT=$env:CONDA_PREFIX -DCUDA_TOOLKIT_ROOT_DIR=$env:CONDA_PREFIX$cudaHostCompilerArg"
132+
$env:CPATH = "$env:CONDA_PREFIX/include:$env:CPATH"
133+
$env:CPLUS_INCLUDE_PATH = "$env:CONDA_PREFIX/include:$env:CPLUS_INCLUDE_PATH"
134+
$env:LIBRARY_PATH = "$env:CONDA_PREFIX/lib:$env:LIBRARY_PATH"
135+
$env:LD_LIBRARY_PATH = "$env:CONDA_PREFIX/lib:$env:LD_LIBRARY_PATH"
134136
} else {
135-
$env:LD_LIBRARY_PATH = $env:CONDA_PREFIX + '/lib:' + $env:LD_LIBRARY_PATH
136137
$env:CMAKE_ARGS = $cudaHostCompilerArg.Trim()
137138
}
138-
} else {
139-
$env:CMAKE_ARGS = ''
140139
}
141140
$nvccPath = Join-Path $env:CONDA_PREFIX 'bin/nvcc'
142141
if (-not (Test-Path $nvccPath)) {
@@ -145,14 +144,16 @@ jobs:
145144
if (-not (Test-Path $nvccPath)) {
146145
throw 'Failed to find nvcc in the conda environment'
147146
}
147+
$env:CUDACXX = $nvccPath
148+
$env:PATH = "$(Split-Path $nvccPath):$env:PATH"
148149
$nvccVersion = ((& $nvccPath --version) | Select-String 'release ([0-9]+\.[0-9]+)').Matches[0].Groups[1].Value
149150
if (-not $nvccVersion) {
150151
throw 'Failed to detect the installed CUDA toolkit version'
151152
}
152153
$cudaTagVersion = $nvccVersion.Replace('.','')
153154
$env:VERBOSE = '1'
154-
# Pin a portable architecture list instead of CMake's `all`, which now
155-
# includes future targets the hosted-runner toolchains cannot assemble.
155+
# Keep a portable SM set, including sm_70, instead of CMake's `all`,
156+
# which now pulls in future targets the hosted-runner toolchains cannot assemble.
156157
$env:CMAKE_ARGS = "-DGGML_CUDA_FORCE_MMQ=ON -DGGML_CUDA=on -DCMAKE_CUDA_ARCHITECTURES=70;75;80;86;89;90 -DCMAKE_CUDA_FLAGS=--allow-unsupported-compiler $env:CMAKE_ARGS"
157158
# if ($env:AVXVER -eq 'AVX') {
158159
$env:CMAKE_ARGS = $env:CMAKE_ARGS + ' -DGGML_AVX2=off -DGGML_FMA=off -DGGML_F16C=off'

0 commit comments

Comments
 (0)