GPU上最大变量大小超过了在一台机器上,而不是别人

10视图(30天)
我遇到了一个“设备超过最大变量大小允许”错误。
问题:
0((7676年,7420年,37),“单身”,“gpuArray”)很好。
0([7676、7420、38],“单身”,“gpuArray”)产生的误差。
该设备是一个特斯拉k40 ~ 12 gb的可用内存。64位matlab (17 b / 16 b) 64位Linux操作系统(Ubuntu和Fedora。)
给定数组的大小,谁的产品跨越intmax价值(“int32”)我最好的猜测是,限制被设置假设数组可能重塑成一维?最大的网格大小。
MaxGridSize:(2.1475 e + 09年65535 65535)%
和%
sizeToMake =双(intmax (int32))
g = 0 ([sizeToMake 1],“单身”,“gpuArray”);%的作品
g = 0 (sizeToMake + 1, 1, '单',' gpuArray ');%失败
是故意的最大大小设置为第一个维度所允许的最大网格尺寸?这可以避免吗?
谢谢,本

答案(1)

艾莉森Eele
艾莉森Eele 2018年1月8日
你是正确的,限制你触及intmax (“int32”)。这确实把硬限制强加于gpuArrays的大小。这一限制源于CUDA CUBLAS / CUFFT MATLAB利用api。
我建议将网格的大小为多个变量。

类别

找到更多的在GPU计算帮助中心文件交换

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!