我如何解决一个未知的错误使用GPU阵列?Error using gpuArray设备上发生意外错误。错误代码是:UNKNOWN_ERROR。”))

20次浏览(过去30天)
威廉Krska
威廉Krska 2021年8月13日
评论道: 神骑士 2021年8月14日
我正在制作一个大型矩阵,并将其发送到GPU进行计算,包括下面。然而,当试图在一台笔记本电脑(戴尔XPS 9500 w/ GTX 1650 ti)上运行时,它在倒数第二行打印时出错:
错误使用gpuArray
一个设备出现异常错误。处理步骤错误代码是:UNKNOWN_ERROR。
我在借来的笔记本电脑(Inspiron 16 plus w/ RTX 3060)上尝试了这一点,在需要重新启动Matlab以清除错误之前,只能运行一次。我还尝试了在不让矩阵稀疏的情况下得到相同的结果。我所有的司机都是最新的。N和下面的N是在~2000-4000范围内的值,所以这是一个很大的矩阵。忽略可能的低效率和失礼,有帮助吗?
使A变大
%拆解L/R
A_left = sparse(A_ext(1:end/2,:));
A_right = sparse(A_ext(end/2+1:end,:));
N = size(A_left,1);% N = meas pix
n = size(A_left,2);% n =场景pix
A_large_temp = 0 (6*N,4* N);
Yuv = [1 0 0 1.1398346;...
1 0 -0.3946461 -0.5805942;...
1 0 2.0321119 0;...
0 1 0 1.1398346;...
0 1 -0.3946461 -0.5805942;...
0 1 2.0321119 0];
I = 1:6
J = 1:4
如果I <= 3
A_large_temp((张)* N + 1:我* N, (j - 1) * N + 1: j * N) = YUV (i, j) * A_left;
其他的
A_large_temp((张)* N + 1:我* N, (j - 1) * N + 1: j * N) = YUV (i, j) * A_right;
结束
结束
结束
A_large = gpuArray(稀疏(A_large_temp));
清晰的A_large_temp
1评论
神骑士
神骑士 2021年8月14日
这类错误当然不是故意的行为,而是NVIDIA库在运行过程中内存不足或长时间运行的内核被操作系统中断时的偶然结果。在这种情况下,在GPU上创建稀疏数组涉及到一些工作,在CSC和CSR表示之间进行转换,本质上是转置,当然可以想象,您的卡要么没有足够的资源,要么被图形命令中断。
要排除故障,首先要确保您没有使用卡来驱动显示器。然后 这些指令禁用内核超时 (假设你使用的是Windows)。然后,如果问题仍然发生,减少问题的规模,直到它开始工作。如果问题只发生在一定矩阵大小之后,则与内存不足有关。

登录评论。

答案(0)

下载188bet金宝搏


释放

R2021a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!