I am using an Nvidia Tesla C2050 on Windows 7.
Even though my card contains 2651 MB of memory, any time I try to use cudaMalloc to allocate more than 1151 MB at once, I get the error: Runtime API Error: out of memory.
Note that this only happens when I allocate more than 1151 MB using a single cudaMalloc call. If I split my request up into chunks, it works fine. In other words, this returns device out of memory.
cudaMalloc((void**) &ptr, 1152*1024*1024);
However, these two requests work fine.
cudaMalloc((void**) &ptr, 1151*1024*1024); cudaMalloc((void**) &ptr, 1151*1024*1024);
Is there a maximum amount of device memory that can be allocated at once?