Hello All,
I’ve just noticed that 350MB of GPU memory mysteriously disappear right after context initialization. Moreover, GPU0 looses twice as much, i.e. 700MB. I have 3 cards in a box –
Device 0: GeForce GTX 480, 1535MB, CC 2.0
Device 1: Tesla C2050, 3071MB, CC 2.0
Device 2: GeForce GTX 480, 1535MB, CC 2.0
But when I call cuMemGetInfo(), I get
0: available GPU memory: 835MB
1: available GPU memory: 2720MB
2: available GPU memory: 1183MB
I’m not running X. When X is launched, it grabs additional ~30MB from GPU0 –
0: available GPU memory: 801MB
1: available GPU memory: 2720MB
2: available GPU memory: 1183MB
which makes a lot of sense… But where are those 350MB?
I use cuda 3.2 on fedora
Apparently, this problem doesn’t exist on another machine running centos. I would greatly appreciate if you could compile/run this code and post your results here!
It’s probably static context buffer allocation, which are configurable. The defaults have been increased in toolkit 3.2 for printf() buffers and such, but you can set them yourself with something like:
cudaThreadSetLimit(cudaLimitStackSize, 32768);
Why one GPU could use more than another, I don’t know, but perhaps you haven’t initialized the same number of contexts on all of them.