如何在MATLAB上用GPU加速计算 您所在的位置:网站首页 怎么用gpu跑程序工具 如何在MATLAB上用GPU加速计算

如何在MATLAB上用GPU加速计算

2024-06-18 08:26| 来源: 网络整理| 查看: 265

(1)首先,GPU设备确认,Matlab目前只支持Nvidia的显卡。想知道自己的电脑有没有这个能力,在Matlab中运行 gpuDevice。 只要数据格式是gpuArray格式的,那么计算过程会自动的调用GPU进行计算。

(2)GPU和CPU之间数据传递 ①将CPU内存数据传到GPU内存中:gpuArray 1)在使用GPU计算的时候,只需要将CPU的数据复制到GPU中即可,可以对数据的名称做了修改,也可以直接进行重新赋值。 例如:G = gpuArray(M);或,M = gpuArray(M); 注意:有时候GPU受限于硬件架构,单精度的计算远快于双精度。这时候可以考虑在拷贝的时候顺便转换一下精度,例如:A = gpuArray(single(B)); 2)也可以直接在GPU上设置数据。 例如:A = zeros(10, ‘gpuArray’); 或像随机序列的产生:r = gpuArray.rand(1, 100) % 一行,一百列 运行class函数:class®;得到ans = gpuArray。可见这是一个在gpu上的数组。

在GPU可以正常运行基本的运算,与正常矩阵计算方法相同。具体的可以运行的运算可以使用命令。可以通过“methods(gpuArray)”进行查看,Matlab可以在GPU运行的具体运算可以查看附录,附录中是Matlab给出的结果。

②GPU数据回传 B = gather (A); 直接使用上边的命令就能够将GPU中的数据回传给CPU。

(3)使用技巧 如果没有并行计算不建议使用GPU。单个线程运行程序还是建议在CPU上运行,CPU的主频还是高一点,GPU主要是支持多个线程同时运行。 例如:index = 0; index = gpuArray(index); for i = 1 : 10000 tic for j = 1 : 100000 index = index + 1; end toc end disp(index) 通过上边程序第二行程序就可以在GPU上运行,注释掉就会在CPU上运行。

参考借鉴的网上同人说明,感谢指教,无商用,若侵权可删。 参考链接: https://blog.csdn.net/qq_35451572/article/details/79579831 https://blog.csdn.net/C_chuxin/article/details/83027485 https://www.cnblogs.com/yymn/p/8698287.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有