From 940f6e83ef7a185e7c6cdba2b12d40c4cd083bc9 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 17 Mar 2025 15:55:44 +0100 Subject: [PATCH 01/14] ci : add ccache action to windows-cublas job This commit adds the ccache action to the windows-cublas job. This will allow us to cache the build artifacts and hopefully speed up the build process. --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9800338520..70a585181c3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -590,6 +590,13 @@ jobs: - name: Clone repository uses: actions/checkout@v4 + - name: Install ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ${{ github.job }}-${{ matrix.cuda-toolkit }}-${{ matrix.build }} + variant: sccache + evict-old-files: 1d + - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 From 4e84e1fe72c34a9eeee35afd1b9d01475945244c Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 07:31:46 +0100 Subject: [PATCH 02/14] ci : add nvcc compilation cache to windows-cublas This commit adds a directory to store the cuda compilation cache and also caches this directory in github actions. The motivation is to reduce the compilation time of the CUDA code. The ccache should still help with the host part of the compilation but it did not help with the CUDA code. This also addes the --parallel (-j) flag to the cmake build command to use all the available cores. --- .github/workflows/build.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 70a585181c3..7e5b5e724cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -597,6 +597,20 @@ jobs: variant: sccache evict-old-files: 1d + - name: Configure CUDA compilation cache + run: | + New-Item -Path "${{ github.workspace }}/cuda_cache" -ItemType Directory -Force + echo "CUDA_CACHE_PATH=${{ github.workspace }}/cuda_cache" | Out-File -FilePath $env:GITHUB_ENV -Append + echo "CUDA_CACHE_MAXSIZE=4294967296" | Out-File -FilePath $env:GITHUB_ENV -Append + + - name: Cache CUDA compilation results + uses: actions/cache@v3 + with: + path: ${{ github.workspace }}/cuda_cache + key: cuda-cache-${{ runner.os }}-${{ matrix.cuda-toolkit }}-${{ hashFiles('**/*.cu', '**/*.cuh') }} + restore-keys: | + cuda-cache-${{ runner.os }}-${{ matrix.cuda-toolkit }}- + - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 @@ -631,7 +645,7 @@ jobs: shell: cmd run: | cd ./build - cmake --build . --config ${{ matrix.build }} + cmake --build . --config ${{ matrix.build }} -j %NUMBER_OF_PROCESSORS% - name: Copy CUDA DLLs run: | From 00edb1d453196c653d824d06edff9beee0ffec0c Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 10:39:16 +0100 Subject: [PATCH 03/14] ci : add sccache compiler launcher for windows-cublas-ci This commit add sccache compiler launcher for windows-cublas-ci to hopefully enable the sccache to be used. --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e5b5e724cc..503cc29f868 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -639,6 +639,11 @@ jobs: -DGGML_CUDA=${{ matrix.cublas }} ^ -DCMAKE_CUDA_ARCHITECTURES=all ^ -DWHISPER_SDL2=${{ matrix.sdl2 }} ^ + -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_C_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^ + -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded ^ + -DCMAKE_POLICY_CMP0141=NEW ^ -DSDL2_DIR="%SDL2_DIR%" - name: Build Project From 64eeff6fc8a23ce8afd560fef20fb1b4a2ddd2c5 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 11:01:31 +0100 Subject: [PATCH 04/14] ci : fix CUDA_CACHE_PATH for Windows This commit updates the CUDA_CACHE_PATH to use backslashes for Windows. --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 503cc29f868..420a3717ee4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -599,8 +599,8 @@ jobs: - name: Configure CUDA compilation cache run: | - New-Item -Path "${{ github.workspace }}/cuda_cache" -ItemType Directory -Force - echo "CUDA_CACHE_PATH=${{ github.workspace }}/cuda_cache" | Out-File -FilePath $env:GITHUB_ENV -Append + New-Item -Path "${{ github.workspace }}\cuda_cache" -ItemType Directory -Force + echo "CUDA_CACHE_PATH=${{ github.workspace }}\cuda_cache" | Out-File -FilePath $env:GITHUB_ENV -Append echo "CUDA_CACHE_MAXSIZE=4294967296" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Cache CUDA compilation results From 5d812a46fd460392a5c0379f6fdd8f8ed025fc3f Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 11:20:55 +0100 Subject: [PATCH 05/14] ci : move cuda-toolkit installation before configuring sccache This commit moves the installation of the CUDA Toolkit before configuring sccache. This is to aviod it being cached. --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 420a3717ee4..9a70576843a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -597,6 +597,12 @@ jobs: variant: sccache evict-old-files: 1d + - name: Install CUDA Toolkit + id: cuda-toolkit + uses: Jimver/cuda-toolkit@v0.2.15 + with: + cuda: '${{ matrix.cuda-toolkit }}' + - name: Configure CUDA compilation cache run: | New-Item -Path "${{ github.workspace }}\cuda_cache" -ItemType Directory -Force @@ -614,12 +620,6 @@ jobs: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 - - name: Install CUDA Toolkit - id: cuda-toolkit - uses: Jimver/cuda-toolkit@v0.2.15 - with: - cuda: '${{ matrix.cuda-toolkit }}' - - name: Install 7-Zip run: choco install 7zip -y From 50adc81abdfc262b77b2dd3a29d4b7b0da94bf26 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 12:19:03 +0100 Subject: [PATCH 06/14] ci : remove Jimver/cuda-toolkit and manually install CUDA This commit removes the dependency on Jimver/cuda-toolkit and manually installs the CUDA toolkits. --- .github/workflows/build.yml | 62 +++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9a70576843a..3f37316eb92 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -597,18 +597,68 @@ jobs: variant: sccache evict-old-files: 1d - - name: Install CUDA Toolkit - id: cuda-toolkit - uses: Jimver/cuda-toolkit@v0.2.15 - with: - cuda: '${{ matrix.cuda-toolkit }}' - - name: Configure CUDA compilation cache run: | New-Item -Path "${{ github.workspace }}\cuda_cache" -ItemType Directory -Force echo "CUDA_CACHE_PATH=${{ github.workspace }}\cuda_cache" | Out-File -FilePath $env:GITHUB_ENV -Append echo "CUDA_CACHE_MAXSIZE=4294967296" | Out-File -FilePath $env:GITHUB_ENV -Append + - name: Install Cuda Toolkit 11.8.0 + if: ${{ matrix.cuda-toolkit == '11.8.0' }} + run: | + mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" + choco install unzip -y + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.8.89-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-11.8.89-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-11.8.89-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/libcublas/windows-x86_64/libcublas-windows-x86_64-11.8.1.74-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-11.8.86-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-11.8.86-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-11.8.87-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-11.8.89-archive.zip" + unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_cudart-windows-x86_64-11.8.89-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_nvcc-windows-x86_64-11.8.89-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_nvrtc-windows-x86_64-11.8.89-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\libcublas-windows-x86_64-11.8.1.74-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_nvtx-windows-x86_64-11.8.86-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\visual_studio_integration-windows-x86_64-11.8.86-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_nvprof-windows-x86_64-11.8.87-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_cccl-windows-x86_64-11.8.89-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + echo "CUDA_PATH_V11_8=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + + - name: Install Cuda Toolkit 12.2 + if: ${{ matrix.cuda-toolkit == '12.2.0' }} + run: | + mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" + choco install unzip -y + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.2.140-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.2.140-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.2.140-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/libcublas/windows-x86_64/libcublas-windows-x86_64-12.2.5.6-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.2.140-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.2.140-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-12.2.140-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.2.142-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.2.140-archive.zip" + unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_cudart-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_nvcc-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_nvrtc-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\libcublas-windows-x86_64-12.2.5.6-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_nvtx-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_profiler_api-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\visual_studio_integration-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_nvprof-windows-x86_64-12.2.142-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_cccl-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + echo "CUDA_PATH_V12_2=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + - name: Cache CUDA compilation results uses: actions/cache@v3 with: From b3e8aef555cb7611a81754c97014955005ff3912 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 12:36:06 +0100 Subject: [PATCH 07/14] ci : set CUDACXX to use sccache for nvcc.exe --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f37316eb92..3a057375d94 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -684,6 +684,7 @@ jobs: - name: Configure CMake shell: cmd run: | + set "CUDACXX=sccache %CUDA_PATH%\bin\nvcc.exe" cmake -S . -B ./build -A ${{ matrix.arch }} ^ -DCMAKE_BUILD_TYPE=${{ matrix.build }} ^ -DGGML_CUDA=${{ matrix.cublas }} ^ @@ -696,6 +697,10 @@ jobs: -DCMAKE_POLICY_CMP0141=NEW ^ -DSDL2_DIR="%SDL2_DIR%" + - name: Check sccache status after build + run: | + sccache --show-stats + - name: Build Project shell: cmd run: | From 9fa77cc3e489899f0d1d245df576781a2b7eb8b9 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 12:50:38 +0100 Subject: [PATCH 08/14] ci : add call to vcvars64.bat in build.yml --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a057375d94..f82e15a4edb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -684,6 +684,7 @@ jobs: - name: Configure CMake shell: cmd run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" set "CUDACXX=sccache %CUDA_PATH%\bin\nvcc.exe" cmake -S . -B ./build -A ${{ matrix.arch }} ^ -DCMAKE_BUILD_TYPE=${{ matrix.build }} ^ @@ -704,6 +705,7 @@ jobs: - name: Build Project shell: cmd run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" cd ./build cmake --build . --config ${{ matrix.build }} -j %NUMBER_OF_PROCESSORS% From a67883e99cb1c5a3ab0307bc2ecfae3b7e5256ca Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 13:12:18 +0100 Subject: [PATCH 09/14] ci : copy vs cuda build customizations --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f82e15a4edb..26c387f36a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -630,6 +630,9 @@ jobs: echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 echo "CUDA_PATH_V11_8=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + mkdir -p "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" + xcopy "%CUDA_PATH%\visual_studio_integration-windows-x86_64*\MSBuildExtensions\*" "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" /E /I /H /Y + - name: Install Cuda Toolkit 12.2 if: ${{ matrix.cuda-toolkit == '12.2.0' }} run: | From 81b28a79dbc540d76e8c1aae3d452953c3f8e82e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 13:20:31 +0100 Subject: [PATCH 10/14] ci : remove mkdir command for MSBuildCustomizations --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26c387f36a7..fc4bf9c32dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -629,8 +629,6 @@ jobs: echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 echo "CUDA_PATH_V11_8=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 - - mkdir -p "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" xcopy "%CUDA_PATH%\visual_studio_integration-windows-x86_64*\MSBuildExtensions\*" "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" /E /I /H /Y - name: Install Cuda Toolkit 12.2 From d55cce8d5dcc546272d74b4f6ff345f4cc1734e0 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 13:37:01 +0100 Subject: [PATCH 11/14] ci : try to fix path to MSBuildExtensions --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc4bf9c32dc..3f338f8715b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -625,11 +625,11 @@ jobs: xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\visual_studio_integration-windows-x86_64-11.8.86-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_nvprof-windows-x86_64-11.8.87-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\cuda_cccl-windows-x86_64-11.8.89-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\visual_studio_integration-windows-x86_64-11.8.86-archive\visual_studio_integration\MSBuildExtensions\*" "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" /E /I /H /Y echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 echo "CUDA_PATH_V11_8=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 - xcopy "%CUDA_PATH%\visual_studio_integration-windows-x86_64*\MSBuildExtensions\*" "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" /E /I /H /Y - name: Install Cuda Toolkit 12.2 if: ${{ matrix.cuda-toolkit == '12.2.0' }} From b5b368e729d840c2f326d22b512337679abc5726 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 13:45:24 +0100 Subject: [PATCH 12/14] ci : add copy of MSBuildExtensions to v12.2.0 --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f338f8715b..82cd0c902e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -655,6 +655,7 @@ jobs: xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\visual_studio_integration-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_nvprof-windows-x86_64-12.2.142-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\cuda_cccl-windows-x86_64-12.2.140-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\visual_studio_integration-windows-x86_64-12.2.140-archive\visual_studio_integration\MSBuildExtensions\*" "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations" /E /I /H /Y echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 From 8b39d3e212d3c2822808ebf6f90f8f174137a104 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 15:41:12 +0100 Subject: [PATCH 13/14] ci : add id to cuda-toolkit jobs --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 82cd0c902e2..ac695ba7ef8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -604,6 +604,7 @@ jobs: echo "CUDA_CACHE_MAXSIZE=4294967296" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Cuda Toolkit 11.8.0 + id: cuda-toolkit if: ${{ matrix.cuda-toolkit == '11.8.0' }} run: | mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" @@ -632,6 +633,7 @@ jobs: echo "CUDA_PATH_V11_8=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 - name: Install Cuda Toolkit 12.2 + id: cuda-toolkit if: ${{ matrix.cuda-toolkit == '12.2.0' }} run: | mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" From 1dfd18b8bdf83ebf846184dd99ed9a4f494e5440 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 18 Mar 2025 20:26:46 +0100 Subject: [PATCH 14/14] ci : use env variable instead of step id --- .github/workflows/build.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac695ba7ef8..a0e6cb3064a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -604,7 +604,6 @@ jobs: echo "CUDA_CACHE_MAXSIZE=4294967296" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Cuda Toolkit 11.8.0 - id: cuda-toolkit if: ${{ matrix.cuda-toolkit == '11.8.0' }} run: | mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" @@ -633,7 +632,6 @@ jobs: echo "CUDA_PATH_V11_8=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8.0" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 - name: Install Cuda Toolkit 12.2 - id: cuda-toolkit if: ${{ matrix.cuda-toolkit == '12.2.0' }} run: | mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2.0" @@ -715,7 +713,7 @@ jobs: - name: Copy CUDA DLLs run: | - Get-ChildItem "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}/bin/" -Filter "*.dll" | + Get-ChildItem "$env:CUDA_PATH\bin\" -Filter "*.dll" | Copy-Item -Destination "build/bin/${{ matrix.build }}" - name: Copy SDL2.dll