Skip to content

removed duplicate

removed duplicate #445

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
install-cuda:
runs-on: ubuntu-20.04
env:
CUDA_ROOT: '/usr/local/cuda'
steps:
- name: Install CUDA 8.0 (if needed)
run: |
df
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda_8.0.61.2_linux-run
sudo sh cuda_8.0.61_375.26_linux-run --extract=${CUDA_ROOT}8.0
sudo sh ${CUDA_ROOT}8.0/cuda-linux64-rel-8.0.61-21551265.run --tar mxvf -C ${CUDA_ROOT}8.0
sudo sh cuda_8.0.61.2_linux-run --accept-eula --silent --installdir=${CUDA_ROOT}8.0
rm cuda_8.0.61_375.26_linux-run
rm cuda_8.0.61.2_linux-run
sudo rm ${CUDA_ROOT}8.0/cuda-linux64-rel-8.0.61-21551265.run
- name: Install CUDA 11.0
run: |
df
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
sudo sh cuda_11.0.3_450.51.06_linux.run --toolkit --toolkitpath=${CUDA_ROOT}11.0 --override --silent
rm cuda_11.0.3_450.51.06_linux.run
# - name: Install CUDA NVHPC-22.5
# run: |
# df
# wget https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz
# echo "extract"
# tar xpzf nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz
# echo "remove tar gz"
# rm nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz
# echo "install"
# sudo NVHPC_SILENT="true" NVHPC_INSTALL_DIR="${CUDA_ROOT}${{ matrix.CUDA }}" NVHPC_INSTALL_TYPE="single" ./nvhpc_2022_225_Linux_x86_64_cuda_11.7/install
# echo "remove installer"
# rm -rf nvhpc_2022_225_Linux_x86_64_cuda_11.7
build-linux-cuda:
needs: ['install-cuda']
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
compiler: [g++-7, g++-8, g++-9, g++-10, clang++-8, clang++-9, clang++-10]
CUDA: ['0', '8.0', '11.0']
runs-on: ${{ matrix.os }}
env:
CUDA_ROOT: '/usr/local/cuda'
steps:
- name: Install g++-7 (if needed)
if: matrix.compiler == 'g++-7'
run: |
sudo apt install g++-7
- name: Install g++-8 (if needed)
if: matrix.compiler == 'g++-8'
run: |
sudo apt install g++-8
- name: Install clang++-8 (if needed)
if: matrix.compiler == 'clang++-8'
run: |
sudo apt install clang-8
- name: Install clang++-9 (if needed)
if: matrix.compiler == 'clang++-9'
run: |
sudo apt install clang-9
- name: Install clang++-10 (if needed)
if: matrix.compiler == 'clang++-10'
run: |
sudo apt install clang-10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Create build directory
run: |
mkdir build
- name: Run CMake configure (default)
if: matrix.CUDA == '0'
env:
CXX: ${{ matrix.compiler }}
run: |
cd build
cmake ..
- name: Run CMake configure (CUDA)
if: matrix.CUDA != '0' && matrix.CUDA != 'NVHPC-22.5'
env:
CXX: ${{ matrix.compiler }}
run: |
export CPATH=${CUDA_ROOT}${{ matrix.CUDA }}/include:${CPATH}
export LD_LIBRARY_PATH=${CUDA_ROOT}${{ matrix.CUDA }}/lib64:${CUDA_ROOT}/lib64/stubs:${LD_LIBRARY_PATH}
export LIBRARY_PATH=${CUDA_ROOT}${{ matrix.CUDA }}/lib64:${CUDA_ROOT}/lib64/stubs:${LIBRARY_PATH}
export CUDA_LIB_PATH=${CUDA_ROOT}${{ matrix.CUDA }}/lib64:${CUDA_ROOT}/lib64/stubs
export PATH=${CUDA_ROOT}${{ matrix.CUDA }}:${PATH}
export CUDA_HOME=${CUDA_ROOT}${{ matrix.CUDA }}
export CUDA_PATH=${CUDA_ROOT}${{ matrix.CUDA }}
export CUDAToolkit_ROOT=${CUDA_ROOT}${{ matrix.CUDA }}
cd build
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCMAKE_EXE_LINKER_FLAGS="-L${CUDA_ROOT}${{ matrix.CUDA }}/lib64/stubs/" ..
- name: Run CMake configure (CUDA with NVHPC)
if: matrix.CUDA == 'NVHPC-22.5'
env:
CXX: ${{ matrix.compiler }}
run: |
NVARCH=`uname -s`_`uname -m`; export NVARCH
PATH=${CUDA_ROOT}${{ matrix.CUDA }}/${NVARCH}/22.5/compilers/bin:$PATH; export PATH
LD_LIBRARY_PATH=${CUDA_ROOT}${{ matrix.CUDA }}/${NVARCH}/22.5/compilers/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${CUDA_ROOT}${{ matrix.CUDA }}/${NVARCH}/22.5/cuda/11.7/lib64:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${CUDA_ROOT}${{ matrix.CUDA }}/${NVARCH}/22.5/cuda/11.7/lib64/stubs:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
cd build
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCMAKE_EXE_LINKER_FLAGS=-L"${CUDA_ROOT}${{ matrix.CUDA }}/${NVARCH}/22.5/cuda/11.7/lib64/stubs" -LA ..
- name: Build (default, CUDA)
run: |
cd build
make -j2
- name: Strip binary (default)
if: matrix.CUDA == '0'
run: |
cd build
strip src/FIRESTARTER
- name: Strip binary (CUDA)
if: matrix.CUDA != '0'
run: |
cd build
strip src/FIRESTARTER_CUDA
- name: Test FIRESTARTER (default)
if: matrix.CUDA == '0'
run: ./build/src/FIRESTARTER -t 1
- uses: actions/upload-artifact@v4
if: matrix.compiler == 'g++-10' && matrix.CUDA == '0'
with:
name: FIRESTARTER-linux
path: build/src/FIRESTARTER
- uses: actions/upload-artifact@v4
if: matrix.compiler == 'g++-10' && matrix.CUDA != '0'
with:
name: FIRESTARTER_CUDA_${{ matrix.CUDA }}-linux
path: build/src/FIRESTARTER_CUDA
uninstall-cuda:
needs: ['build-linux-cuda']
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
runs-on: ${{ matrix.os }}
env:
CUDA_ROOT: '/usr/local/cuda'
steps:
- name: Delete CUDA stuff
run: |
sudo rm -rf ${CUDA_ROOT}
install-oneapi:
needs: ['uninstall-cuda']
runs-on: ubuntu-20.04
strategy:
matrix:
ONEAPI: ['2023.2.0', '2024.0']
steps:
- name: Install OneAPI Base-Toolkit (if needed)
run: |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-basekit-${{ matrix.ONEAPI }}
# sudo apt install intel-oneapi-compiler-dpcpp-cpp-${{ matrix.ONEAPI }} intel-oneapi-mkl-${{ matrix.ONEAPI }} intel-oneapi-common-vars
build-linux-oneapi:
needs: ['install-oneapi']
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
compiler: [g++-7, g++-8, g++-9, g++-10, clang++-8, clang++-9, clang++-10]
ONEAPI: ['0', '2023.2.0', '2024.0']
runs-on: ${{ matrix.os }}
env:
CUDA_ROOT: '/usr/local/cuda'
steps:
- name: Install g++-7 (if needed)
if: matrix.compiler == 'g++-7'
run: |
sudo apt install g++-7
- name: Install g++-8 (if needed)
if: matrix.compiler == 'g++-8'
run: |
sudo apt install g++-8
- name: Install clang++-8 (if needed)
if: matrix.compiler == 'clang++-8'
run: |
sudo apt install clang-8
- name: Install clang++-9 (if needed)
if: matrix.compiler == 'clang++-9'
run: |
sudo apt install clang-9
- name: Install clang++-10 (if needed)
if: matrix.compiler == 'clang++-10'
run: |
sudo apt install clang-10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Create build directory
run: |
mkdir build
- name: Run CMake configure (OneAPI 2023.2.0)
if: matrix.ONEAPI =='2023.2.0'
run: |
. /opt/intel/oneapi/setvars.sh
cd build
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_ONEAPI" ..
- name: Run CMake configure (OneAPI 2024.0)
if: matrix.ONEAPI =='2024.0'
run: |
. /opt/intel/oneapi/${{ matrix.ONEAPI }}/oneapi-vars.sh
cd build
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_ONEAPI" ..
- name: Build (default, CUDA)
if: matrix.ONEAPI =='0'
run: |
cd build
make -j2
- name: Build (OneAPI 2023.2.0)
if: matrix.ONEAPI =='2023.2.0'
run: |
. /opt/intel/oneapi/setvars.sh
cd build
make -j2
- name: Build (OneAPI 2024.0)
if: matrix.ONEAPI =='2024.0'
run: |
. /opt/intel/oneapi/${{ matrix.ONEAPI }}/oneapi-vars.sh
cd build
make -j2
- name: Strip binary (OneAPI)
if: matrix.ONEAPI != '0'
run: |
cd build
strip src/FIRESTARTER_ONEAPI
- uses: actions/upload-artifact@v4
if: matrix.compiler == 'g++-10' && matrix.ONEAPI != '0'
with:
name: FIRESTARTER_ONEAPI_${{ matrix.ONEAPI }}-linux
path: build/src/FIRESTARTER_ONEAPI
build-windows:
strategy:
fail-fast: false
matrix:
os: [windows-2019]
cfg:
- { CUDA: '0', ONEAPI: '0', MSVC: true }
- { CUDA: '0', ONEAPI: '0', MSVC: false }
- { CUDA: '11.0', MSVC: true }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Install CMake
uses: crazy-max/ghaction-chocolatey@v3
with:
args: install cmake
- name: Install Mingw
uses: crazy-max/ghaction-chocolatey@v3
if: matrix.cfg.MSVC == false
with:
args: install mingw
- name: Install CUDA Toolkit
if: matrix.cfg.CUDA == '11.0'
shell: pwsh
run: |
Set-ExecutionPolicy unrestricted
& '.github\\install-cuda.ps1' -Version '11.0'
- uses: ilammy/msvc-dev-cmd@v1
if: matrix.cfg.MSVC == true
- name: Create build directory
shell: pwsh
run: |
mkdir build
- name: Run CMake configure
if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == false
shell: pwsh
run: |
cd build
cmake -G "MinGW Makefiles" ..
- name: Run CMake configure
if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == true
shell: pwsh
run: |
cd build
cmake -G "NMake Makefiles" ..
- name: Run CMake configure
if: matrix.cfg.CUDA != '0'
shell: pwsh
run: |
cd build
ls
dir "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0"
cmake -G "NMake Makefiles" -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCUDAToolkit_ROOT="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0" ..
- name: Build
shell: pwsh
run: |
cd build
cmake --build . -j2
- name: Copy Hwloc DLL
shell: pwsh
if: matrix.cfg.MSVC == true
run: |
cd build
cp ../lib/Hwloc/sources/contrib/windows/x64/Release/libhwloc-15.dll src
- name: Strip binary
if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == false
run: |
cd build
strip src\FIRESTARTER.exe
- name: Test FIRESTARTER
if: matrix.cfg.CUDA == '0'
shell: pwsh
run: .\build\src\FIRESTARTER.exe -t 1
- uses: actions/upload-artifact@v4
if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == true
with:
name: FIRESTARTER-windows
path: |
build\src\FIRESTARTER.exe
build\src\libhwloc-15.dll
- uses: actions/upload-artifact@v4
if: matrix.cfg.CUDA != '0'
with:
name: FIRESTARTER_CUDA_${{ matrix.cfg.CUDA }}-windows
path: |
build\src\FIRESTARTER_CUDA.exe
build\src\libhwloc-15.dll
build-macos:
strategy:
fail-fast: false
matrix:
os: [macos-12, macos-13]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Install Homebrew dependencies
run: |
brew upgrade cmake
- name: Create build directory
run: |
mkdir build
- name: Run CMake configure
run: |
cd build
cmake ..
- name: Build
run: |
cd build
make -j2
- name: Strip binary
run: |
cd build
strip src/FIRESTARTER
- name: Test FIRESTARTER
run: |
cd build
./src/FIRESTARTER -t 1
- uses: actions/upload-artifact@v4
if: matrix.os == 'macos-12'
with:
name: FIRESTARTER-macOS_12
path: build/src/FIRESTARTER
- uses: actions/upload-artifact@v4
if: matrix.os == 'macos-13'
with:
name: FIRESTARTER-macOS_13
path: build/src/FIRESTARTER
create-download:
name: Create download for Website
runs-on: ubuntu-latest
needs: [build-linux, build-macos, build-windows]

