如何使用CUDA加速MATLAB计算速度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用CUDA加速MATLAB计算速度?相关的知识,希望对你有一定的参考价值。

系统Win7旗舰64位 NVIDIA GT540M显卡 MATLAB为2010版

确认是否有CUDA驱动,如有的话可以直接使用
这是我的Matlab2013a的测试程序,确实快了。楼主可以先试试下面代码能否执行来判断当前电脑是否可以GPU加速,如不能再考虑CUDA驱动,不过应该可以的,我的GF 410M都没问题。祝楼主好运。

tic
A=rand(2^23,1);
B=fft(A);
toc
tic
A=gpuArray(rand(2^23,1));
B=fft(A);
toc
参考技术A 用GPU-Z看一下你的540M装了CODA驱动没有,一般都有,装了CUDA后可以利用GPU为CPU计算分担一部分,MATALAB如果支持CODA加速应该有CODA选项,像破解字典之类的EWEA我都搞过,就是必须装了CODA才能使用的,,结果还是没能把邻居家的路由密码破出来,于是自己花几百装了宽带,后来我自己尝用含有自己路由器密码的字典来破解自己路由器,居然也没破出来,无语了. 参考技术B MATLAB 2010B 有支持GPU的插进

给定加速度数据和相应的时间,如何在 MATLAB 中找到位置和速度?

【中文标题】给定加速度数据和相应的时间,如何在 MATLAB 中找到位置和速度?【英文标题】:Given acceleration data and the corresponding time, how can I find the position and velocity in MATLAB? 【发布时间】:2014-04-25 03:15:22 【问题描述】:

我在 Excel 电子表格中获得了这些数据。所以在导入之后我会先做velocity = cumtrapz(t,y)然后position = cumtrapz(velocity)

【问题讨论】:

听起来很合理。你试过了吗?您可能想要position=cumtrapz(t,velocity),但不是吗? 我试过了。这是我的教授分配的一个项目,只是觉得解决方案似乎太简单了,所以我会在这里检查以确保它是正确的。 【参考方案1】:

如果汽车在零距离处从零开始是正确的。否则,您还需要在那里获得初始速度。请注意,您在这里真正要做的是通过将v 标识为ds/dt 来求解方程a = f(t) = dv/dt 和进一步的a = d^2s/dt^2。你可以通过求解一个常微分方程组来做到这一点:

a = dv/dt
v = ds/dt

这可以通过几种方式完成。例如,欧拉前锋。

v'(t) = (v(t+h)-v(t))/h
<=> v(t+h) = hv'(t)+v(t)

给出导数的地方,这意味着a = a(t)。迭代使用初始条件v(0)进行初始化,必须给出。

当你知道v 然后你去s。再次使用欧拉正向作为,

s'(t) = (s(t+h)-s(t))/h
<=> s(t+h) = hs'(t)+s(t)

你必须知道初始条件s(0)。如果v(0) = s(0) = 0。 Euler forward 是一种 O(h) 算法,但知道逐步求解微分方程的技巧,进行变换s'(t) = v(t) 也可以做得更好。现在任何 runge-kutta 方法都可供您使用。您使用的方法 cumtrapz 实际上是 O(h^2) 方法。这比***中的自定义理论要多一些,但希望它会有所帮助。对于二阶边值问题,还有一种矩阵解法,称为有限差分法,但它稍微高级一些。如需进一步阅读,请从

开始

http://en.wikipedia.org/wiki/Numerical_methods_for_ordinary_differential_equations

【讨论】:

以上是关于如何使用CUDA加速MATLAB计算速度?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Matlab spaps 计算 3D 对象的加速度?

matlab中如何使用多GPU并行计算?

matlab中,如何加快数据运算速度?

如何让MATLAB充分利用计算机资源进行计算

如何使用CUDA并行化嵌套for循环以在2D数组上执行计算

MATLAB 并行计算工具箱 - 并行化与 GPU?