I am using llvm and clang version 5.0.0 together with the openmp project of that version on Ubuntu 16.04.
I try to compile a simple program involving a #pragma omp target teams distribute parallel for statement to offload to a Nvidia-GPU using the following flags:
-fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda --cuda-path=/usr/local/cuda/ --cuda-gpu-arch=sm_35
However, the compilation fails, with the following being the first assertion that is triggered:
clang++: […]/llvm-5.0.0.src/tools/clang/lib/Driver/ToolChains/Cuda.cpp:346: virtual void clang::driver::toolchains::CudaToolChain::addClangTargetOptions(const llvm::opt::ArgList&, llvm::opt::ArgStringList&, clang::driver::Action::OffloadKind) const: Assertion `!GpuArch.empty() && “Must have an explicit GPU arch.”’ failed.
Is there a way to pass the GPU architecture differently? Or is target offloading not fully supported in v5.0.0 yet and I might better use the clang-ykt project? Or have I overlooked something else completely?
Thanks for any help you can offer.