Skip to content

update compute to work around cuda stream mem ops #854

update compute to work around cuda stream mem ops

update compute to work around cuda stream mem ops #854

Workflow file for this run

name: build-cmake
on: [ push, pull_request ]
jobs:
build-linux:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-22.04 ]
compiler:
- { name: gcc, version: 11 }
- { name: gcc, version: 12 }
- { name: gcc, version: 13 }
- { name: clang, version: 14 }
- { name: clang, version: 15 }
- { name: clang, version: 16 }
- { name: clang, version: 17 }
config: [ Release, Debug ]
name: ${{ matrix.os }} / ${{ matrix.config }} / ${{ matrix.compiler.name }}-${{ matrix.compiler.version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: "Install Dependencies"
run: |
if [ "${{ matrix.compiler.name }}" = "gcc" ]; then
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -y install gcc-${{ matrix.compiler.version }} g++-${{ matrix.compiler.version }}
else
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${{ matrix.compiler.version }} main"
sudo apt-get -y remove "libc++1-*" "libc++abi1-*" "libunwind-*"
sudo apt-get update
sudo apt-get -y install clang-${{ matrix.compiler.version }} lld-${{ matrix.compiler.version }}
sudo apt-get -y install libc++-${{ matrix.compiler.version }}-dev libc++abi-${{ matrix.compiler.version }}-dev
fi
sudo apt-get update
sudo apt-get -y install build-essential cmake ninja-build uuid-dev libxinerama-dev libxcursor-dev libxi-dev libvulkan-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- name: "Setup CUDA"
run: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
- name: "Setup Vulkan SDK"
uses: humbletim/setup-vulkan-sdk@v1.2.0
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: "Configure and Build"
run: |
if [ "${{ matrix.compiler.name }}" = "gcc" ]; then
export LUISA_CC=gcc-${{ matrix.compiler.version }}
export LUISA_CXX=g++-${{ matrix.compiler.version }}
export LUISA_FLAGS=""
else
export LUISA_CC=clang-${{ matrix.compiler.version }}
export LUISA_CXX=clang++-${{ matrix.compiler.version }}
export LUISA_FLAGS="-stdlib=libc++"
fi
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=${{ matrix.config }} -D CMAKE_C_COMPILER=${LUISA_CC} -D CMAKE_CXX_COMPILER=${LUISA_CXX} -D CMAKE_CXX_FLAGS="${LUISA_FLAGS}"
cmake --build build
- name: "Install"
if: matrix.config == 'Release'
run: |
sudo cmake --install build --prefix dist -v
build-macos:
strategy:
fail-fast: false
matrix:
os: [ macos-13 ]
compiler: [ homebrew-clang ]
config: [ Release, Debug ]
name: ${{ matrix.os }} / ${{ matrix.config }} / ${{ matrix.compiler }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: "Install Dependencies"
run: |
brew install cmake ninja llvm sccache glfw
- name: "Setup Vulkan SDK"
uses: humbletim/setup-vulkan-sdk@v1.2.0
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: "Configure and Build"
run: |
if [ "${{ matrix.compiler }}" = "homebrew-clang" ]; then
export PATH=/usr/local/opt/llvm/bin:$PATH
fi
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=${{ matrix.config }} -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D LUISA_COMPUTE_ENABLE_UNITY_BUILD=OFF
cmake --build build
- name: "Install"
if: matrix.config == 'Release'
run: |
sudo cmake --install build --prefix dist -v
build-windows:
strategy:
fail-fast: false
matrix:
os: [ 2019, 2022 ]
config: [ Release, Debug ]
compiler: [ cl, clang, clang-cl ]
name: windows-${{ matrix.os }} / ${{ matrix.config }} / ${{ matrix.compiler }}
runs-on: windows-${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: "Setup CUDA"
uses: Jimver/cuda-toolkit@v0.2.10
- name: "Setup Ninja"
uses: ashutoshvarma/setup-ninja@master
with:
version: 1.10.2
- name: "Setup Vulkan SDK"
uses: humbletim/setup-vulkan-sdk@v1.2.0
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: "Configure and Build"
shell: cmd
run: |
if "${{ matrix.os }}" == "2019" (
call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.os }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
) else (
call "C:\Program Files\Microsoft Visual Studio\${{ matrix.os }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
)
cmake -S . -G Ninja -B build -D CMAKE_BUILD_TYPE=${{ matrix.config }} -D CMAKE_C_COMPILER:FILEPATH=${{ matrix.compiler }}.exe -D CMAKE_CXX_COMPILER:FILEPATH=${{ matrix.compiler }}.exe
cmake --build build
- name: "Install"
if: matrix.config == 'Release'
run: |
cmake --install build --prefix dist -v