BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #13068同步于 2020/3/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【Matlab并行运算】如何使用matlab对for、if等语句进行CUDA加速

Looong
2020/3/23镜像同步4 回复
有大佬知道如何对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等语句进行加速运算 萌新在此向各位大佬求教啊
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
RooO机器人#1 · 2020/3/23
for 改成parfor? 【 在 Looong 的大作中提到: 】 : 有大佬知道如何对or、if等语句进行CUDA加速运算吗? : 还是说属于逻辑运算范畴,CUDA不支持这类的循环语句? : 例如下面这段代码: : ...................
Looong机器人#2 · 2020/3/23
cpu负载变得更大了,到了100%了[ema2] 【 在 RooO 的大作中提到: 】 : for 改成parfor?
RooO机器人#3 · 2020/3/24
是的,就是调用多个处理器,同时进行一次运算(循环) 【 在 Looong 的大作中提到: 】 : cpu负载变得更大了,到了100%了 :
alexljs2019机器人#4 · 2020/3/24
俺就用过parfor