Can we use Intel C++ compiler as the host compiler? VS 2008, Win XP

Hi folks,
I was wondering if we can use the Intel C++ Compiler as the host compiler when compiling a ‘mixed’ project where I have C++ code that calls my Cuda kernels as and when required.

I have currently downloaded the Intel Parallel studio evaluation version which gave me the Intel Compiler v 11.1.061.

For projects without Cuda code, I can simply choose the Intel Compiler for a particular project and it all just works.
But for my project with the Cuda code I get compile time errors -

Performing Custom Build Step (Microsoft VC++ Environment)
1>nvcc fatal : nvcc cannot find a supported cl version. Only MSVC 8.0 and MSVC 9.0 are supported

The nvcc doc on page 15 (for v 2.1) states that we can use the -ccbin option to - “Specify the directory in which the host
compiler executable (Microsoft Visual Studion cl, or a gcc derivative) resides. By default, this executable is expected in the current executable search path.”
Should I conclude that the Intel Compiler is NOT a gcc derivative?

I have posted a similar post on the Intel compiler forum as well, but I have not yet received a reply.

If someone can tell me that this is NOT going to work, I will stop trying. So I will sincerely appreciate a reply. :thumbup:

Thanks in advance!

so far I use Intel C++ compiler 11.1.035 as host compiler on vc2005, it is O.K for cuda files

since cuda rule would use cl.exe to compile .cu file and remaining C++ code would be compiled by

Intel C++ compiler.

what’s your command line of your cuda rule?

for example, the following is command line of cude rule in a project

[codebox]“C:\CUDA\bin64\nvcc.exe” -ccbin “C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin” -I"C:\CUDA\include" -I"C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA CUDA SDK\C\common\inc" -I"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include" -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include" -I"c:\Program Files (x86)\VNI\imsl\cnl600\ms64pc\include" -I"c:\arprec-2.2.1-windll\include" -I"c:\qd-2.3.4-windll\include" -O2 -arch compute_13 -code sm_13 --host-compilation C++ -c -m 64 -o “x64\Release\transpose.obj” -odir “x64\Release” -ext none -int real “h:\project_2008\GPU\example\transpose\transpose.vcproj”[/codebox]

Interesting. I did not try that.
I actually went in and changed the -ccbin option in the build rule on the cuda files to use the Intel Compiler. This is what I changed it to -
(CUDA_BIN_PATH)\nvcc.exe" -ccbin [b]"(ICInstallDir)\bin\ia32”[/b] -arch sm_11 -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/O2,/Zi,/MT -I"(CUDA_INC_PATH)" -I./ -I../../common/inc -I../Include -o (ConfigurationName)\CudaFile.obj src\CudaFile.cu

Just changing the intel compiler to the microsoft compiler gets it going. The rule that works is as follows -
(CUDA_BIN_PATH)\nvcc.exe" -ccbin [b]"(VCInstallDir)\bin”[/b] -arch sm_11 -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/O2,/Zi,/MT -I"(CUDA_INC_PATH)" -I./ -I../../common/inc -I../Include -o (ConfigurationName)\CudaFile.obj src\CudaFile.cu

Thanks!