问题描述
我写了一个算法来解决一组 PDE。在while循环中间有一些很长的方程,我尝试通过GPU计算这些方程以加快速度,然后进一步使用这些方程的结果。它运行成功,但是,gather()
函数几乎占用了总时间的 1/5(3000 秒)。我尝试在命令窗口中使用 [dk1,dk2,dk3,dk4,dk5,dk6,dk7,dk8,dk9] = dkfunction(S,T)
,它只花费 0.001 秒。
我很困惑为什么这段代码在大循环中表现不佳?我想知道是否有一种方法可以加速 gather()
函数,或者替代函数?顺便问一下,mex 文件中数组的大小应该是固定的还是不固定的?
(注意:我的代码很长,所以我附上了我的问题的分析器和核心部分(简化)。dkfunction
与 cuda 相关。
while t<n
%Omitted code for S and T calculation.
%%%
[dk1,T);
[dkvTdT,dkvTdS,dkvhdT,dkvhdS,dphaivdT,dphaivdS,dkhdS,dkdS,dphaidS] = gather(dk1,dk9);
%%%
%Omitted code to use dkvTdt..... to calculate other variables and t steps.
%%%
end
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)