返回信息流有大佬知道如何对or、if等语句进行CUDA加速运算吗?
还是说属于逻辑运算范畴,CUDA不支持这类的循环语句?
例如下面这段代码:
for m = 1:500000
s=0;
for k=1:m/2
if rem(m,k)== 0
s=s+k;
end
end
if m==s
disp(m);
end
end
这段代码该怎么改才能使用CUDA的GPU进行加速计算呢?
我先是用gpuArray对每一个变量直接将数据从内存中搬到GPU的显存中
然后输出的时候再用gather搬回来输出,但是发现计算速度变得奇慢无比,个人推测是for和if语句的执行仍是由cpu执行的,而gpuArray和gather的加入使得cpu的负担更大了
不知道对不对,也不知道代码该怎么写才能对for、if等语句进行加速运算
萌新在此向各位大佬求教啊
这是一条镜像帖。来源:北邮人论坛 / matlab / #13068同步于 2020/3/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
【Matlab并行运算】如何使用matlab对for、if等语句进行CUDA加速
Looong
2020/3/23镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
for 改成parfor?
【 在 Looong 的大作中提到: 】
: 有大佬知道如何对or、if等语句进行CUDA加速运算吗?
: 还是说属于逻辑运算范畴,CUDA不支持这类的循环语句?
: 例如下面这段代码:
: ...................