[Openmp-dev] check-omptarget with CUDA not in default path

Michael Kruse via Openmp-dev openmp-dev at lists.llvm.org
Mon Oct 12 14:17:43 PDT 2020


Running the OpenMP target offloading regression test fails with the
following error:

clang-12: error: cannot find libdevice for sm_70. Provide path to
different CUDA installation via --cuda-path, or pass -nocudalib to
build without linking with libdevice.

[note that passing -nocudalib also fails with:
clang-12: error: unable to execute command: Executable "ptxas" doesn't exist!
clang-12: error: ptxas command failed with exit code 1 (use -v to see
invocation)
]

for the following tests:

Failed Tests (24):
  libomptarget :: env/base_ptr_ref_count.c
  libomptarget :: env/omp_target_debug.c
  libomptarget :: mapping/alloc_fail.c
  libomptarget :: mapping/declare_mapper_api.cpp
  libomptarget :: mapping/declare_mapper_target.cpp
  libomptarget :: mapping/declare_mapper_target_data.cpp
  libomptarget :: mapping/declare_mapper_target_data_enter_exit.cpp
  libomptarget :: mapping/declare_mapper_target_update.cpp
  libomptarget :: mapping/delete_inf_refcount.c
  libomptarget :: mapping/lambda_mapping.cpp
  libomptarget :: mapping/pr38704.c
  libomptarget :: mapping/private_mapping.c
  libomptarget :: offloading/d2d_memcpy.c
  libomptarget :: offloading/dynamic_module.c
  libomptarget :: offloading/dynamic_module_load.c
  libomptarget :: offloading/info.c
  libomptarget :: offloading/looptripcnt.c
  libomptarget :: offloading/memory_manager.cpp
  libomptarget :: offloading/offloading_success.c
  libomptarget :: offloading/offloading_success.cpp
  libomptarget :: offloading/parallel_offloading_map.c
  libomptarget :: offloading/requires.c
  libomptarget :: offloading/target_depend_nowait.cpp
  libomptarget :: unified_shared_memory/api.c

The reason seems to be that CUDA is not found in any default path, so
the regression tests should pass  --cuda-path just like
cmake\Modules\LibomptargetNVPTXBitcodeLibrary.cmake already does:

set(compiler_flags_required ... --cuda-path=${CUDA_TOOLKIT_ROOT_DIR})

I assume, without having bisected, the following patch started with
this kind of error, although others have been added since then.

https://reviews.llvm.org/D84557

I can see two solutions to the problems. Either, as mentioned,
%libomptarget-compile-nvptx64-nvidia-cuda is expanded including the
--cuda-path parameter set to ${CUDA_TOOLKIT_ROOT_DIR}, or clang
(CudaInstallationDetector) is changed to use CUDA_TOOLKIT_ROOT_DIR as
one of the candidates.

Which one is preferred?

Michael

--
Tardyzentrismus verboten!


-- 
Tardyzentrismus verboten!


More information about the Openmp-dev mailing list