when I arch option, error "sh: cicc: command not found" takes place.

when I try to compile without -arch options, there is no error.
$ nvcc source.cu -o source.exe

and I try to compile with -arch=12, no error.
$ nvcc -arch=sm_12 source.cu -o source.exe

but I try to compile with -arch=20, I face the error.
$ nvcc -arch=sm_20 source.cu -o source.exe

sh: cicc: command not found

What is cicc?
How can I fix this problem.

Device: Tesla M2075
CUDA Capability: 2.0
Os: Linux 2.6.18-238.el5 x86_64
gcc version: gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)
NVIDIA driver: NVRM version: NVIDIA UNIX x86_64 Kernel Module 319.60 Wed Sep 25 14:28:26 PDT 2013
CUDA SDK: 5.5

Your installation of CUDA appears incomplete or your environment (e.g. PATH env var) may not be set up correctly. CUDA uses two different compiler “front ends”: Open64 is used for sm_1x architectures, and NVVM (based on LLVM) is used for architectures sm_20 and up. “cicc” is the NVVM executable, the Open64 executable is called “opencc” if I recall correctly.

So either cicc is absent on your machine (due to incomplete installation of CUDA 5.5) or it is present but cannot be found by the compiler driver nvcc (e.g. because it is not in the PATH).

1 Like