G-071 / octotiger-spack

2 stars 4 forks source link

Adapt for sycl on intel node #5

Closed G-071 closed 5 months ago

G-071 commented 8 months ago

This PR adapts this Spack repository to the new Intel GPUs. For these, we expect that both Octo-Tiger and its toolchain are compiled with the %oneapi compiler (instead of using dpcpp as a dependency, as we did for our older SYCL runs on NVIDIA/AMD GPUs).

This PR adapts the toolchain accordingly. It also now uses the most current Kokkos package from the main Spack repository. Technically, it should not be necessary to have this package in the octo-tiger-spack repository at all, but without having the package in this repository I was not able to apply patches to it by using depends_on("kokkos", patches=[...], ..). This statement in the Octo-Tiger package caused Spack to automatically look for Kokkos in the octotiger-spack repository instead of the main repository).

Adding this as a draft for now, as I still need to check if the toolchain still works for using SYCL on non-Intel GPUs like this.

Other than that: The spec I tested this with on the Intel GPU machine was:

spack dev-build --drop-in bash --until cmake --test=root octotiger@master build_type==RelWithDebInfo +sycl +kokkos ~cuda %oneapi@2023.2.3 ^hpx-kokkos +sycl future_type=polling ^kokkos@4.2.00 +sycl intel_gpu_arch=intel_pvc +hpx %oneapi@2023.2.3 ^hpx@1.9.1 generator=make +sycl sycl_target_arch=intel networking=none malloc=mimalloc %oneapi@2023.2.3 ^hdf5@1.12.3 ^silo~mpi%oneapi@2023.2.3

(a bit overly verbose with the compiler as I tested a few different configurations) For these tests, I also used the Octo-Tiger workaround from PR STEllAR-GROUP/octotiger#486 to get it to run in the first place.