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程序相关推荐

  1. Matlab的Gpu加速(CUDA cudnn)

    多CUDA版本的切换,及Matlab版本对应的CUDA版本 学习笔记–Matlab的Gpu加速 安装CUDA和cudnn时,踩了不少坑,总结如下几个经验: 1.显卡驱动的版本与CUDA是一对多的关系, ...

  2. Matlab之GPU加速方法

    Matlab之GPU加速方法 Matlab之GPU加速方法 一般代码加速方法 GPU设备确认 GPU和CPU之间数据传递 复杂代码加速方法 一般代码加速方法 Matlab目前只支持Nvidia的显卡. ...

  3. CUDA和cuDNN到底是啥关系?(cuDNN是基于CUDA的深度学习GPU加速库)

    1.什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台. CUDA是一种由NVIDIA推出的通用并行计算架构,该架构 ...

  4. Matlab 使用GPU加速 转载

    在matlab中使用GPU加速,来加速矩阵运算. 首先如前面所说,并不是所有GPU都能在maltab中进行加速的,貌似只有NVDIA的显卡可以吧. 硬件:GeForce GTX 980 软件:Matl ...

  5. matlab如何使用cu文件,Matlab编译cuda的.cu文件

    matlab函数,大体首先是用nvcc命令生成.o文件,然后用mex链接对应库文件,生成动态链接库(.mexw64等). 测试环境: 1) Windows x64 + matlab + cuda 5. ...

  6. matlab win10 gpu加速,win10的Edge浏览器设置GPU硬件加速,大幅度提升浏览器性能

    不知道大家对于GPU硬件加速是否有了解,这是现在的浏览器必备的功能,开启后能大幅度提升浏览器的性能,给我们更加顺滑的浏览体验.GPU硬件加速能够利用GPU的图形性能,加速渲染网页中的图像信息. 如果我 ...

  7. matlab求递归问题,matlab利用递归求解差分方程

    导航:网站首页 > matlab利用递归求解差分方程 时间:2018-5-23 matlab利用递归求解差分方程 function y = recur(a,b,n,x,x0,y0); % % y ...

  8. 利用图像内插法放大缩小图像 Matlab

    原文:https://blog.csdn.net/Goldfish442/article/details/61933735 利用图像内插法放大缩小图像 Matlab 内插是利用已知数据来估计未知位置的 ...

  9. matlab 生成plc程序,利用MATLABsimulink的自动代码生成工具开发PLC程序..docx

    利用MATLABsimulink的自动代码生成工具开发PLC程序. 利用MATLAB/simulink的自动代码生成工具开发PLC程序MATLAB之控制系统 2010-07-07 15:17:43 阅 ...

最新文章

  1. 【IDAX投研中心】BCH诞生一周年 “青出于蓝而胜于蓝”吗?
  2. iOS.访问通讯录.02.写入联系人
  3. css不常用重要属性
  4. 每日一笑 | 为什么椅子总是最乱的?
  5. java递归遍历删除文件
  6. 医疗大数据为何发展如此缓慢
  7. 让 ASP.NET AJAX 支持浏览器的 History Navigation - Part 1
  8. HTML学习---HTML状态码
  9. python保存文件后缀_python文件的后缀名是什么
  10. 微信小程序 - 列表并列多排显示
  11. 中观到底有没有立宗?
  12. linux强制安装deb,ubuntu强行修改deb安装包依赖
  13. 论文笔记:Improving Conversational Recommender Systems via Knowledge Graph based Semantic Fusion(KDD2020)
  14. linux sh文件执行情况,Linux下SH执行
  15. 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...
  16. 深信服终端检测响应平台EDR-远程命令执行漏洞
  17. 高德地图使用心得,百度地图使用心得
  18. leetcode 分治 beautiful array
  19. 大数据之hive(数据仓库工具)的分组和分区操作
  20. cocos2d-x动画加速与减速

热门文章

  1. [论文研读] 2021A01 知识图谱在小米的应用与探索
  2. 3GPP机密性和完整性算法规范128-EEA3和128-EIA3(四)----测试用例
  3. whistle苹果手机安装证书步骤:
  4. Java三大技术平台是什么?
  5. php200字日记,日记200字大全
  6. 《老女人日记》之——我爱狐狸精
  7. 地物连线lisp程序_AutoLISP在地形图绘制中的应用
  8. havana版openstack(controller节点+network节点+compute节点)安装 CentOS6.5
  9. E001 如何把文字内容写入Excel表格
  10. 医院计算机网络系统作用,计算机网络系统在医院管理中的应用