Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions .github/workflows/hipfile-build-nvidia.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: build-hipfile-NVIDIA
run-name: Build hipFile for NVIDIA platforms

env:
AIS_INPUT_CI_IMAGE: ${{ inputs.ci_image }}
AIS_INPUT_PLATFORM: ${{ inputs.platform }}
AIS_INPUT_ROCM_VERSION: ${{ inputs.rocm_version }}
AIS_MOUNT_PATH: /mnt/ais/ext4

on:
workflow_call:
inputs:
ci_image:
required: true
type: string
platform:
required: true
type: string
rocm_version:
description: "Target ROCm MAJOR.MINOR.PATCH Version"
required: true
type: string

permissions:
contents: read
packages: read

jobs:

compile_on_NVIDIA:
env:
AIS_INPUT_CXX_COMPILER: ${{ matrix.supported_compilers }}
runs-on: [ubuntu-24.04]
strategy:
fail-fast: false
matrix:
supported_compilers:
- g++
- clang++
steps:
- name: Set early AIS CI environment variables
run: |
echo "AIS_PR_NUMBER=$(echo "${GITHUB_REF}" | sed 's|[^0-9]||g')" >> "${GITHUB_ENV}"
echo "AIS_SAFE_COMPILER_NAME=$(echo ${AIS_INPUT_CXX_COMPILER} | sed 's|[\+]|plus|g')" >> "${GITHUB_ENV}"
- name: Set AIS CI container name
run: |
echo "AIS_CONTAINER_NAME=${AIS_PR_NUMBER}_${GITHUB_JOB}_${AIS_INPUT_PLATFORM}_${AIS_INPUT_ROCM_VERSION}_${AIS_SAFE_COMPILER_NAME}" >> "${GITHUB_ENV}"
- name: Fetching code repository...
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
path: rocm-systems
sparse-checkout: |
projects/hipfile
.github/workflows
- name: Authenticating to GitHub Container Registry
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# Detach the container and run separate commands to it.
# Thus we can make separate explicit steps in the Github CI
# as if we were able to parameterize the container image in the first place.
- name: Starting Docker Container
run: |
docker run \
-dt \
--rm \
--pull always \
-v ${GITHUB_WORKSPACE}:/mnt/ais:ro \
-v "${AIS_MOUNT_PATH}:/mnt/ais-fs" \
--name "${AIS_CONTAINER_NAME}" \
"${AIS_INPUT_CI_IMAGE}"
- name: Make copy of the code repository and create build directories
run: |
docker exec \
-t \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
cp -R /mnt/ais /ais
mkdir -p /ais/build/hipfile
'
- name: Generate build files for hipFile targeting the NVIDIA platform (${{ matrix.supported_compilers }})
run: |
docker exec \
-e "_AIS_INPUT_CXX_COMPILER=${AIS_INPUT_CXX_COMPILER}" \
-t \
-w /ais/build/hipfile \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
cmake \
-DCMAKE_CXX_COMPILER="${_AIS_INPUT_CXX_COMPILER}" \
-DCMAKE_CXX_FLAGS="-Werror" \
-DCMAKE_HIP_PLATFORM=nvidia \
../../rocm-systems/projects/hipfile
'
- name: Build hipFile for the NVIDIA platform (${{ matrix.supported_compilers }})
run: |
docker exec \
-t \
-w /ais/build/hipfile \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
cmake --build . --parallel
'
- name: Clean CMake build directories
run: |
docker exec \
-t \
-w /ais/ \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
rm -rf build/hipfile/
'
- name: Cleanup & Stop the Docker container
if: ${{ always() }}
run: |
if docker inspect "${AIS_CONTAINER_NAME}" >/dev/null 2>&1; then
docker stop "${AIS_CONTAINER_NAME}"
else
echo "Container ${AIS_CONTAINER_NAME} does not exist; skipping stop"
fi
Loading
Loading