SYCL Link/Build Issues
The SYCL PR https://github.com/LLNL/RAJA/pull/1081 was tried on RZHASGPU (Intel CPU + Nvidia GPU) and has some linking/compilation problems:
- Dpcpp build error using the
dpcpp.cuda.shscript. The clang compiler installed needs to be compiled with theSYCL_BUILD_PI_CUDA=ONCmake option in order for the faulty flag to work.
[ 0%] Building CXX object CMakeFiles/RAJA.dir/src/AlignedRangeIndexSetBuilders.cpp.o clang++: error: SYCL target is invalid: 'nvptx64-nvidia-cuda-sycldevice'
How to reproduce (using branch bugfix/chen59/sycllinking for convenience):
- ssh rzhasgpu
- git clone --recursive --branch bugfix/chen59/sycllinking [email protected]:LLNL/RAJA.git
- cd RAJA
- module load intel/oneapi.2021.2
- salloc
- ./scripts/alcf-builds/dpcpp.cuda.sh
- Clang link error using the
sycl.shscript. The linker searches for c++11 symbols regardless of the-stdflag or whichCXX_STANDARDis set. In the past, people had added the-D_GLIBCXX_USE_CXX11_ABI=0compilation flag to avoid c++11 symbols, but this no longer appears to work. NOTE: Need to load the intel/oneapi.2021.2 module when building with this script.
How to reproduce (using branch bugfix/chen59/sycllinking for convenience):
- ssh rzhasgpu
- git clone --recursive --branch bugfix/chen59/sycllinking [email protected]:LLNL/RAJA.git
- cd RAJA
- module load intel/oneapi.2021.2
- salloc
- ./scripts/alcf-builds/sycl.sh
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/../../../../bin/ld: /usr/tce/packages/oneapi/oneapi-2021.2/compiler/2021.2.0/linux/bin/../lib/libsycl.so: undefined reference to 'VTT for std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21' /opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/../../../../bin/ld: /usr/tce/packages/oneapi/oneapi-2021.2/compiler/2021.2.0/linux/bin/../lib/libsycl.so: undefined reference to 'std::thread::_State::~_State()@GLIBCXX_3.4.22'