I’m new to CUDA programming, and I’m having seemingly endless headaches just getting some code, any code, compiling so I can start playing about with it to see how it works. I’ve had to buy a new desktop PC because the laptop I was developing on had some wacky driver problem which meant that it couldn’t compile CUDA code even though my combination of hardware and software should have coped with it. I’m set up on the desktop now, but I can’t compile code on this either.
I’ve got an AlienWare Area-51 X-58 (Intel Core i7 CPU 2.67GHz, 3GB RAM, with a GeForce 9800 GT), running 64-bit Windows Vista and Visual Studio 2008. When I try to compile samples using the Release_vc90.sln I get more errors than I know what to do with, so I tried to simplify things by using the individual solution files. This is an example of what I get when trying to compile the particles sample:
I feel silly for not having Googled the error :"> I did a search on these forums but that wasn’t as successful.
I’m using CUDA 2.2, yes[*EDIT]. I should have mentioned that, I suppose. The problem (or rather, the immediate problem) does seem to be what those threads suggest, namely that I wasn’t set up for compiling for 64 bit. I followed the advice, added the stuff to my visual studio installation, rebuilt the x64 versions of the relevant CUDA tool stuff, and tried to build particles again. This happens:
… At which point Visual Studio stops working and I have to End Process on devenv.exe via the Task Manager in order to shut it down.
Entertainingly, this also happens if I follow the suggestions in other threads on the subject to just install the 32 bit versions of the 2.2 toolkit and SDK over the top of the 64 bit versions, and just build Win32 versions of the samples. Particularly entertainingly, this is the exact same problem I had on my laptop (which was running 32bit Vista and a different graphics card) which caused me to buy a desktop in the first place, thinking it was a laptop driver problem. It seems inconceivable to me that I’m seeing this problem on two different machines, with different hardware setups and different versions of Vista, but yet nobody else seems to have encountered it.
*EDIT: Since re-reading the thread from the problems I’ve had with the laptop, I’ve now installed the drivers, toolkit and SDK for CUDA 2.1 (64bit), since that’s what profquail said I need for Visual Studio 2008 (nowhere is this made clear on the download page - perhaps it should be?). However, I’m still having exactly the same problem with 2.1 as I did with 2.2. Perhaps CUDA has decided that it will compile for everyone else, but it hates me?
Deleting the build log was an ordeal in and of itself - Windows kept complaining that the file couldn’t be deleted because it was being accessed by a program, even though I had no other programs running. I tried restarting the computer but it just sat for several minutes thrashing the hard drive, and was eventually unable to even start the task manager. I had to turn the power off manually. Something is very broken here, machine-destroyingly broken.
Turned the machine back on again, deleted the build log, turned the build processes down to 1, same problem (albeit without the warning about the build log).
I’ve found the cause of the problem - the code compiles and runs fine if I turn off Kaspersky Internet Security (my anti-virus/anti-malware/firewall type software). Specifically, there seems to be a point in the CUDA build process (I have to confess to not yet being completely familiar with every step in the process) where it tries to run (presumably auto-generated) files with names like TMPXFT_000012D4_00000000-1.BAT, and it’s somewhere around this point that the build process hangs and means I have to kill Visual Studio via the Task Manager (breaking the build log, leaving other unkillable processes running, and rendering the computer impossible to shut down turn off except by holding down the power button into the bargain).
Turning off Kaspersky works, but I’m not comfortable turning off the protection for my computer, so it’s certainly not a long-term solution. It also strikes me that whilst Kaspersky is perhaps a bit over-zealous in its protection (it often grumbles a bit when I’m doing programming work, albeit usually harmlessly), CUDA clearly has to take some of the responsibility here. I’ve seen anti-virus software aggressively attack actual viruses, and I’ve seen it jump on my own ill-formed C/C++ programs (including IOCCC entries which can get quite twisted), but I’ve never seen something react so badly to probing that it locks up the computer to such a dangerous extent. Can anybody suggest a more robust workaround than turning off the antivirus? Is there a list of known AV products which CUDA does play nicely with? Would NVidia consider looking into this for future releases of CUDA?
I’d hope there would be a way to determine what Kaspersky is doing? I use McAfee Virus Scan Enterprise 8.5.0i with no problems. If McAfee on access scanner ever does anything, it changes the task tray icon and writes to a log so I can see what happened and why an application was blocked (for example).
I can then go in and add exceptions for specific applications if I want. So for example, if McAfee didn’t like what nvcc was doing, I could just an exception for the rule for nvcc.exe.
Yeah, its a Kaspersky problem. I know a guy who had the same problem. Only real solution available is email Kaspersky, tell them to fix their software and that your dumping it, and use a different antivirus. The guy had to reformat once Kaspersky started going wild.