fix runner.os #5
Workflow file for this run
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
| name: paddle-windows-build | |
| on: | |
| push: | |
| branches: | |
| - feature/3.0-gpu | |
| - feature/3.0 | |
| - main | |
| paths: | |
| - '.github/workflows/paddle-windows-build.yml' | |
| workflow_dispatch: | |
| env: | |
| PADDLE_VERSION: "3.0.0" | |
| PADDLE_BRANCH: "v3.0.0" | |
| jobs: | |
| build-all: | |
| runs-on: windows-2022 | |
| strategy: | |
| matrix: | |
| include: | |
| # - { name: openblas_noavx, cmake_flags: "-DWITH_AVX=OFF -DWITH_MKL=OFF -DWITH_GPU=OFF" } | |
| # - { name: openblas, cmake_flags: "-DWITH_AVX=ON -DWITH_MKL=OFF -DWITH_GPU=OFF" } | |
| # - { name: mkldnn, cmake_flags: "-DWITH_AVX=ON -DWITH_MKL=ON -DWITH_GPU=OFF" } | |
| - name: cu126_cudnn95_sm86 | |
| cmake_flags: "-DWITH_GPU=ON -DCUDA_ARCH_NAME=Manual -DCUDA_ARCH_BIN=86 -DCMAKE_CUDA_ARCHITECTURES=86-real" | |
| cuda: 12.6.3 | |
| cudnn: 9.5.1.17 | |
| - name: cu126_cudnn95_sm89 | |
| cmake_flags: "-DWITH_GPU=ON -DCUDA_ARCH_NAME=Manual -DCUDA_ARCH_BIN=89 -DCMAKE_CUDA_ARCHITECTURES=89-real" | |
| cuda: 12.6.3 | |
| cudnn: 9.5.1.17 | |
| steps: | |
| - name: Setup dependencies | |
| run: | | |
| pip3 install numpy protobuf wheel ninja | |
| - uses: Jimver/cuda-toolkit@master | |
| if: ${{ matrix.cuda != '' }} | |
| id: cuda-toolkit | |
| with: | |
| method: network | |
| cuda: ${{ matrix.cuda }} | |
| # Windows sub-packages are kind of different, so we need to handle them separately | |
| # https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html | |
| sub-packages: ${{ matrix.os == 'ubuntu-22.04' && '["nvcc"]' || '["nvcc", "cublas", "cublas_dev", "cudart"]' }} | |
| non-cuda-sub-packages: ${{ matrix.os == 'ubuntu-22.04' && '["libcublas", "libcublas-dev"]' || '[]' }} | |
| log-file-suffix: '${{matrix.os}}.txt' | |
| - name: Download cuDNN | |
| if: ${{ matrix.cudnn != '' }} | |
| shell: pwsh | |
| run: | | |
| $cudaMajor = '${{ matrix.cuda }}'.Split('.')[0] | |
| echo "Downloading cuDNN for CUDA $cudaMajor and cuDNN ${{ matrix.cudnn }}..." | |
| if ("${{ runner.os }}" -eq "Linux") { | |
| Invoke-WebRequest -Uri https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-${{ matrix.cudnn }}_cuda$cudaMajor-archive.tar.xz -OutFile cudnn.tar.xz | |
| mkdir cudnn && tar -xf cudnn.tar.xz --strip-components=1 -C cudnn | |
| sudo cp cudnn/include/* ${{steps.cuda-toolkit.outputs.CUDA_PATH}}/include/ | |
| sudo cp cudnn/lib/* ${{steps.cuda-toolkit.outputs.CUDA_PATH}}/lib64/ | |
| } elseif ("${{ runner.os }}" -eq "Windows") { | |
| Invoke-WebRequest -Uri https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/windows-x86_64/cudnn-windows-x86_64-${{ matrix.cudnn }}_cuda$cudaMajor-archive.zip -OutFile cudnn.zip | |
| mkdir cudnn && tar -xf cudnn.zip --strip-components=1 -C cudnn | |
| cp -Recurse -Force cudnn\* "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}" | |
| } | |
| echo "::group:: cuDNN files" | |
| Get-ChildItem -Recurse cudnn | |
| echo "::endgroup::" | |
| - name: Checkout Paddle repo | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: PaddlePaddle/Paddle | |
| ref: ${{ env.PADDLE_BRANCH }} | |
| path: paddle-src | |
| fetch-depth: 1 | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| toolset: '14.29' | |
| - name: Apply patches | |
| shell: pwsh | |
| run: | | |
| cd ./paddle-src | |
| Invoke-WebRequest -Uri https://gist.githubusercontent.com/sdcb/19dde1c9554e6066aade2a859070149b/raw/capi.patch -OutFile capi.patch | |
| git apply --ignore-whitespace capi.patch | |
| rm capi.patch | |
| - name: Configure with CMake | |
| run: | | |
| mkdir ./paddle-src/build | |
| mkdir ./paddle-src/build/paddle/phi/ops/yaml/inconsistent | |
| mkdir ./paddle-src/build/paddle/phi/ops/yaml/legacy | |
| cd ./paddle-src/build | |
| cmake .. -GNinja ` | |
| ${{ matrix.cmake_flags }} ` | |
| -DON_INFER=ON ` | |
| -DWITH_PYTHON=OFF ` | |
| -DWITH_ONNXRUNTIME=ON ` | |
| -DWITH_UNITY_BUILD=ON | |
| - name: Build with Ninja | |
| run: | | |
| cd ./paddle-src/build | |
| ninja all | |
| - name: Show build files | |
| shell: bash | |
| run: | | |
| ls -lR ./paddle-src/build | |
| - name: Upload paddle_inference_install_dir | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: cpp_${{ matrix.name }} | |
| path: ./paddle-src/build/paddle_inference_install_dir/* | |
| - name: Copy common.dll/.so | |
| run: | | |
| cp ./paddle-src/build/paddle_inference_install_dir/paddle/lib/common.* ./paddle-src/build/paddle_inference_c_install_dir/ | |
| - name: Upload paddle_inference_c_install_dir | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: c_${{ matrix.name }} | |
| path: ./paddle-src/build/paddle_inference_c_install_dir/* |