In general, the -DWITH_*_BACKEND flags are typically unneeded as, especially when installing CUDA/ROCm/OpenCL using official packages, AdaptiveCpp cmake will auto-detect and auto-enable them - but it doesn't hurt :)
I haven't touched the LLVM version, but I'm pretty sure we will have to touch that eventually and use 17 for AdaptiveCpp. I cannot guarantee that AMD with LLVM 18 will be reliable. JIT compilation could break any time with any change to source code. That setup breaks LLVM IR compatibility guarantees between different LLVM IR versions (ingesting LLVM IR generated by an older LLVM version is supported, but the reverse is not and generally breaks with every LLVM release somewhere).
-DWITH_OPENCL_BACKEND
nbody
, which also includes the hacky PTX inline assembly for the atomicsrecurse-submodules
is not not neededdevelop
andnbody
branch include a fix that should let it findlibLLVM-18.so
, so the symlink should no longer be needed: https://github.com/AdaptiveCpp/AdaptiveCpp/pull/1551In general, the
-DWITH_*_BACKEND
flags are typically unneeded as, especially when installing CUDA/ROCm/OpenCL using official packages, AdaptiveCpp cmake will auto-detect and auto-enable them - but it doesn't hurt :)I haven't touched the LLVM version, but I'm pretty sure we will have to touch that eventually and use 17 for AdaptiveCpp. I cannot guarantee that AMD with LLVM 18 will be reliable. JIT compilation could break any time with any change to source code. That setup breaks LLVM IR compatibility guarantees between different LLVM IR versions (ingesting LLVM IR generated by an older LLVM version is supported, but the reverse is not and generally breaks with every LLVM release somewhere).