我想知道我的GPU设备感谢功能cuMemGetInfo()cuMemGetInfo(),并为size_t限制
// ----- Before any variable initialization -----
size_t free;
size_t total;
CUresult result=cuMemGetInfo(&free,&total);
我得到的结果在我的自由和总内存:
Free memory : 4095 MB
Total memory : 4095 MB
我正在使用64位Windows 7上的6GB内存的特斯拉C2070。但是,我的应用程序运行在32位。我的代码应该给我这样的:
Free memory : 5376 MB
Total memory : 5376 MB // values given by the deviceQuery.exe example of CUDA
我4095 * 1024 * 1024 = 4293918720大约是2^32(四舍五入后)。的确,size_t是一个指向unsigned int(4字节)的指针。
所以这是我的问题。例如,是否可以更改size_t的定义以指向无符号长整型?
感谢
设置您的主机代码为64位编译,你应该得到一个64位'size_t'。 – 2014-11-25 10:34:14
哦,我记得由于Qt,CUDA和Visual Studio之间的兼容性,我无法运行64位应用程序。有什么办法可以解决这个问题吗? – 2014-11-25 10:48:12
@ ParkYoung-Bae如果你想提供一个答案,我会喜欢的话。将该应用程序编译为64位是*唯一方式*来访问超出4GB边界的GPU内存。 – 2014-11-25 10:49:15