kunzmi / managedCuda

ManagedCUDA aims an easy integration of NVidia's CUDA in .net applications written in C#, Visual Basic or any other .net language.
Other
440 stars 79 forks source link

BLAS - SPARSE Memory Problem. #20

Closed archiseb closed 8 years ago

archiseb commented 8 years ago

Dear Michael. I have strange behawior of CUDA and my nVidia Gtx 650 Ti (1Gb Memory) I'm lunching my CUDA project under Rhinoceros software (as plugin). In the IDLE Rhino is taking more or less 260 MB from GPU memory. BTW. I'm measuring memory by TechPowerUp GPU 0.8.7 app. I know is not the most precise, but enough. idle

Creating my Context, BLAS,Sparse and Kernels looks like this in VS. vs Then by break points I was recording Memory Usage And Its huge and strange. Context takes 22 MB ctx BLAS 180 MB !!! blas Sparse 347 MB !!! sparse

Creating this 3 context occupy whole memory on GPU. Also creating them takes few seconds. What is more, at university I have GTX970 and that contexts never occupied so much memory or time during creation. The whole calculation on GTX970 takes 100 MB (with my data copied to GPU). On 650 I even cannot copy data. I get error OutOfMemory.

What is more, in code I have Dispose functions. On 970 works perfectly, on 650 not. Its the same Code! (I'm using TeamFoundation Git server) Maybe You have any Idea why BLAS and Sparse takes so much memory? What I'm doing wrong?

Best regards, Sebastian

archiseb commented 8 years ago

Hi. Ok. It is stupid as hell, but I have updated my drivers from 364.xx to 368.xx and It helps !!! Now all Context take few MB. Lovely drivers 364.xx ehh..

I think you can close this Issue. But it can be warning for other users ! BTW . It is possible to get amount of used an unused GPU memory during runtime? Like in pure CUDA API => cuda_status = cudaMemGetInfo( &free_byte, &total_byte ) ? I cannot find it in managedCUDA.

Regards. Sebastian

kunzmi commented 8 years ago

Hi, this sounds more like a bug in cublas or the driver itself and not like a bug in managedCuda. I would file a bug report to nvidia and let them know, whatever is going wrong here... To get the total and free memory size in managedCuda, you can use the CudaContext-methods GetTotalDeviceMemorySize() and GetFreeDeviceMemorySize().

Best, Michael