cudaMalloc fail on 32MB memory

This is my first post on CUDA Zone, and it’s a typical newbie’s question.

I am running CUDA 2.2 on Windows Vista. The GPU card is Quadro NVS 140M with 128MB global memory (confirmed by deviceQuery app). I wrote my first line of CUDA code, and it failed :-(.

int ret = cudaMalloc( (void**) &deviceData, 32 * (1 << 20)); //Allocate 32MB global memory. This function returns -2.

If I allocate 16MByte instead, the call is successful. I thought that I could allocate up to 128 MB memory. When I ran the bandwithTest sample, it failed too reporting “line 702: out of memory”, as the application tries to allocate 64MB memory. I am not sure about the reason, but suspect:

  1. It is a driver problem (version 8.15.0011.8585)
  2. CUDA gives limited access to global memories when making cudaMalloc calls.
  3. Other unknown reasons.

Thanks for your thoughts in advance!


Did you have checked how much memory is really allocated to the card into the BIOS of your notebook?

What is the model of the notebook?

Thanks for your reply. The notebook model is Lenovo T61. I went into bios but cannot find any settings related to graphics card shared memory. I did use dxdiag.exe to check the display settings: it reports a total memory of 869M! The computer’s system memory is 2048M.

I couldn’t find any tools in control panel to adjust video shared memory.