Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何提高MATLAB中gather()函数的速度,或者这是将数据从gpuArray传输到通用阵列的另一种方法?_Function_Matlab_Gather - Fatal编程技术网

Function 如何提高MATLAB中gather()函数的速度,或者这是将数据从gpuArray传输到通用阵列的另一种方法?

Function 如何提高MATLAB中gather()函数的速度,或者这是将数据从gpuArray传输到通用阵列的另一种方法?,function,matlab,gather,Function,Matlab,Gather,我写了一个算法来解一组偏微分方程。在环的中间有一些很长的方程,我试图用GPU来计算这些方程以加快速度,然后进一步利用这些方程的结果。它运行成功,但是,gather()函数几乎占用了总时间的1/5(3000秒)。我试着在命令窗口中使用[dk1,dk2,dk3,dk4,dk5,dk6,dk7,dk8,dk9]=dkfunction(S,T),只需要0.001s 我不明白为什么这个代码在一个大循环中执行得很差?我想知道是否有一种方法可以加速gather()函数或其他函数?顺便问一下,mex文件中数组的

我写了一个算法来解一组偏微分方程。在环的中间有一些很长的方程,我试图用GPU来计算这些方程以加快速度,然后进一步利用这些方程的结果。它运行成功,但是,
gather()
函数几乎占用了总时间的1/5(3000秒)。我试着在命令窗口中使用
[dk1,dk2,dk3,dk4,dk5,dk6,dk7,dk8,dk9]=dkfunction(S,T)
,只需要0.001s

我不明白为什么这个代码在一个大循环中执行得很差?我想知道是否有一种方法可以加速
gather()
函数或其他函数?顺便问一下,mex文件中数组的大小是否应该是常量

(注意:我的代码很长,所以我附加了我问题的分析器和核心部分(简化)。
dkfunction
与cuda相关)

以下代码操作时间的探查器:


while t<n  

   %Omitted code for S and T calculation.
   %%%
[dk1,dk2,dk3,dk4,dk5,dk6,dk7,dk8,dk9] = dkfunction(S,T); 

[dkvTdT,dkvTdS,dkvhdT,dkvhdS,dphaivdT,dphaivdS,dkhdS,dkdS,dphaidS] = gather(dk1,dk2,dk3,dk4,dk5,dk6,dk7,dk8,dk9);
   %%%
   %Omitted code to use dkvTdt..... to calculate other variables and t steps.
   %%%

end