Talk about GPU computing with CUDA and OpenCL
In March 2017 I gave a talk about GPU computing with CUDA and OpenCL at the para//el 2017 conference in Heidelberg, Germany.
November 30, 2016
CUDA 8.0 on Mac OS X 10.12 gave me the following error:
The version ('80000') of the host compiler ('Apple clang') is not supported
So there is a mismatch between the new Xcode 8.1 and the new CUDA 8.0.
$ make
/usr/local/cuda/bin/nvcc -ccbin clang -m64 --std=c++11 -O2 -lineinfo --relocatable-device-code true -Xcompiler -arch -Xcompiler x86_64 -gencode arch=compute_30,code=sm_30 -o Main.o -c Main.cpp
nvcc fatal : The version ('80000') of the host compiler ('Apple clang') is not supported
make[1]: *** [Main.o] Error 1
make: *** [map/Makefile.ph_build] Error 2
I had the following version of clang installed
$ clang --version
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Solution
sudo xcode-select --switch /Library/Developer/CommandLineTools
Now clang says it is version 7.3
clang --version
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin16.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
And nvcc works again.
Make sure that you do not update the developer tools again. Mac OS X will offer an update of the “command line tools” via the app store as soon as it detects that the older version is active.
Thanks to the developer blog of NVIDIA for pointing this out.
In March 2017 I gave a talk about GPU computing with CUDA and OpenCL at the para//el 2017 conference in Heidelberg, Germany.
In CUDA 8.0 C++ 11 lambdas can be used on the device. See the following code.