diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 20e72fb17af7..6d50130c1c79 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -163,65 +163,56 @@ jobs: run: | cd _build/debug && ctest -j 8 --output-on-failure --no-tests=error - gpu: + ubuntu-gpu: runs-on: 8-core - name: "Linux release with GPU support" - container: ghcr.io/facebookincubator/velox-dev:adapters + name: "Ubuntu release with GPU support" + env: + CCACHE_DIR: "${{ github.workspace }}/.ccache" defaults: run: shell: bash - env: - CCACHE_DIR: "/__w/velox/velox/.ccache" - VELOX_DEPENDENCY_SOURCE: SYSTEM - simdjson_SOURCE: BUNDLED - xsimd_SOURCE: BUNDLED + working-directory: velox strategy: matrix: cuda-version: ["11.8", "12.4"] steps: - - uses: actions/checkout@v4 - - - name: Fix git permissions - # Usually actions/checkout does this but as we run in a container - # it doesn't work - run: git config --global --add safe.directory /__w/velox/velox - - - uses: assignUser/stash/restore@v1 + - name: Get Ccache Stash + uses: assignUser/stash/restore@v1 with: path: '${{ env.CCACHE_DIR }}' - key: ccache-linux-adapters + key: ccache-ubuntu-debug-default - - name: "Zero Ccache Statistics" + - name: Ensure Stash Dirs Exists + working-directory: ${{ github.workspace }} run: | - ccache -sz + mkdir -p '${{ env.CCACHE_DIR }}' - - name: Install CUDA + - uses: actions/checkout@v4 + with: + path: velox + + - name: Install Dependencies run: | + source scripts/setup-ubuntu.sh # Allows to install arbitrary cuda-version whithout needing to update # docker container before. It simplifies testing new/different versions - if ! yum list installed cuda-nvcc-$(echo ${{ matrix.cuda-version }} | tr '.' '-') 1>/dev/null; then - source scripts/setup-centos8.sh + if ! dpkg -l cuda-nvcc-$(echo ${{ matrix.cuda-version }} | tr '.' '-') 1>/dev/null; then install_cuda ${{ matrix.cuda-version }} fi - - name: Make Release Build + - name: Clear CCache Statistics + run: | + ccache -sz + + - name: Make GPU Build env: + VELOX_DEPENDENCY_SOURCE: BUNDLED MAKEFLAGS: 'NUM_THREADS=8 MAX_HIGH_MEM_JOBS=4 MAX_LINK_JOBS=4' + EXTRA_CMAKE_FLAGS: "-DVELOX_ENABLE_ARROW=ON" CUDA_ARCHITECTURES: 60 CUDA_COMPILER: /usr/local/cuda-${{ matrix.cuda-version }}/bin/nvcc run: | - EXTRA_CMAKE_FLAGS=( - "-DVELOX_ENABLE_BENCHMARKS=ON" - "-DVELOX_ENABLE_ARROW=ON" - "-DVELOX_ENABLE_PARQUET=ON" - "-DVELOX_ENABLE_HDFS=ON" - "-DVELOX_ENABLE_S3=ON" - "-DVELOX_ENABLE_GCS=ON" - "-DVELOX_ENABLE_ABFS=ON" - "-DVELOX_ENABLE_SUBSTRAIT=ON" - "-DVELOX_ENABLE_REMOTE_FUNCTIONS=ON" - ) - make gpu EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS[*]}" + make gpu - name: Ccache after run: ccache -s