2013-10-23 59 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

相關問題