在Matlab中使用GPU,要先输入gpuDevice命令初始化一下设备。
根据返回的信息能够大概估算出显存支持的最大数据。
否则使用时容易出现下面这样的问题:
错误使用 gpuArray An unexpected error occurred during CUDA execution. The CUDA error was: unknown error
如果出现这个问题,只能调小数组重启Matlab或者换个更好的显卡。
下面是一段测试代码:
clear all; close all; clc; %gpuDevice tic A = rand(4000); B1 = A*A; toc tic A = rand(4000); A = gpuArray(A); B2 = A*A; toc B3 = gather(B2); %收集进内存,这一步比较耗时
加速对比:
运算能够提供较好的加速,不过将结果收回内存比较耗时。
比较好的实践和通用GPU编程类似:减少显存内存交换次数,让数据更长时间在显存中处理。