From be6a569372fa0dff3ec81f2b5ac43161088c0752 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 10:22:02 +0100 Subject: [PATCH 01/15] re-enable cuda for windows --- .github/workflows/cmake.yml | 368 ++---------------------------------- 1 file changed, 18 insertions(+), 350 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 39af37f0..438e3887 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -3,172 +3,6 @@ name: Build on: [push, pull_request] jobs: - build-linux: - 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', 'NVHPC-22.5'] - 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 - - uses: actions/checkout@v2 - with: - fetch-depth: '0' - - name: Install CUDA runtime (if needed) - if: matrix.CUDA != '0' && matrix.ONEAPI == 0 - run: | - case ${{ matrix.CUDA }} in - 8.0) - 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} - sudo sh ${CUDA_ROOT}/cuda-linux64-rel-8.0.61-21551265.run --tar mxvf -C ${CUDA_ROOT} - sudo sh cuda_8.0.61.2_linux-run --accept-eula --silent --installdir=${CUDA_ROOT} - ;; - 11.0) - 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} --override --silent - ;; - NVHPC-22.5) - wget https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz - tar xpzf nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz - sudo NVHPC_SILENT="true" NVHPC_INSTALL_DIR="$CUDA_ROOT" NVHPC_INSTALL_TYPE="single" ./nvhpc_2022_225_Linux_x86_64_cuda_11.7/install - esac - - name: Install OneAPI Base-Toolkit (if needed) - if: matrix.ONEAPI != '0' && matrix.CUDA == '0' - 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 }} - - name: Create build directory - run: | - mkdir build - - name: Run CMake configure (default) - if: matrix.CUDA == '0' && matrix.ONEAPI == '0' - env: - CXX: ${{ matrix.compiler }} - run: | - cd build - cmake .. - - name: Run CMake configure (CUDA) - if: matrix.CUDA != '0' && matrix.CUDA != 'NVHPC-22.5' && matrix.ONEAPI == '0' - env: - CXX: ${{ matrix.compiler }} - run: | - export CPATH=${CUDA_ROOT}/include:${CPATH} - export LD_LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs:${LD_LIBRARY_PATH} - export LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs:${LIBRARY_PATH} - export CUDA_LIB_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs - export PATH=${CUDA_ROOT}:${PATH} - export CUDA_HOME=${CUDA_ROOT} - export CUDA_PATH=${CUDA_ROOT} - export CUDAToolkit_ROOT=${CUDA_ROOT} - - cd build - cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCMAKE_EXE_LINKER_FLAGS="-L${CUDA_ROOT}/lib64/stubs/" .. - - name: Run CMake configure (CUDA with NVHPC) - if: matrix.CUDA == 'NVHPC-22.5' && matrix.ONEAPI == '0' - env: - CXX: ${{ matrix.compiler }} - run: | - NVARCH=`uname -s`_`uname -m`; export NVARCH - PATH=$CUDA_ROOT/$NVARCH/22.5/compilers/bin:$PATH; export PATH - LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/compilers/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH - LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/cuda/11.7/lib64:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH - LD_LIBRARY_PATH=$CUDA_ROOT/$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/$NVARCH/22.5/cuda/11.7/lib64/stubs" -LA .. - - name: Run CMake configure (OneAPI 2023.2.0) - if: matrix.CUDA == '0' && 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.CUDA == '0' && 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.CUDA == '0' && matrix.ONEAPI =='2023.2.0' - run: | - . /opt/intel/oneapi/setvars.sh - cd build - make -j2 - - name: Build (OneAPI 2024.0) - if: matrix.CUDA == '0' && matrix.ONEAPI =='2024.0' - run: | - . /opt/intel/oneapi/${{ matrix.ONEAPI }}/oneapi-vars.sh - cd build - make -j2 - - name: Strip binary (default) - if: matrix.CUDA == '0' && matrix.ONEAPI == '0' - run: | - cd build - strip src/FIRESTARTER - - name: Strip binary (CUDA) - if: matrix.CUDA != '0' && matrix.ONEAPI == '0' - run: | - cd build - strip src/FIRESTARTER_CUDA - - name: Strip binary (OneAPI) - if: matrix.ONEAPI != '0' && matrix.CUDA == '0' - run: | - cd build - strip src/FIRESTARTER_ONEAPI - - name: Test FIRESTARTER (default) - if: matrix.CUDA == '0' && matrix.ONEAPI == '0' - run: ./build/src/FIRESTARTER -t 1 - - uses: actions/upload-artifact@v2 - if: matrix.compiler == 'clang++-10' && matrix.CUDA == '0' && matrix.ONEAPI == '0' - with: - name: FIRESTARTER-linux - path: build/src/FIRESTARTER - - uses: actions/upload-artifact@v2 - if: matrix.compiler == 'clang++-10' && matrix.CUDA != '0' && matrix.ONEAPI == '0' - with: - name: FIRESTARTER_CUDA_${{ matrix.CUDA }}-linux - path: build/src/FIRESTARTER_CUDA - - uses: actions/upload-artifact@v2 - if: matrix.compiler == 'clang++-10' && matrix.CUDA == '0' && matrix.ONEAPI != '0' - with: - name: FIRESTARTER_ONEAPI_${{ matrix.ONEAPI }}-linux - path: build/src/FIRESTARTER_ONEAPI build-windows: strategy: fail-fast: false @@ -177,6 +11,7 @@ jobs: cfg: - { CUDA: '0', ONEAPI: '0', MSVC: true } - { CUDA: '0', ONEAPI: '0', MSVC: false } + - { CUDA: '11.0', MSVC: true } runs-on: ${{ matrix.os }} @@ -193,6 +28,12 @@ jobs: 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 @@ -211,6 +52,12 @@ jobs: run: | cd build cmake -G "NMake Makefiles" .. + - name: Run CMake configure + if: matrix.cfg.CUDA != '0' + shell: pwsh + run: | + cd build + 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: | @@ -245,190 +92,11 @@ jobs: path: | build\src\FIRESTARTER.exe build\src\libhwloc-15.dll - build-macos: - strategy: - fail-fast: false - matrix: - os: [macos-11, macos-12, macos-13] - #os: [macos-11.0, macos-10.15] - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2 - 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@v2 - if: matrix.os == 'macos-12' - with: - name: FIRESTARTER-macOS_12 - path: build/src/FIRESTARTER - - uses: actions/upload-artifact@v2 - if: matrix.os == 'macos-11' - with: - name: FIRESTARTER-macOS_11 - path: build/src/FIRESTARTER - create-download: - name: Create download for Website - runs-on: ubuntu-latest - needs: [build-linux, build-macos, build-windows] - steps: - - uses: actions/checkout@v2 - 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@v2 - 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@v2 - 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@v2 - 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@v2 - 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@v2 - 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@v2 - 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 - # OSX 11.0 - #- name: Retrieve FIRESTARTER-macOS_11.0 - # uses: actions/download-artifact@v2 - # with: - # name: FIRESTARTER-macOS_11.0 - # path: FIRESTARTER - #- name: Move binary to right directory - # run: | - # mv FIRESTARTER/FIRESTARTER ../FIRESTARTER-macOS_11.0 - # rm -rf FIRESTARTER - # chmod +x ../FIRESTARTER-macOS_11.0 - # OSX 10.15 - - name: Retrieve FIRESTARTER-macOS_11 - uses: actions/download-artifact@v2 - with: - name: FIRESTARTER-macOS_11 - path: FIRESTARTER - - name: Move binary to right directory - run: | - mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_11 - rm -rf FIRESTARTER - chmod +x FIRESTARTER-macOS_11 - - name: Retrieve FIRESTARTER-macOS_12 - uses: actions/download-artifact@v2 - 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 - # Windows - - name: Retrieve FIRESTARTER-windows - uses: actions/download-artifact@v2 - 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 - # 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@v2 + if: matrix.cfg.CUDA != '0' with: - name: FIRESTARTER.tar.gz - path: FIRESTARTER.tar.gz + name: FIRESTARTER_CUDA_${{ matrix.cfg.CUDA }}-windows + path: | + build\src\FIRESTARTER_CUDA.exe + build\src\libhwloc-15.dll From 2bb664db04aed134257506fa78a26bc3ea84c8d5 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 10:36:52 +0100 Subject: [PATCH 02/15] less tests, add dir --- .github/workflows/cmake.yml | 51 +------------------------------------ 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 438e3887..a89a3573 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -9,8 +9,6 @@ jobs: 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 }} @@ -40,63 +38,16 @@ jobs: 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 + 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@v2 - if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == false - with: - name: FIRESTARTER-windows - path: | - build\src\FIRESTARTER.exe - build\src\libhwloc-15.dll - - uses: actions/upload-artifact@v2 - 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@v2 - if: matrix.cfg.CUDA != '0' - with: - name: FIRESTARTER_CUDA_${{ matrix.cfg.CUDA }}-windows - path: | - build\src\FIRESTARTER_CUDA.exe - build\src\libhwloc-15.dll From f61fd617a72b3c35791edaef1c85aad429a565b7 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 10:42:32 +0100 Subject: [PATCH 03/15] still fixing --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index a89a3573..0a7f90d3 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -43,7 +43,7 @@ jobs: shell: pwsh run: | cd build - dir C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0 + 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 From d839c8f1cd38a5edadd53b4170c6948bc4cdf2e8 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 10:52:18 +0100 Subject: [PATCH 04/15] fixing --- .github/workflows/cmake.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 0a7f90d3..9342bfe7 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -42,12 +42,4 @@ jobs: if: matrix.cfg.CUDA != '0' shell: pwsh run: | - cd build - 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 - + dir C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0" From de122a3d2050165ef4caccb23e4a020fd5d6482b Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 10:58:47 +0100 Subject: [PATCH 05/15] ... --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 9342bfe7..9db06e6f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -42,4 +42,4 @@ jobs: if: matrix.cfg.CUDA != '0' shell: pwsh run: | - dir C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0" + dir "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0" From 287d2d33b466bd6cb0dc55d26513f0409c56d413 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 11:14:35 +0100 Subject: [PATCH 06/15] testing fun.. --- .github/workflows/cmake.yml | 9 +++++++++ src/CMakeLists.txt | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 9db06e6f..59499628 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -42,4 +42,13 @@ jobs: 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 + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dca535ea..bbd62148 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -74,7 +74,6 @@ if ("${FIRESTARTER_BUILD_TYPE}" STREQUAL "FIRESTARTER_CUDA") Threads::Threads CUDA::cuda_driver CUDA::cudart - CUDA::cufft CUDA::curand CUDA::cublas ) From 9d52e38f9ff1840cc0a7f6f9f4d94eb68d3c9f3f Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 12:30:19 +0100 Subject: [PATCH 07/15] re-enable tests --- .github/workflows/cmake.yml | 401 ++++++++++++++++++++++++++++++++++++ 1 file changed, 401 insertions(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 59499628..51c3eb79 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -3,12 +3,177 @@ name: Build on: [push, pull_request] jobs: + 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', 'NVHPC-22.5'] + 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 + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - name: Install CUDA runtime (if needed) + if: matrix.CUDA != '0' && matrix.ONEAPI == 0 + run: | + case ${{ matrix.CUDA }} in + 8.0) + 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} + sudo sh ${CUDA_ROOT}/cuda-linux64-rel-8.0.61-21551265.run --tar mxvf -C ${CUDA_ROOT} + sudo sh cuda_8.0.61.2_linux-run --accept-eula --silent --installdir=${CUDA_ROOT} + ;; + 11.0) + 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} --override --silent + ;; + NVHPC-22.5) + wget https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz + tar xpzf nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz + sudo NVHPC_SILENT="true" NVHPC_INSTALL_DIR="$CUDA_ROOT" NVHPC_INSTALL_TYPE="single" ./nvhpc_2022_225_Linux_x86_64_cuda_11.7/install + esac + - name: Install OneAPI Base-Toolkit (if needed) + if: matrix.ONEAPI != '0' && matrix.CUDA == '0' + 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 }} + - name: Create build directory + run: | + mkdir build + - name: Run CMake configure (default) + if: matrix.CUDA == '0' && matrix.ONEAPI == '0' + env: + CXX: ${{ matrix.compiler }} + run: | + cd build + cmake .. + - name: Run CMake configure (CUDA) + if: matrix.CUDA != '0' && matrix.CUDA != 'NVHPC-22.5' && matrix.ONEAPI == '0' + env: + CXX: ${{ matrix.compiler }} + run: | + export CPATH=${CUDA_ROOT}/include:${CPATH} + export LD_LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs:${LD_LIBRARY_PATH} + export LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs:${LIBRARY_PATH} + export CUDA_LIB_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs + export PATH=${CUDA_ROOT}:${PATH} + export CUDA_HOME=${CUDA_ROOT} + export CUDA_PATH=${CUDA_ROOT} + export CUDAToolkit_ROOT=${CUDA_ROOT} + + cd build + cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCMAKE_EXE_LINKER_FLAGS="-L${CUDA_ROOT}/lib64/stubs/" .. + - name: Run CMake configure (CUDA with NVHPC) + if: matrix.CUDA == 'NVHPC-22.5' && matrix.ONEAPI == '0' + env: + CXX: ${{ matrix.compiler }} + run: | + NVARCH=`uname -s`_`uname -m`; export NVARCH + PATH=$CUDA_ROOT/$NVARCH/22.5/compilers/bin:$PATH; export PATH + LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/compilers/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH + LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/cuda/11.7/lib64:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH + LD_LIBRARY_PATH=$CUDA_ROOT/$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/$NVARCH/22.5/cuda/11.7/lib64/stubs" -LA .. + - name: Run CMake configure (OneAPI 2023.2.0) + if: matrix.CUDA == '0' && 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.CUDA == '0' && 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.CUDA == '0' && matrix.ONEAPI =='2023.2.0' + run: | + . /opt/intel/oneapi/setvars.sh + cd build + make -j2 + - name: Build (OneAPI 2024.0) + if: matrix.CUDA == '0' && matrix.ONEAPI =='2024.0' + run: | + . /opt/intel/oneapi/${{ matrix.ONEAPI }}/oneapi-vars.sh + cd build + make -j2 + - name: Strip binary (default) + if: matrix.CUDA == '0' && matrix.ONEAPI == '0' + run: | + cd build + strip src/FIRESTARTER + - name: Strip binary (CUDA) + if: matrix.CUDA != '0' && matrix.ONEAPI == '0' + run: | + cd build + strip src/FIRESTARTER_CUDA + - name: Strip binary (OneAPI) + if: matrix.ONEAPI != '0' && matrix.CUDA == '0' + run: | + cd build + strip src/FIRESTARTER_ONEAPI + - name: Test FIRESTARTER (default) + if: matrix.CUDA == '0' && matrix.ONEAPI == '0' + run: ./build/src/FIRESTARTER -t 1 + - uses: actions/upload-artifact@v2 + if: matrix.compiler == 'clang++-10' && matrix.CUDA == '0' && matrix.ONEAPI == '0' + with: + name: FIRESTARTER-linux + path: build/src/FIRESTARTER + - uses: actions/upload-artifact@v2 + if: matrix.compiler == 'clang++-10' && matrix.CUDA != '0' && matrix.ONEAPI == '0' + with: + name: FIRESTARTER_CUDA_${{ matrix.CUDA }}-linux + path: build/src/FIRESTARTER_CUDA + - uses: actions/upload-artifact@v2 + if: matrix.compiler == 'clang++-10' && matrix.CUDA == '0' && 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 }} @@ -38,6 +203,18 @@ jobs: 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 @@ -51,4 +228,228 @@ jobs: 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@v2 + if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == false + with: + name: FIRESTARTER-windows + path: build\src\FIRESTARTER.exe + - uses: actions/upload-artifact@v2 + 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-11, macos-12, macos-13] + #os: [macos-11.0, macos-10.15] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + 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@v2 + if: matrix.os == 'macos-12' + with: + name: FIRESTARTER-macOS_12 + path: build/src/FIRESTARTER + - uses: actions/upload-artifact@v2 + if: matrix.os == 'macos-11' + with: + name: FIRESTARTER-macOS_11 + path: build/src/FIRESTARTER + create-download: + name: Create download for Website + runs-on: ubuntu-latest + needs: [build-linux, build-macos, build-windows] + steps: + - uses: actions/checkout@v2 + 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@v2 + 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@v2 + 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@v2 + 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@v2 + 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@v2 + 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@v2 + 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 + # OSX 11.0 + #- name: Retrieve FIRESTARTER-macOS_11.0 + # uses: actions/download-artifact@v2 + # with: + # name: FIRESTARTER-macOS_11.0 + # path: FIRESTARTER + #- name: Move binary to right directory + # run: | + # mv FIRESTARTER/FIRESTARTER ../FIRESTARTER-macOS_11.0 + # rm -rf FIRESTARTER + # chmod +x ../FIRESTARTER-macOS_11.0 + # OSX 10.15 + - name: Retrieve FIRESTARTER-macOS_11 + uses: actions/download-artifact@v2 + with: + name: FIRESTARTER-macOS_11 + path: FIRESTARTER + - name: Move binary to right directory + run: | + mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_11 + rm -rf FIRESTARTER + chmod +x FIRESTARTER-macOS_11 + - name: Retrieve FIRESTARTER-macOS_12 + uses: actions/download-artifact@v2 + 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 + # Windows + - name: Retrieve FIRESTARTER-windows + uses: actions/download-artifact@v2 + 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 11.0 + - name: Retrieve FIRESTARTER_CUDA_11.0-windows + uses: actions/download-artifact@v2 + 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@v2 + with: + name: FIRESTARTER.tar.gz + path: FIRESTARTER.tar.gz From 76306f3a38632adc0e70a7ca78ec683baf0ea3e7 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 12:40:44 +0100 Subject: [PATCH 08/15] ... --- .github/workflows/cmake.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 51c3eb79..99495528 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -3,6 +3,7 @@ name: Build on: [push, pull_request] jobs: + matrix: matrix: os: [ubuntu-20.04] compiler: [g++-7, g++-8, g++-9, g++-10, clang++-8, clang++-9, clang++-10] From 9171c9281ac9a3794e04666529fe707cf9b158f7 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 12:43:58 +0100 Subject: [PATCH 09/15] ... --- .github/workflows/cmake.yml | 56 ------------------------------------- 1 file changed, 56 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 99495528..8e8756cf 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -3,7 +3,6 @@ name: Build on: [push, pull_request] jobs: - matrix: matrix: os: [ubuntu-20.04] compiler: [g++-7, g++-8, g++-9, g++-10, clang++-8, clang++-9, clang++-10] @@ -256,51 +255,7 @@ jobs: path: | build\src\FIRESTARTER_CUDA.exe build\src\libhwloc-15.dll - build-macos: - strategy: - fail-fast: false - matrix: - os: [macos-11, macos-12, macos-13] - #os: [macos-11.0, macos-10.15] - - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v2 - 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@v2 - if: matrix.os == 'macos-12' - with: - name: FIRESTARTER-macOS_12 - path: build/src/FIRESTARTER - - uses: actions/upload-artifact@v2 - if: matrix.os == 'macos-11' - with: - name: FIRESTARTER-macOS_11 - path: build/src/FIRESTARTER create-download: name: Create download for Website runs-on: ubuntu-latest @@ -425,17 +380,6 @@ jobs: mv FIRESTARTER/FIRESTARTER.exe FIRESTARTER-windows.exe mv FIRESTARTER/libhwloc-15.dll libhwloc-15.dll rm -rf FIRESTARTER - # Windows CUDA 11.0 - - name: Retrieve FIRESTARTER_CUDA_11.0-windows - uses: actions/download-artifact@v2 - 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: | From 3474d20b453672e94dd905e1505fa097b81ce46d Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 12:46:14 +0100 Subject: [PATCH 10/15] ... --- .github/workflows/cmake.yml | 145 +----------------------------------- 1 file changed, 3 insertions(+), 142 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 8e8756cf..587c3416 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -3,6 +3,9 @@ name: Build on: [push, pull_request] jobs: + build-linux: + strategy: + fail-fast: false matrix: os: [ubuntu-20.04] compiler: [g++-7, g++-8, g++-9, g++-10, clang++-8, clang++-9, clang++-10] @@ -256,145 +259,3 @@ jobs: build\src\FIRESTARTER_CUDA.exe build\src\libhwloc-15.dll - create-download: - name: Create download for Website - runs-on: ubuntu-latest - needs: [build-linux, build-macos, build-windows] - steps: - - uses: actions/checkout@v2 - 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@v2 - 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@v2 - 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@v2 - 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@v2 - 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@v2 - 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@v2 - 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 - # OSX 11.0 - #- name: Retrieve FIRESTARTER-macOS_11.0 - # uses: actions/download-artifact@v2 - # with: - # name: FIRESTARTER-macOS_11.0 - # path: FIRESTARTER - #- name: Move binary to right directory - # run: | - # mv FIRESTARTER/FIRESTARTER ../FIRESTARTER-macOS_11.0 - # rm -rf FIRESTARTER - # chmod +x ../FIRESTARTER-macOS_11.0 - # OSX 10.15 - - name: Retrieve FIRESTARTER-macOS_11 - uses: actions/download-artifact@v2 - with: - name: FIRESTARTER-macOS_11 - path: FIRESTARTER - - name: Move binary to right directory - run: | - mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_11 - rm -rf FIRESTARTER - chmod +x FIRESTARTER-macOS_11 - - name: Retrieve FIRESTARTER-macOS_12 - uses: actions/download-artifact@v2 - 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 - # Windows - - name: Retrieve FIRESTARTER-windows - uses: actions/download-artifact@v2 - 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 - # 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@v2 - with: - name: FIRESTARTER.tar.gz - path: FIRESTARTER.tar.gz - From 7b74b528ce63257871c92f314ca69223aa195043 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 12:47:57 +0100 Subject: [PATCH 11/15] added macos --- .github/workflows/cmake.yml | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 587c3416..a43930b8 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -258,4 +258,49 @@ jobs: path: | build\src\FIRESTARTER_CUDA.exe build\src\libhwloc-15.dll + build-macos: + strategy: + fail-fast: false + matrix: + os: [macos-11, macos-12, macos-13] + #os: [macos-11.0, macos-10.15] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + 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@v2 + if: matrix.os == 'macos-12' + with: + name: FIRESTARTER-macOS_12 + path: build/src/FIRESTARTER + - uses: actions/upload-artifact@v2 + if: matrix.os == 'macos-11' + with: + name: FIRESTARTER-macOS_11 + path: build/src/FIRESTARTER From 3b9dc8d87abc18e188024d3834fc224b9540853a Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 13:40:10 +0100 Subject: [PATCH 12/15] create tgz --- .github/workflows/cmake.yml | 152 ++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index a43930b8..9d85c1ac 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -303,4 +303,156 @@ jobs: with: name: FIRESTARTER-macOS_11 path: build/src/FIRESTARTER + create-download: + name: Create download for Website + runs-on: ubuntu-latest + needs: [build-linux, build-macos, build-windows] + steps: + - uses: actions/checkout@v2 + 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@v2 + 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@v2 + 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@v2 + 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@v2 + 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@v2 + 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@v2 + 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 + # OSX 11.0 + #- name: Retrieve FIRESTARTER-macOS_11.0 + # uses: actions/download-artifact@v2 + # with: + # name: FIRESTARTER-macOS_11.0 + # path: FIRESTARTER + #- name: Move binary to right directory + # run: | + # mv FIRESTARTER/FIRESTARTER ../FIRESTARTER-macOS_11.0 + # rm -rf FIRESTARTER + # chmod +x ../FIRESTARTER-macOS_11.0 + # OSX 10.15 + - name: Retrieve FIRESTARTER-macOS_11 + uses: actions/download-artifact@v2 + with: + name: FIRESTARTER-macOS_11 + path: FIRESTARTER + - name: Move binary to right directory + run: | + mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_11 + rm -rf FIRESTARTER + chmod +x FIRESTARTER-macOS_11 + - name: Retrieve FIRESTARTER-macOS_12 + uses: actions/download-artifact@v2 + 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 + # Windows + - name: Retrieve FIRESTARTER-windows + uses: actions/download-artifact@v2 + 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@v2 + 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@v2 + with: + name: FIRESTARTER.tar.gz + path: FIRESTARTER.tar.gz From 869975f7053a4d4db01979fb030bfd0ec40d9f37 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Wed, 10 Jan 2024 13:59:16 +0100 Subject: [PATCH 13/15] ... --- .github/workflows/cmake.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 9d85c1ac..2bb2e240 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -250,7 +250,16 @@ jobs: if: matrix.cfg.CUDA == '0' && matrix.cfg.MSVC == false with: name: FIRESTARTER-windows - path: build\src\FIRESTARTER.exe + path: | + build\src\FIRESTARTER.exe + build\src\libhwloc-15.dll + - uses: actions/upload-artifact@v2 + 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@v2 if: matrix.cfg.CUDA != '0' with: From d04345d258226615c6b2109e5aa39bc924d84727 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Thu, 27 Jun 2024 09:43:39 +0200 Subject: [PATCH 14/15] added macos 14, removed stuff from macos 11 --- .github/workflows/cmake.yml | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 93d956e7..21c517cc 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -275,7 +275,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-12, macos-13] + os: [macos-12, macos-13, macos-14] runs-on: ${{ matrix.os }} @@ -311,9 +311,14 @@ jobs: name: FIRESTARTER-macOS_12 path: build/src/FIRESTARTER - uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-11' + if: matrix.os == 'macos-13' with: - name: FIRESTARTER-macOS_11 + name: FIRESTARTER-macOS_13 + path: build/src/FIRESTARTER + - uses: actions/upload-artifact@v4 + if: matrix.os == 'macos-14' + with: + name: FIRESTARTER-macOS_14 path: build/src/FIRESTARTER create-download: name: Create download for Website @@ -418,6 +423,26 @@ jobs: 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 + - name: Retrieve FIRESTARTER-macOS_14 + uses: actions/download-artifact@v4 + with: + name: FIRESTARTER-macOS_14 + path: FIRESTARTER + - name: Move binary to right directory + run: | + mv FIRESTARTER/FIRESTARTER FIRESTARTER-14 + rm -rf FIRESTARTER + chmod +x FIRESTARTER-macOS_14 # Windows - name: Retrieve FIRESTARTER-windows uses: actions/download-artifact@v4 From b77e86e569099294c7919ff2cc3f9411fe787917 Mon Sep 17 00:00:00 2001 From: Robert Schoene Date: Thu, 27 Jun 2024 10:19:24 +0200 Subject: [PATCH 15/15] removed macos 14 --- .github/workflows/cmake.yml | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 21c517cc..6d02827e 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -275,7 +275,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-12, macos-13, macos-14] + os: [macos-12, macos-13] runs-on: ${{ matrix.os }} @@ -315,11 +315,6 @@ jobs: with: name: FIRESTARTER-macOS_13 path: build/src/FIRESTARTER - - uses: actions/upload-artifact@v4 - if: matrix.os == 'macos-14' - with: - name: FIRESTARTER-macOS_14 - path: build/src/FIRESTARTER create-download: name: Create download for Website runs-on: ubuntu-latest @@ -401,18 +396,6 @@ jobs: mv FIRESTARTER/FIRESTARTER_ONEAPI FIRESTARTER_ONEAPI_2023.2.0 rm -rf FIRESTARTER chmod +x FIRESTARTER_ONEAPI_2023.2.0 - # OSX 11.0 - #- name: Retrieve FIRESTARTER-macOS_11.0 - # uses: actions/download-artifact@v4 - # with: - # name: FIRESTARTER-macOS_11.0 - # path: FIRESTARTER - #- name: Move binary to right directory - # run: | - # mv FIRESTARTER/FIRESTARTER ../FIRESTARTER-macOS_11.0 - # rm -rf FIRESTARTER - # chmod +x ../FIRESTARTER-macOS_11.0 - # OSX 10.15 - name: Retrieve FIRESTARTER-macOS_12 uses: actions/download-artifact@v4 with: @@ -433,16 +416,6 @@ jobs: mv FIRESTARTER/FIRESTARTER FIRESTARTER-macOS_13 rm -rf FIRESTARTER chmod +x FIRESTARTER-macOS_13 - - name: Retrieve FIRESTARTER-macOS_14 - uses: actions/download-artifact@v4 - with: - name: FIRESTARTER-macOS_14 - path: FIRESTARTER - - name: Move binary to right directory - run: | - mv FIRESTARTER/FIRESTARTER FIRESTARTER-14 - rm -rf FIRESTARTER - chmod +x FIRESTARTER-macOS_14 # Windows - name: Retrieve FIRESTARTER-windows uses: actions/download-artifact@v4