Constraints of limited RAM on GPGPUs

I am a beginner and have some doubts. I request you to kindly clarify the same.

Consider a system with 8 GB RAM with a GPGPU card, say ATI HD 5970 with 2 GB DDR5 memory. From what I understand reading various sources, the memory of the system (RAM) will not be available for the card. How would OpenCL handle the process if a task is to be done with GPGPU and if the data to be memory is higher than 2 GB?


Then it will be up to the application to split the data into smaller chunks and work on one piece at the time, swapping data in and out between the GPU memory and host memory as needed. I don’t think OpenCL can do this on its own.

Before executing the kernel you need to copy input data to global memory and allocate global memory for output data. If total of both allocations is bigger than available gpu global memory you’ll receive an error.

Gpu computing is all about data parallelism. If you can divide your computation domain into elements being processed by kernel independently of each other then you’re free to go. You just need to split your data elements into sets that fits into global memory and process each set in single kernel run.
If you really need the whole data in memory at once (I doubt this if its data parallel problem) then youre in trouble.

First check if your problem is data parallel problem (i.e. does it fit into SPMD paradigm)