Skip to content

Add CI workflow for GPU NVHPC build #38

Add CI workflow for GPU NVHPC build

Add CI workflow for GPU NVHPC build #38

Workflow file for this run

name: Linux Intel
# triggered events (push, pull_request) for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
ubuntu_build:
name: Ubuntu Intel Build
# Run on ubuntu-latest
runs-on: ubuntu-latest
env:
LINUX_HPCKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d4e49548-1492-45c9-b678-8268cb0f1b05/l_HPCKit_p_2024.2.0.635_offline.sh
CC: icx
FC: ifx
CXX: icx
steps:
# Cache Intel HPC Toolkit
- name: Cache Intel HPC Toolkit
id: cache-intel-hpc-toolkit
uses: actions/cache@v2
with:
path: /opt/intel/oneapi
key: install-${{ env.LINUX_HPCKIT_URL }}-all
# Install Intel HPC Toolkit
- name: Install Intel HPC Toolkit
if: steps.cache-intel-hpc-toolkit.outputs.cache-hit != 'true'
run: |
curl --output webimage.sh --url "$LINUX_HPCKIT_URL" --retry 5 --retry-delay 5
chmod +x webimage.sh
./webimage.sh -x -f webimage_extracted --log extract.log
rm -rf webimage.sh
WEBIMAGE_NAME=$(ls -1 webimage_extracted/)
sudo webimage_extracted/"$WEBIMAGE_NAME"/bootstrapper -s --action install --components=all --eula=accept --continue-with-optional-error=yes --log-dir=.
cat /opt/intel/oneapi/logs/installer.install.intel.oneapi.lin.hpckit.*
rm -rf webimage_extracted
# Check location of installed Intel compilers
- name: Check compiler install
run: |
source /opt/intel/oneapi/setvars.sh
which icx
which ifx
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout repository
uses: actions/checkout@v2
# Test debug mode
- name: Build gf debug
run: |
source /opt/intel/oneapi/setvars.sh
cd ref
rm -rf build
mkdir build
cd build
#export OMP_NUM_THREADS=4
export CC=icx
export FC=ifx
cmake -DCMAKE_BUILD_TYPE=debug -DENABLE_GPU=off ..
make VERBOSE=1
ctest --output-on-failure
# Test release mode
- name: Build gf release
run: |
source /opt/intel/oneapi/setvars.sh
cd ref
rm -rf build
mkdir build
cd build
#export OMP_NUM_THREADS=4
export CC=icx
export FC=ifx
cmake -DCMAKE_BUILD_TYPE=release -DENABLE_GPU=off ..
make VERBOSE=1
ctest --output-on-failure
# Debug session for failures
-
name: Debug session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 60
with:
limit-access-to-actor: true