Skip to content

Port SYCL tensor backends to match CUDA for HashMap, NNS, and t/ pipe… #4731

Port SYCL tensor backends to match CUDA for HashMap, NNS, and t/ pipe…

Port SYCL tensor backends to match CUDA for HashMap, NNS, and t/ pipe… #4731

name: Ubuntu OpenBLAS
permissions: {}
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
types: [opened, reopened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
openblas-amd64:
permissions:
contents: read
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Maximize build space
run: |
source util/ci_utils.sh
maximize_ubuntu_github_actions_build_space
- name: Docker build
run: docker/docker_build.sh openblas-amd64-py312-dev
- name: Docker test
run: docker/docker_test.sh openblas-amd64-py312-dev
build-lib-arm64:
name: Build Lib ARM64
permissions:
contents: write # Release upload
id-token: write
attestations: write
artifact-metadata: write
runs-on: ubuntu-24.04-arm # latest
env:
DEVELOPER_BUILD: 'ON'
OPEN3D_CPU_RENDERING: true
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Maximize build space
run: |
source util/ci_utils.sh
maximize_ubuntu_github_actions_build_space
- name: Docker build lib
run: |
# Use py310 as dummy
docker/docker_build.sh openblas-arm64-py310-dev build-lib
# Image name open3d-ci:openblas-arm64-py310-dev (check valid tag in script)
docker tag open3d-ci:openblas-arm64-py310-dev open3d-lib-arm64:latest
docker save open3d-lib-arm64:latest | gzip > open3d-lib-arm64.tar.gz
- name: Upload Lib Image
uses: actions/upload-artifact@v4
with:
name: open3d-lib-arm64
path: open3d-lib-arm64.tar.gz
retention-days: 1
build-wheel-arm64:
name: Build Wheel ARM64
permissions:
contents: write # Release upload
id-token: write
attestations: write
runs-on: ubuntu-24.04-arm
needs: build-lib-arm64
strategy:
fail-fast: false
matrix:
python_version: ['3.10', '3.11', '3.12', '3.13', '3.14']
is_main:
- ${{ github.ref == 'refs/heads/main' }}
exclude:
- is_main: false
python_version: '3.10'
- is_main: false
python_version: '3.11'
- is_main: false
python_version: '3.12'
- is_main: false
python_version: '3.13'
env:
DEVELOPER_BUILD: ${{ github.event.inputs.developer_build || 'ON' }}
PYTHON_VERSION: ${{ matrix.python_version }}
OPEN3D_CPU_RENDERING: true
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Maximize build space
run: |
source util/ci_utils.sh
maximize_ubuntu_github_actions_build_space
- name: Download Lib Image
uses: actions/download-artifact@v4
with:
name: open3d-lib-arm64
path: .
- name: Load Lib Image
run: docker load -i open3d-lib-arm64.tar.gz # Restore open3d-lib-arm64:latest
- name: Compute Docker tag for this matrix entry
run: |
# Strip the dot: 3.12 ➜ 312, 3.14 ➜ 314 …
PY_NO_DOT="${PYTHON_VERSION//./}"
# Add “-dev” only when requested
DEV_SUFFIX=$([ "${DEVELOPER_BUILD}" = "ON" ] && echo "-dev")
echo "DOCKER_TAG=openblas-arm64-py${PY_NO_DOT}${DEV_SUFFIX}" >> $GITHUB_ENV
- name: Docker build
run: |
export BASE_IMAGE=open3d-lib-arm64:latest
docker/docker_build.sh "${DOCKER_TAG}"
shopt -s failglob
PIP_PKG_NAME="$(basename ${GITHUB_WORKSPACE}/open3d-[0-9]*.whl)"
echo "PIP_PKG_NAME=$PIP_PKG_NAME" >> $GITHUB_ENV
- name: Generate wheel attestation
uses: actions/attest@v4
with:
subject-path: ${{ github.workspace }}/${{ env.PIP_PKG_NAME }}
- name: Upload wheel to GitHub artifacts
uses: actions/upload-artifact@v4
with:
path: ${{ env.PIP_PKG_NAME }}
name: ${{ env.PIP_PKG_NAME }}
if-no-files-found: error
- name: Update devel release
if: ${{ github.ref == 'refs/heads/main' }}
env:
GH_TOKEN: ${{ github.token }}
run: |
.github/workflows/update_release.sh ${{ env.PIP_PKG_NAME }}
# Move after artifact upload, so failing / flaky C++ tests don't block the uploads.
- name: Docker test
run: docker/docker_test.sh "${DOCKER_TAG}"