From 344e851673262073c9bc753d808c0acc8dfa8060 Mon Sep 17 00:00:00 2001 From: Won-Kyu Park Date: Thu, 15 Feb 2024 03:59:22 +0900 Subject: [PATCH] CI: Fix cuda toolkit speed issue. (#1055) * CI: fix cuda-toolkit speed issue * CI: use MSVC instead msbuild to remove 'visual_stuido_integration' dependency * use Ninja to compile without MS toolset * use 'network', install 'ninja' only Co-authored-by: Rickard --------- Co-authored-by: Rickard --- .github/workflows/python-package.yml | 33 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 81c5ae360..07c3b5217 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -41,9 +41,10 @@ jobs: uses: jwlawson/actions-setup-cmake@v1.14 with: cmake-version: '3.26.x' - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.1 - if: ${{ startsWith(matrix.os, 'windows') }} + - name: Setup MSVC + if: startsWith(matrix.os, 'windows') + #uses: microsoft/setup-msbuild@v1.1 # to use msbuild + uses: ilammy/msvc-dev-cmd@v1.13.0 # to use cl # Compile C++ code - name: Build C++ shell: bash @@ -60,11 +61,7 @@ jobs: else cmake -DCOMPUTE_BACKEND=cpu . fi - if [ ${build_os:0:7} == windows ]; then - pwsh -Command "msbuild bitsandbytes.vcxproj /property:Configuration=Release" - else - make - fi + cmake --build . --config Release mkdir -p output/${{ matrix.os }}/${{ matrix.arch }} ( shopt -s nullglob && cp bitsandbytes/*.{so,dylib,dll} output/${{ matrix.os }}/${{ matrix.arch }}/ ) - name: Upload build artifact @@ -105,11 +102,14 @@ jobs: id: cuda-toolkit with: cuda: ${{ matrix.cuda_version }} - method: 'local' - # sub-packages: '["nvcc","cudart","nvrtc_dev","cublas_dev","cusparse_dev","visual_studio_integration"]' - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v1.1 - if: ${{ startsWith(matrix.os, 'windows') }} + method: 'network' + sub-packages: '["nvcc","cudart","cusparse","cublas","thrust","nvrtc_dev","cublas_dev","cusparse_dev"]' + linux-local-args: '["--toolkit"]' + use-github-cache: false + - name: Setup MSVC + if: startsWith(matrix.os, 'windows') + #uses: microsoft/setup-msbuild@v1.1 # to use msbuild + uses: ilammy/msvc-dev-cmd@v1.13.0 # to use cl # Compile C++ code - name: Build C++ shell: bash @@ -117,6 +117,7 @@ jobs: set -ex build_os=${{ matrix.os }} build_arch=${{ matrix.arch }} + [[ "${{ matrix.os }}" = windows-* ]] && python3 -m pip install ninja for NO_CUBLASLT in ON OFF; do if [ ${build_os:0:6} == ubuntu ]; then image=nvidia/cuda:${{ matrix.cuda_version }}-devel-ubuntu22.04 @@ -125,10 +126,10 @@ jobs: "apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cmake \ && cmake -DCOMPUTE_BACKEND=cuda -DNO_CUBLASLT=${NO_CUBLASLT} . \ - && make" + && cmake --build ." else - cmake -DCOMPUTE_BACKEND=cuda -DNO_CUBLASLT=${NO_CUBLASLT} . - pwsh -Command "msbuild bitsandbytes.vcxproj /property:Configuration=Release" + cmake -G Ninja -DCOMPUTE_BACKEND=cuda -DNO_CUBLASLT=${NO_CUBLASLT} -DCMAKE_BUILD_TYPE=Release -S . + cmake --build . --config Release fi done mkdir -p output/${{ matrix.os }}/${{ matrix.arch }}