Memory capacity of a graphic card? 8800 GT


It says that the amount of memory available in the NVIDIA GeForce 8800 GT is 512 Mb.
Does this mean that we can use arrays which occupy upto 512 Mb on the device ?

What if we have an array which is larger than 512 Mb ?


You will be able to occupy most of that 512 MB memory with arrays. If the 8800 GT is your main graphics device, some of the 512 MB will be used to render your operating system GUI, and therefore not available to CUDA.

CUDA has no concept of memory swapping, so you are not allowed to allocate more memory than the device has available. cudaMalloc() will fail in that case.

I think one can emulate swapping using cuda streams.
Computations and memory copies can be done in parallel
to a certain extent , read carefully about this in CUDA programming guide

NOte this is only supported with compute capability 1.1 devices.
Unfortunately 8800 do not belong to that :-(

Depending on your algorithm, if it is enough computational intensive (compared to memory accesses), the amount of time spent for feeding data into GPU and getting it back can be an order of magnitude less than processing that on GPU, especially of your algorithm is iterative and can work on isolated data blocks at least for a few iterations with later synchronization.

Again, if algorithm makes possible data separation (independent processing for some time and then synch the boundaries of the data chunks) you may consider using multi-GPU solution. Then each device (card) has it’s own memory space and you may have up to 4 deviced on a single motherboard that gives you 2Gb of RAM.

Don’t forget that modern HD displays eat lots of GPU RAM for framebuffer (visible and hidden), so 25601600RGBA*2 = ~30 Mb. I believe in fact more memory is used by your OS graphics subsystem than that. The best way to test that is to try various cudaMallocs on a “clean” system that does not run much GUI application. I beleve this is especially true for Windows Vista that extensively uses GPU.

Nice idea. Thanks.

And actually, the 8800 GT is G92 so it does have compute capability 1.1.