If I have a source file including a CUDA kernel and OpenMP directives, I can compile it like so on my Linux machine:
/usr/local/cuda/bin/nvcc -arch=sm_30 cutest.cu --compiler-options=-fopenmp
I would expect to be able to compile it with clang 11 like so:
clang -fopenmp --cuda-gpu-arch=sm_30 cutest.cu
-L/usr/local/cuda/lib64 -lcudart -ldl -lrt -pthread
But when I try, I get a number of undefined function symbols: __nv_isnand, __nv_isinfd, __nv_copysign, etc.
Am I doing something wrong?
Which version of clang is this exactly?
Can you reproduce the error with trunk?
There was a problem that should have been fixed and back ported to the release branch.
This is with the release branch (11.0.1, updated Tuesday 17 november). I haven’t tried with the trunk… I will try to test the trunk tomorrow.
I just tested the master branch, and it works. So apparently the problem is with the 11.x branch.
I think the problem is we never ported the fix back into 11.
Here is the bug report https://bugs.llvm.org/show_bug.cgi?id=48014