diff --git a/.github/workflows/build-cuda.yml b/.github/workflows/build-cuda.yml new file mode 100644 index 0000000000..5a7285924c --- /dev/null +++ b/.github/workflows/build-cuda.yml @@ -0,0 +1,53 @@ +name: Build CUDA Wheel + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository with submodules + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.12 + + - name: Install CUDA Toolkit on Ubuntu 24.04 + run: | + sudo apt update + sudo apt install -y wget gnupg2 ca-certificates curl software-properties-common + + # Add NVIDIA GPG key securely + curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-archive-keyring.gpg \ + | sudo tee /usr/share/keyrings/cuda-archive-keyring.gpg > /dev/null + + echo "deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /" \ + | sudo tee /etc/apt/sources.list.d/cuda.list > /dev/null + + sudo apt update + sudo apt install -y cuda + + - name: Install build dependencies + run: | + sudo apt install -y g++-12 ninja-build cmake python3-pip + python3 -m pip install --upgrade pip + + - name: Build CUDA wheel + run: | + export PATH=/usr/local/cuda/bin:$PATH + export CUDAToolkit_ROOT=/usr/local/cuda + export CXX=/usr/bin/g++-12 + CMAKE_ARGS="-DLLAMA_CUDA=on -DCMAKE_CUDA_HOST_COMPILER=/usr/bin/g++-12 -DCMAKE_CUDA_ARCHITECTURES=89" \ + pip wheel . --no-deps --wheel-dir dist + + - name: Upload CUDA wheel as artifact + uses: actions/upload-artifact@v4 + with: + name: llama_cpp_cuda_wheel + path: dist/*.whl