Update CONTRIBUTING.md #269
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: Excuter/cuda-linux Build | |
| on: [push, pull_request] | |
| env: | |
| CUDA_VERSION: "12.6.0" | |
| CUDA_MAJOR_VERSION: "12" | |
| CUDNN_VERSION: "8.9.7.29" | |
| CUTLASS_VERSION: "3.4.1" | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04] | |
| backend: [cuda] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| # 使用NVIDIA官方Docker镜像,避免依赖安装问题 | |
| - name: Set up Docker | |
| uses: docker/setup-buildx-action@v2 | |
| # 使用预装CUDA和工具的NVIDIA容器 | |
| - name: Build and Test in Docker Container | |
| run: | | |
| docker run --rm -v ${{ github.workspace }}:/workspace \ | |
| -w /workspace \ | |
| nvidia/cuda:12.6.0-devel-ubuntu22.04 \ | |
| /bin/bash -c " | |
| # 安装系统依赖 | |
| apt-get update && \ | |
| DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| build-essential \ | |
| cmake \ | |
| libyaml-cpp-dev \ | |
| libgtest-dev \ | |
| clang \ | |
| git \ | |
| ninja-build \ | |
| ccache \ | |
| wget \ | |
| && \ | |
| # 安装 cuDNN - 使用更新的下载链接格式 | |
| wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-${CUDNN_VERSION}_cuda${CUDA_MAJOR_VERSION}-archive.tar.xz && \ | |
| tar -xf cudnn-linux-x86_64-${CUDNN_VERSION}_cuda${CUDA_MAJOR_VERSION}-archive.tar.xz -C /usr/local && \ | |
| # 安装 CUTLASS - 仅安装头文件而不是共享库 | |
| git clone --depth 1 --branch v${CUTLASS_VERSION} https://github.com/NVIDIA/cutlass.git && \ | |
| cd cutlass && \ | |
| # 直接复制头文件到系统目录 | |
| cp -r include/* /usr/local/include/ && \ | |
| cd /workspace && \ | |
| # 构建 common 库 | |
| cd excuter/cpp-common && \ | |
| mkdir -p build && cd build && \ | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -GNinja .. && \ | |
| ninja && \ | |
| # 构建 CUDA 执行器 | |
| cd ../../op-mem-cuda && \ | |
| mkdir -p build && cd build && \ | |
| cmake -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
| -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \ | |
| -DCMAKE_CUDA_ARCHITECTURES=\"60;70;75;80;86\" \ | |
| -DCUTLASS_DIR=/usr/local \ | |
| -GNinja .. && \ | |
| ninja | |
| " |