Skip to content

[CUDA] Multiple cts/specialization_constants_* tests crashed on build with error: Assertion `llvm::isSafeToDestroyConstant(*It) && "Cannot remove an element of initializer of llvm.used global"' failed. #5911

@skosnits

Description

@skosnits

Describe the bug
[CUDA] Multiple cts/specialization_constants_* tests crashed on build with error: Assertion `llvm::isSafeToDestroyConstant(*It) && "Cannot remove an element of initializer of llvm.used global"' failed.

To Reproduce

  1. Get SYCL with CUDA support (GSG) and (SYCL-CTS)

  2. Build CTS tests

cd SYCL-CTS
mkdir build && cd build
cmake -G "Ninja" -DSYCL_IMPLEMENTATION=Intel_SYCL -DINTEL_SYCL_ROOT=<path to built sycl> -DOpenCL_LIBRARY=<path to built sycl>/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=<path to built sycl>/include/sycl -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE=" " -DINTEL_SYCL_FLAGS="-fsycl-device-code-split=per_source;-Wno-deprecated-declarations;-fsycl;-fsycl-unnamed-lambda" -DCMAKE_EXE_LINKER_FLAGS=" -Wl,-no-relax " -DINTEL_SYCL_TRIPLE=nvptx64-nvidia-cuda -DSYCL_CTS_ENABLE_OPENCL_INTEROP_TESTS=Off -DSYCL_CTS_ENABLE_DOUBLE_TESTS=On -DSYCL_CTS_ENABLE_HALF_TESTS=On ..
ninja -j 7 -k 0 -v test_specialization_constants

Error message:

FAILED: bin/test_specialization_constants 
: && <path to built sycl>/bin/clang++ -DSYCL2020_CONFORMANT_APIS -DSYCL2020_DISABLE_DEPRECATION_WARNINGS -D__SYCL_DISABLE_PARALLEL_FOR_RANGE_ROUNDING__ -ffp-model=precise      -Wl,-no-relax    -fsycl -sycl-std=2020 -fsycl-device-code-split=per_source -Wno-deprecated-declarations -fsycl-unnamed-lambda -fsycl-targets=nvptx64-nvidia-cuda tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_class_with_member_fun.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_defined_various_ways_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_defined_various_ways_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_defined_various_ways_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_exceptions_throwing_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_exceptions_throwing_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_exceptions_throwing_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_external_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_external_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_external_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_multiple_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_multiple_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_multiple_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_command_group_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_command_group_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_command_group_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_inter_link_1st_tu_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_inter_link_1st_tu_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_inter_link_1st_tu_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_inter_link_2nd_tu_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_inter_link_2nd_tu_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_inter_link_2nd_tu_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_stress_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_stress_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_same_name_stress_fp64.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_separate_unit.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_via_handler_core.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_via_handler_fp16.cpp.o tests/specialization_constants/CMakeFiles/test_specialization_constants_objects.dir/specialization_constants_via_handler_fp64.cpp.o tests/common/CMakeFiles/main_function_object.dir/main.cpp.o -o bin/test_specialization_constants  -Wl,-rpath,<path to built sycl>/lib util/libutil.a oclmath/liboclmath.a vendor/Catch2/src/libCatch2.a <path to built sycl>/lib/libOpenCL.so -lpthread && :
sycl-post-link: llvm.src/llvm/tools/sycl-post-link/sycl-post-link.cpp:856: bool {anonymous}::removeSYCLKernelsConstRefArray(llvm::GlobalVariable*): Assertion `llvm::isSafeToDestroyConstant(*It) && "Cannot remove an element of initializer of llvm.used global"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: sycl-post-link -split=source -emit-param-info -emit-program-metadata -symbols -emit-exported-symbols -split-esimd -lower-esimd -O2 -spec-const=default -o /tmp/specialization_constants_class_with_member_fun-b583ea/specialization_constants_class_with_member_fun-sm_50.bc /tmp/specialization_constants_class_with_member_fun-e212e6/specialization_constants_class_with_member_fun-sm_50.bc
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
sycl-post-link(+0x2a74b4)[0x56016f79c4b4]
sycl-post-link(+0x2a552e)[0x56016f79a52e]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7f03bd8543c0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f03bd0f818b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f03bd0d7859]
/lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7f03bd0d7729]
/lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7f03bd0e8f36]
sycl-post-link(+0x96643)[0x56016f58b643]
sycl-post-link(+0x6ecd0)[0x56016f563cd0]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f03bd0d90b3]
sycl-post-link(+0x8460e)[0x56016f57960e]
clang++: error: unable to execute command: Aborted (core dumped)
clang++: error: sycl-post-link command failed due to signal (use -v to see invocation)
clang version 15.0.0 (https://github.com/intel/llvm.git 1fe5eaa7455f25a1475794bedc42cc73e9b07bd1)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: <path to built sycl>/bin
clang++: note: diagnostic msg: Error generating preprocessed source(s).
ninja: build stopped: cannot make progress due to previous errors.

Environment

nvidia-smi
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+

Metadata

Metadata

Assignees

No one assigned

    Labels

    CTSImpacts Khronos SYCL CTSbugSomething isn't workingcompilerCompiler related issuecudaCUDA back-end

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions