I have written the following code to display some basic information about my card including the total memory and free memory:
#include <stdio.h>
#include <stdlib.h>
#include "cuda.h"
int main(void){
unsigned int total_memory;
unsigned int free_memory;
cudaDeviceProp properties;
CUcontext context;
int device=0;
cudaSetDevice(device);
cuCtxCreate(&context,0,device);
cuInit(device);
cudaGetDeviceProperties(&properties, device);
cuMemGetInfo(&free_memory,&total_memory);
printf("Name : %s\n", properties.name);
printf("Total Global Mem: %d\n", properties.totalGlobalMem);
printf("Total memory : %d\n", total_memory);
printf("Free memory : %d\n", free_memory);
return 0;
}
I have run the code on both my personal computer and a departmental server. My home computer has a GeForce 9800 GT while the server has a Tesla C1060. The code works just fine on my the 9800 GT but not on the Tesla. On the Tesla, the memory reported is all negative. Here are the results:
9800 GT:
Name : GeForce 9800 GT
Total Global Mem: 536150016
Total memory : 536150016
Free memory : 497487616
Tesla C1060:
Name : Tesla C1060
Total Global Mem: -262144
Total memory : -262144
Free memory : -49889536
Can anyone help me to get the memory to report correctly on the Tesla?