Skip to content

Update CONTRIBUTING.md #269

Update CONTRIBUTING.md

Update CONTRIBUTING.md #269

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
"