2013-10-23 24 views
0

我的GPU似乎允许562%的全局内存使用和133%的局部内存使用一个简单的PyOpenCL矩阵加内核。这里是我的脚本打印:为什么我可以使用133%的本地内存?

GPU: GeForce GTX 670 

Global Memory - Total: 2 GB 
Global Memory - One Buffer: 3.750000 GB 
Number of Global Buffers: 3 
Global Memory - All Buffers: 11.250000 GB 
Global Memory - Usage: 562.585844 % 

Local Memory - Total: 48 KB 
Local Memory - One Array: 32.000000 KB 
Number of Local Arrays: 2 
Local Memory - All Arrays: 64.000000 KB 
Local Memory - Usage: 133.333333 % 

如果我增加远高于这一点全局内存的使用,我得到的错误:mem object allocation failure

如果我增加本地内存使用上面这点,我得到的错误: invalid work group size

为什么我的脚本在内存使用本地或全局超过100%时不立即失败?

+0

去除CUDA标签。 –

+1

你用来收集这些数据的程序是什么? – DarkZeros

回答

1

全局大小乘以32,即错误。

当明确float32有4个字节时,这使得ab数组每个4个字节。不32.

所以对于您正确的结果将是:

Global Memory - Total: 2 GB 
Global Memory - One Buffer: 0.4687500 GB 
Number of Global Buffers: 3 
Global Memory - All Buffers: 1.40625 GB 
Global Memory - Usage: 70.3125 % 

Local Memory - Total: 48 KB 
Local Memory - One Array: 4.000000 KB 
Number of Local Arrays: 2 
Local Memory - All Arrays: 8.000000 KB 
Local Memory - Usage: 16.6666666 % 
+0

哦,我觉得真的很愚蠢。非常感谢你的支持! – benshope

相关问题