Today I ported a CUDA
project from Arch Linux
to Ubuntu 16.04
, and this post records the pitfalls.
(0) Update cmake
to newest version (follow this);
(1) Specify nvcc
path in CMakeLists.txt
:
SET(CMAKE_CUDA_COMPILER /usr/local/cuda-9.0/bin/nvcc)
otherwise, following error may generate:
......
No CMAKE_CUDA_COMPILER could be found.
......
(2) Since Ubuntu 16.04
‘s default compiler is still gcc-5
, install gcc-6
first, then pass gcc-6
as default compiler for nvcc
:
......
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CUDA_FLAGS "-std=c++11 -ccbin gcc-6")
......
(3) Execute cmake
command:
cmake -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 -DCMAKE_BUILD_TYPE=Release ..
References:
Not Locating CUDA Compiler;
CMake: How to pass mode dependent compile flags to nvcc in visual studio environment;
Tensorflow crashes on build on Ubuntu 16.04 when building for skylake (avx512).