Check failure on line 416 in .github/workflows/cmake.yml

View workflow run for this annotation

GitHub Actions / Build

Invalid workflow file

The workflow is not valid. .github/workflows/cmake.yml (Line: 416, Col: 13): Job 'create-download' depends on unknown job 'build-linux'.
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
path: 'sources'
- name: Checkout submodules
run: |
cd sources
git submodule update --init --recursive
- name: Create Build directory
run: |
mkdir build
# Linux
- name: Retrieve FIRESTARTER-linux
uses: actions/download-artifact@v4
with:
name: FIRESTARTER-linux
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER FIRESTARTER-linux
rm -rf FIRESTARTER
chmod +x FIRESTARTER-linux
# Linux CUDA 8.0
- name: Retrieve FIRESTARTER_CUDA_8.0-linux
uses: actions/download-artifact@v4
with:
name: FIRESTARTER_CUDA_8.0-linux
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER_CUDA FIRESTARTER_CUDA_8.0
rm -rf FIRESTARTER
chmod +x FIRESTARTER_CUDA_8.0
# Linux CUDA 11.0
- name: Retrieve FIRESTARTER_CUDA_11.0-linux
uses: actions/download-artifact@v4
with:
name: FIRESTARTER_CUDA_11.0-linux
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER_CUDA FIRESTARTER_CUDA_11.0
rm -rf FIRESTARTER
chmod +x FIRESTARTER_CUDA_11.0
# Linux CUDA HPC
- name: Retrieve FIRESTARTER_CUDA_NVHPC-22.5-linux
uses: actions/download-artifact@v4
with:
name: FIRESTARTER_CUDA_NVHPC-22.5-linux
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER_CUDA FIRESTARTER_CUDA_NVHPC-22.5
rm -rf FIRESTARTER
chmod +x FIRESTARTER_CUDA_NVHPC-22.5
# Linux OneAPI
- name: Retrieve FIRESTARTER_ONEAPI_2024.0-linux
uses: actions/download-artifact@v4
with:
name: FIRESTARTER_ONEAPI_2024.0-linux
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER_ONEAPI FIRESTARTER_ONEAPI_2024.0
rm -rf FIRESTARTER
chmod +x FIRESTARTER_ONEAPI_2024.0
- name: Retrieve FIRESTARTER_ONEAPI_2023.2.0-linux
uses: actions/download-artifact@v4
with:
name: FIRESTARTER_ONEAPI_2023.2.0-linux
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER_ONEAPI FIRESTARTER_ONEAPI_2023.2.0
rm -rf FIRESTARTER
chmod +x FIRESTARTER_ONEAPI_2023.2.0
- name: Retrieve FIRESTARTER-macOS_12
uses: actions/download-artifact@v4
with:
name: FIRESTARTER-macOS_12
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_12
rm -rf FIRESTARTER
chmod +x FIRESTARTER-macOS_12
- name: Retrieve FIRESTARTER-macOS_13
uses: actions/download-artifact@v4
with:
name: FIRESTARTER-macOS_13
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_13
rm -rf FIRESTARTER
chmod +x FIRESTARTER-macOS_13
# Windows
- name: Retrieve FIRESTARTER-windows
uses: actions/download-artifact@v4
with:
name: FIRESTARTER-windows
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER.exe FIRESTARTER-windows.exe
mv FIRESTARTER/libhwloc-15.dll libhwloc-15.dll
rm -rf FIRESTARTER
# Windows CUDA
- name: Retrieve FIRESTARTER_CUDA_11.0-windows
uses: actions/download-artifact@v4
with:
name: FIRESTARTER_CUDA_11.0-windows
path: FIRESTARTER
- name: Move binary to right directory
run: |
mv FIRESTARTER/FIRESTARTER_CUDA.exe FIRESTARTER_CUDA_11.0-windows.exe
mv FIRESTARTER/libhwloc-15.dll libhwloc-15.dll
rm -rf FIRESTARTER
# Create tar.gz
- name: Copy CHANGELOG, README and LICENSE
run: |
grep -v '\$\$' < sources/CHANGELOG > CHANGELOG
cat sources/README.md | tail -n +3 > README.md
cp sources/LICENSE LICENSE
cp sources/3rd-party-licenses . -r
cp sources/examples . -r
- name: Create tar.gz
run: |
mv FIRESTARTER-linux FIRESTARTER
rm -rf sources/.git*
tar -cvzf FIRESTARTER.tar.gz CHANGELOG README.md LICENSE libhwloc-15.dll 3rd-party-licenses examples sources FIRESTARTER*
- uses: actions/upload-artifact@v4
with:
name: FIRESTARTER.tar.gz
path: FIRESTARTER.tar.gz