分享

在MATLAB中启用GPU加速会有多快?

 基算仿真 2023-05-30 发布于江苏

我们在使用Matlab进行一些数据量巨大或者复杂的计算时,即便使用cpu进行多线程并行计算,有时候速度仍然不尽人意,在这种时候我们可以尝试使用GPU进行加速计算,会有令人意想不到的效果。

首先Matlab的GPU加速目前仅支持NVDIA(英伟达)的显卡,如果不确定自己的显卡型号,可以在Matlab的命令行中键入:

gpuDevice()

如下图所示即可查看显卡型号

接下来我们通过一个简单的案例对比cpu和gpu运算的速度。

案例为创建一个5000x5000的随机矩阵,并求出该矩阵的特征向量及特征值

首先是通过cpu正常求解,代码如下

clcclearclose allA=rand(5000,5000);%创建随机矩阵tic[v1,d1]=eig(A);%求解特征向量v1,特征值d1toc

运行后我们看到计算时间为:52.99s

接下来使用GPU加速进行计算,其原理就是将数据从CPU中转移到GPU中,代码如下:

clcclearclose allB=rand(5000,5000);%创建随机矩阵B=single(B);%将矩阵转换为单精度(gpu更擅长计算单精度数据)B=gpuArray(B);%将数据由cpu转移至gputic[v2,d2]=eig(B);%求解特征向量v2,特征值d2toc

运行计算后我们可以看到计算时间仅为:11.34s

通过上述简单案例可以发现在计算数据量庞大的问题时,使用GPU加速可以获得成倍的速度提升,大家不妨一试。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多