Cuda & Visual 2008

Hi is there any way to integrace CUDA with visual studio 2008 ?

Our whole project is VC2008 based (we use intel compiller anyway)
and now integrating CUDA into project is pain in the ass :/

What is so special with cl.exe from vc2008 that it cannot interop with nvcc ?
basically CUDA just invokes cl.exe to compile host code right, and the command
line options for cl.exe 8.x are that same as for cl.exe 9.x (vell some of them are deprecated but that’s a detail) so whats a deal ?

Anyoone tried some dirty tricks to get this to work (well expect installing VC 2005 express :))

CUDA 2.0b does not support VS2008. It’s in the docs… so naturally is a pain because the C CRT and WinSxS are different.

On the other hand I found VS2008 very bugged. I’ve myself reported more than 10 bugs in the last month. I won’t use it until Microsoft releases the final SP1.

So… use VS2005 SP1 and forget VS2008 by the moment :biggrin:

Well we’v use vs2008 ONLY as IDE and compilling using intel compiller.
BTW. The cl 9.0 is far less buggy than cl 8.0 in case of use of sse3 & intrinsics
in general, its still buggy i know, that’s why we use intel compiller (with is buggy too,
but gets more frequent updates and support ANSFERS any questions about codegen quickly :))

i’v managed to run run Cuda 2.0 on vs2008, the only thing you need are
the env. settings like: %VS80COMNTOOLS% to be set and all works just fine
(just ripp off those vcvarsall.bat from vc2005 express, modify paths to point vc2008 & intel integration and all is fine, now my host code is compilled using intel compiller ;)

Hi, DarkAr,

Can you put it into more details or can you share your configrations on VS2008, CUDA and icc?

I tried your instructions howeve failed.

It seems Visual Studio 2008 creates an environmental variable VS90COMNTOOLS (2005 uses VS80COMNTOOLS) that points the IDE to where the compiler is.

Install both 2008 and 2005, open System Properties>Advanced>Environmental Variables (on XP. Vista is slightly different), and change VS90COMNTOOLS to be the same value as VS80COMNTOOLS. This should tell 2008 to use the 2005 compiler, linker, etc.

I have not tried this myself, however I believe this is what the poster was talking about. I don’t know if this will break anything for your project, even though you’re using icc. It might.

I think nvcc can also take the VS compiler path on its command line. Read the docs. Then you can just point only nvcc to the 2005 compilers and nothing else should be affected, in case the above doesn’t work.

On second look, VS90COMNTOOLS doesn’t point to the compiler’s path at all. :wacko:

EDIT: On the third look, the directory contains a file vsvars32.bat that sets the paths for everything else. So maybe it will work. I dunno. Go try it. And let us know.