Matlab 使用GPU加速 转载
在matlab中使用GPU加速,来加速矩阵运算。
首先如前面所说,并不是所有GPU都能在maltab中进行加速的,貌似只有NVDIA的显卡可以吧。
硬件:GeForce GTX 980
软件:Matlab 2015a (Matlab 2012以后的版本才带有GPU加速的工具箱)
下面开始介绍怎么玩GPU加速
第一步:在matlab命令窗口,运行gpuDevice,查看自己的显卡是否具备GPU加速功能
gpuDevice
正常情况下matlab会输出如下结果代表具备GPU加速功能:
CUDADevice with properties:Name: 'GeForce GTX 980'Index: 1ComputeCapability: '5.2'SupportsDouble: 1DriverVersion: 7.5000ToolkitVersion: 6.5000MaxThreadsPerBlock: 1024MaxShmemPerBlock: 49152MaxThreadBlockSize: [1024 1024 64]MaxGridSize: [2.1475e+09 65535 65535]SIMDWidth: 32TotalMemory: 4.2950e+09AvailableMemory: 3.3203e+09MultiprocessorCount: 16ClockRateKHz: 1380000ComputeMode: 'Default'GPUOverlapsTransfers: 1KernelExecutionTimeout: 1CanMapHostMemory: 1DeviceSupported: 1DeviceSelected: 1
第二步:CPU和GPU之间的数据交换,大致有如下几个函数和功能:
(1)、将数据从CPU中搬入GPU,函数:gpuArray,用法 M = gpuArray(M);
(2)、在GPU中计算完成后,将数据搬出到CPU存储,函数:gather,用法M=gather(M)。
下面给大家看看最简单的用法以及处理同样矩阵运算时的时间对比:
clear all clc M = rand(2000,2000); % 生成一个随机矩阵 tic [A1,B1] = eig(M); % 求该随机矩阵的特征值和特征向量 t1=toc tic M = gpuArray(M); % 将数据从CPU中搬到GPU [A2,B2] = eig(M); % 求特征值和特征向量 A2 = gather(A2); % 将数据从GPU中搬到CPU t2 = toc
输出结果(运行时间对比):
t1 = 14.1483
t2 = 9.1567
总结:虽然加速不是特别明显,不过还是非常给力的,需要说明的是,一般的GPU对于单精度型的数据运算加速更明显一点,因此我们在编写代码时,最好能够将数据从double型转换为single型,即M=single(M),然后在使用M=gpuArray(M),将数据搬迁到GPU进行计算,下面看看转换为单精度型后的时间对比:
clear all
clc
M = rand(2000,2000); % 生成一个随机矩阵
tic
[A1,B1] = eig(M); % 求该随机矩阵的特征值和特征向量
t1=toctic
M = single(M); % 将数据转换为单精度型
M = gpuArray(M); % 将数据从CPU中搬到GPU
[A2,B2] = eig(M); % 求特征值和特征向量
A2 = gather(A2); % 将数据从GPU中搬到CPU
t2 = toc
运行结果:
t1 = 14.8332
t2 = 5.0963
GPU对eig和svd进行加速,和cpu运行时间对比
clear all
A = rand(2000,2000);
tic
A1 = gpuArray(single(A));
[U,S,V] = svd(A1,'econ');
A2 = U*S*V';
A3 = gather(A2);
t = toc
tic
[U1,S1,V1] = svd(A,'econ');
A4 = U1*S1*V1';
t2 = tocerror = norm(A3-A4,'fro')tic
A1 = gpuArray(single(A));
[vv,dd] = eig(A1);
t3 = toc
结果:
t = 3.1564
t2 = 7.1644
error = 0.0032
t3 = 5.2244
t4 = 17.6389
是不是加速更明显了呢?
注:1、单精度型初始化矩阵函数例:X=rand(10,'single'); %定义在CPU上的一个10x10的随机初始化数组
2、直接在GPU中初始化矩阵例:GX=rand(10,'gpuArray'); %直接在GPU设备上随机初始化一个10x10的数组
3、判断数据DATA是否存在于GPU内存中例:TF=existOnGPU(DATA)
4、计算效率统计例:t=gputimeit(F,N) %返回执行F操作N次所需的时间,当N=1时可以缺省
转载于:https://www.cnblogs.com/phyzrx/p/7475201.html
Matlab 使用GPU加速 转载相关推荐
- Matlab之GPU加速方法
Matlab之GPU加速方法 Matlab之GPU加速方法 一般代码加速方法 GPU设备确认 GPU和CPU之间数据传递 复杂代码加速方法 一般代码加速方法 Matlab目前只支持Nvidia的显卡. ...
- Matlab的Gpu加速(CUDA cudnn)
多CUDA版本的切换,及Matlab版本对应的CUDA版本 学习笔记–Matlab的Gpu加速 安装CUDA和cudnn时,踩了不少坑,总结如下几个经验: 1.显卡驱动的版本与CUDA是一对多的关系, ...
- Matlab 应用GPU加速
由于GPU近几年地迅速发展,GPU在多线程计算等方面逐渐超越CPU成为计算的主力军.而Matlab是常用的数学应用软件,现在讲解一下如何在Matlab中使用GPU加速计算 文章目录 0. 必要条件 1 ...
- matlab win10 gpu加速,win10怎么开启gpu加速有用吗 GPU硬件加速设置方法介绍
win10怎么开启gpu加速有用吗 GPU硬件加速设置方法介绍 作为Windows 10的一项重要功能,微软在分享了GPU硬件加速细节后,现在还为大家送上了开启它的技巧,对于中低端设备来说,提升效果还 ...
- MATLAB使用GPU加速计算
先上结论 1.对于特征值运算eig()函数来说,GPU的加速效果是很明显的 2.如果要求精度不高,采用单精度计算,加速效果更加明显 首先查看自己的电脑是不是支持GPU计算 在matlab的终端中输入: ...
- matlab win10 gpu加速,win10的Edge浏览器设置GPU硬件加速,大幅度提升浏览器性能
不知道大家对于GPU硬件加速是否有了解,这是现在的浏览器必备的功能,开启后能大幅度提升浏览器的性能,给我们更加顺滑的浏览体验.GPU硬件加速能够利用GPU的图形性能,加速渲染网页中的图像信息. 如果我 ...
- matlab win10 gpu加速,大师讲解win10硬件加速gpu计划开启方法的详尽处理方式
要是你在用系统的时候遇到了win10硬件加速gpu计划开启方法的情况你会怎么办呢?我们通过调查发现不少用户都碰到了win10硬件加速gpu计划开启方法的问题,我们来看看怎么解决win10硬件加速gpu ...
- MATLAB上的GPU加速计算
概述 怎样在MATLAB上做GPU计算呢?主要分为三个步骤:数据的初始化.对GPU数据进行操作.把GPU上的数据回传给CPU 一.数据的初始化 首先要进行数据的初始化.有两种方法可以进行初始化:一是先 ...
- MATLAB上的GPU加速计算——学习笔记
MATLAB目前只支持Nvidia的显卡.如果你的显卡是AMD的或者是Intel的,就得考虑另寻它路了. MATLAB可谓工程计算中的神器,一方面它自带丰富的函数库,另一方面它所有的数据都是内建的矩阵 ...
最新文章
- Qt使用教程:使用Qt Quick UI表单(五)
- python中变量类型在程序中可以改变_python的可变与不可变数据类型
- 私有属性和方法-伪私有属性和方法
- Linux操作Oracle(8)——Oracle数据库迁移全纪录(1) — 表空间 用户 权限迁移
- C++冒泡排序(正宗版)
- Android第三十八天
- AttributeError: module ‘tensorflow‘ has no attribute ‘ConfigProto‘
- 【图像加密】图像加密解密含Matlab源码
- 大屏幕显示屏 html,在大屏幕上显示墙的三种解决方案
- 5-1 厘米换算英尺英寸 (15分)
- maskrcnn-benchmark安装过程
- WebStrom代码中出现浅黄色背景
- 如何检测本计算机耗电量,如何查看我的电脑到底费不费电?
- java中的toArray()
- LDO线性稳压电源PCB布局布线
- ArcGIS学习网站
- 23种设计模式常用模式
- windows系统C盘空间满了?两步让你多出来10个多G!
- Python网络爬虫实战案例之:7000本电子书下载(2)
- css美化下拉框select
热门文章
- 使用Java中的Try-With-Resource
- 随机森林分类器_建立您的第一个随机森林分类器
- C语言那点事——如何从零学好C语言?
- 迪信通机器人_迪信通要做机器人 玩票还是另有深意?
- python查看文档的软件_Python __doc__属性:查看文档
- 自然水体辐射特性与数值模拟 pdf_OpenGMS系列讲座(十三)汪亚平教授:南黄海水动力过程和辐射沙脊群演化...
- 软件测试面试选择判断提,软件测试面试常考判断题
- 【theano-windows】学习笔记九——softmax手写数字分类
- JAVA 框架-Spring-AOP面向切面
- POJ 1811 Prime Test (Rabin-Miller强伪素数测试 和Pollard-rho 因数分解)