Device code (that is what kernels actually are) can't be compiled with anything except nvcc. I guess your question is actually about host code compilation ... if so, it is possible to try to direct the nvcc to icc using -ccbin nvcc key - but I have no ideas what results you will have :-)
My compilation process is rather straightforward: *.cu files are compiled with nvcc and msvc, rest code is compiled with icc.
kernel is ambiguous in this context. In order to installl cuda on a Linux machine, one must compile the device driver for the Nvidia card, with the same compiler, and the same header files which were used to create the kernel for the Linux operating system.
LinuxDna, has tweaked the linux kernel source code so that one can compile the Linux kernel with the Intel compiler. The have documented enormous increases in speed. For example, for small context switches, the Intel compiled Linux kernel is 4 times faster than the gcc compiled Linux kernel.
I was wanting to: 1) compile the Linux kernel (tweaked ala LinuxDNA) with the intel compiler 2) compile the Nvidia device driver with Icc 3) Run the Linux kernel which I just compiled with the Nvidia device driver wich I just compiled, to run Cuda
I was wondering if anyone has done this before?
For people concerned with speed, this seems like a really good idea.