利用cuda加速matlab,使用CUDA加速MATLAB程序
MATLAB十分擅长矩阵计算,如能借助CUDA工具箱调用NVIDIA GPU加速并行运算,能起到如虎添翼的效果。
最简单的调用方法是使用gpuArray()函数数据放到GPU上运算,再用gather()函数将结果取回(前提是运算支持gpuArray类型的变量,目前尝试过的矩阵乘法、求逆、pdist、pdist2函数均支持,可惜进行二次规划的quadprog并不支持。)。
不过,我最初在windows版MATLAB下调用gather()函数经常报错,然后便无法再MATLAB中调用GPU,使用reset(gpuDevice(1)))也还是报错。百度一番之后发现原来是windows系统的显卡超时检测和恢复(TDR)功能惹的祸。关闭TDR的方法是在HKLM\System\CurrentControlSet\Control\GraphicsDrivers下创建Dword值TdrLevel,并赋值为0(https://answers.microsoft.com/zh-hans/windows/forum/windows_7-hardware/win7%E4%B8%AD%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE/69384e71-5075-4afe-a437-372425c0a3bb?auth=1)
用常用的pdist2函数进行测试:
gpuDevice(1)
A=rand(10000,10000);
B=rand(8000,10000);
tic; C = (pdist2((A),(B))); toc
tic; D = gather(pdist2(gpuArray(A),gpuArray(B))); toc;
结果:
ans =
CUDADevice - 属性:
Name: 'GeForce GTX 1050'
Index: 1
ComputeCapability: '6.1'
SupportsDouble: 1
DriverVersion: 9.1000
ToolkitVersion: 8
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize: [1024 1024 64]
MaxGridSize: [2.1475e+09 65535 65535]
SIMDWidth: 32
TotalMemory: 4.2950e+09
AvailableMemory: 3.4824e+09
MultiprocessorCount: 5
ClockRateKHz: 1493000
ComputeMode: 'Default'
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 0
CanMapHostMemory: 1
DeviceSupported: 1
DeviceSelected: 1
时间已过 161.138259 秒。
时间已过 41.843864 秒。可见GPU执行pdist2这种高度并行化的运算效率高出不少。
利用cuda加速matlab,使用CUDA加速MATLAB程序相关推荐
- Matlab的Gpu加速(CUDA cudnn)
多CUDA版本的切换,及Matlab版本对应的CUDA版本 学习笔记–Matlab的Gpu加速 安装CUDA和cudnn时,踩了不少坑,总结如下几个经验: 1.显卡驱动的版本与CUDA是一对多的关系, ...
- Matlab之GPU加速方法
Matlab之GPU加速方法 Matlab之GPU加速方法 一般代码加速方法 GPU设备确认 GPU和CPU之间数据传递 复杂代码加速方法 一般代码加速方法 Matlab目前只支持Nvidia的显卡. ...
- CUDA和cuDNN到底是啥关系?(cuDNN是基于CUDA的深度学习GPU加速库)
1.什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台. CUDA是一种由NVIDIA推出的通用并行计算架构,该架构 ...
- Matlab 使用GPU加速 转载
在matlab中使用GPU加速,来加速矩阵运算. 首先如前面所说,并不是所有GPU都能在maltab中进行加速的,貌似只有NVDIA的显卡可以吧. 硬件:GeForce GTX 980 软件:Matl ...
- matlab如何使用cu文件,Matlab编译cuda的.cu文件
matlab函数,大体首先是用nvcc命令生成.o文件,然后用mex链接对应库文件,生成动态链接库(.mexw64等). 测试环境: 1) Windows x64 + matlab + cuda 5. ...
- matlab win10 gpu加速,win10的Edge浏览器设置GPU硬件加速,大幅度提升浏览器性能
不知道大家对于GPU硬件加速是否有了解,这是现在的浏览器必备的功能,开启后能大幅度提升浏览器的性能,给我们更加顺滑的浏览体验.GPU硬件加速能够利用GPU的图形性能,加速渲染网页中的图像信息. 如果我 ...
- matlab求递归问题,matlab利用递归求解差分方程
导航:网站首页 > matlab利用递归求解差分方程 时间:2018-5-23 matlab利用递归求解差分方程 function y = recur(a,b,n,x,x0,y0); % % y ...
- 利用图像内插法放大缩小图像 Matlab
原文:https://blog.csdn.net/Goldfish442/article/details/61933735 利用图像内插法放大缩小图像 Matlab 内插是利用已知数据来估计未知位置的 ...
- matlab 生成plc程序,利用MATLABsimulink的自动代码生成工具开发PLC程序..docx
利用MATLABsimulink的自动代码生成工具开发PLC程序. 利用MATLAB/simulink的自动代码生成工具开发PLC程序MATLAB之控制系统 2010-07-07 15:17:43 阅 ...
最新文章
- 【IDAX投研中心】BCH诞生一周年 “青出于蓝而胜于蓝”吗?
- iOS.访问通讯录.02.写入联系人
- css不常用重要属性
- 每日一笑 | 为什么椅子总是最乱的?
- java递归遍历删除文件
- 医疗大数据为何发展如此缓慢
- 让 ASP.NET AJAX 支持浏览器的 History Navigation - Part 1
- HTML学习---HTML状态码
- python保存文件后缀_python文件的后缀名是什么
- 微信小程序 - 列表并列多排显示
- 中观到底有没有立宗?
- linux强制安装deb,ubuntu强行修改deb安装包依赖
- 论文笔记:Improving Conversational Recommender Systems via Knowledge Graph based Semantic Fusion(KDD2020)
- linux sh文件执行情况,Linux下SH执行
- 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...
- 深信服终端检测响应平台EDR-远程命令执行漏洞
- 高德地图使用心得,百度地图使用心得
- leetcode 分治 beautiful array
- 大数据之hive(数据仓库工具)的分组和分区操作
- cocos2d-x动画加速与减速
热门文章
- [论文研读] 2021A01 知识图谱在小米的应用与探索
- 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(四)----测试用例
- whistle苹果手机安装证书步骤:
- Java三大技术平台是什么?
- php200字日记,日记200字大全
- 《老女人日记》之——我爱狐狸精
- 地物连线lisp程序_AutoLISP在地形图绘制中的应用
- havana版openstack(controller节点+network节点+compute节点)安装 CentOS6.5
- E001 如何把文字内容写入Excel表格
- 医院计算机网络系统作用,计算机网络系统在医院管理中的应用