Verifying code on other borads than 8800?

Hi

I would like to know if it is possible to evaluate some compiled code either on boards pre 8800 (i.e. a 7900GT), or if a software simulation would be possible.

My problem is that I am often developing on my laptop which doesn’t have a new spiffy high-end card installed, and a test whether the code was correct would be usefull. Then I could do performance testing later on a real GPU later.

Best regards

Henrik

CUDA is only supported on GeForce 8 series cards (and forthcoming Quadro cards), since it requires hardware only present on these GPUs.

The Toolkit does include a “host emulation” mode that compiles code to run on the CPU. Note that this is not high performance (it launches a CPU thread for each thread) - it’s mainly intended for development and functional debugging.

So yes, you can code CUDA on your laptop!

Excellent!

Thanks for the quick reply

Note that you should be careful when developing in emulation because it’s possible to write code that works fine in emulation but fails on the GPU hardware.

Emulation does not simulate the GPU exactly, it simply runs the CUDA code in CPU threads. For example, since the CPU can’t run as many threads in parallel as on the GPU, if you forget a necessary __syncthreads() call, it’s possible that code won’t work correctly on the GPU even though it does on the CPU.

Also, since in emulation all the different types of device memory (shared, global, local) are actually in the same memory space (host memory), it’s possible to access device pointers from host code, and vice versa. This is of course not possible on the GPU, and so code that does so might work on in emulation and fail in the device.

So yes, emulation is very handy for development on machines that don’t have the hardware, and for debugging your algorithms and implementation, but you should test your code on G8X hardware often to make it easier to find bugs like those described above.

Mark

Does this means that CUDA will work on any upcoming Geforce Go GPUs series 8? (8600, 8400?)

Similar question as the one above. I want to experiment with CUDA. (thx for releasing CUDA) I however always work on laptops…

Therefor: Will CUDA work on the upcoming Geforce Go GPUs?

thx in advance.

I can’t comment on unannounced products, but CUDA should work on any G8X (i.e. GeForce 8 Series and Quadro G8X) and higher GPU.

Mark

hi,

i would like to know if software emulation is supported in the long term… in other words I want to ask if software emulation will be supported in the future CUDA releases ?

I am planning to begin a CUDA based project on my hp notebook (core 2 duo 5600,go 7600 …) and would like to know if it is a viable option to begin programming on this setup cause I really dont want to spend $1000 on a new desktop until I’m done with a working build of my project

Please advise

Thx

SM

Yes, device emulation will be supported in the next release.

It is a viable option to begin a project, provided you’re aware of the caveats described in section 4.5.2.8 of the programming guide. Some of them are easily overlooked with the current release though (like dereferencing a device pointer in host code or vice-versa). We’ll try and improve for the next release. Executing the code on the device remains the only effective way to detect these and make sure your code is indeed working.

Great, thanks for the prompt reply

Do not believe in device emulation too much…

True: “while working in emulation mode you don’t need a 8800”
But: “You absolutely need a nVidia card (chipset?) because you DO NEED the driver to use the driver API!”

:thumbsdown: