Matlab本就擅长矩阵计算,其借助CUDA工具箱调用Nvidia GPU加速并行运算,可以起到如虎添翼的效果。今天给大家介绍一下CUDA的基础知识以及如何快速在Matlab中调用工具箱对程序进行加速。

CUDA,Compute Unified Device Architecture 统一计算设备架构

CUDA编程模型是将CPU作为主机,GPU作为协处理器或者叫设备,一般情况下,CPU负责进行逻辑性强的事务处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。各自拥有相互独立的存储地址空间,也就是主机端的内存和设备端的显存。

操作显存需要调用CUDA API中的存储器管理函数,操作包括开辟、释放、初始化显存空间等,在主机端和设备端之间进行数据传输等。运行在GPU上的CUDA并行计算函数称为Kernel(内核函数),一个kernel函数并不是一个完整的程序,而是整个程序中的一个可以被并行执行的步骤,一个完整的CUDA程序是有一系列的设备端Kernel函数并行步骤和主机端的串行处理步骤共同完成。

Matlab目前仅支持Nvidia显卡,想知道自己的电脑有没有这个能力,在Matlab中运行 gpuDevice即可,这是在笔记本的Matlab2018b中运行的结果。可以看出显卡是“GeForce MX150”,其计算能力为6.1。计算能力的小数点前的第一位表示设备核心架构,小数点后的一位表示更加细微的进步,包括对核心架构的改进和功能的完善。

除了反映计算架构版本的计算能力,还有这些涉及到资源总量的参数也实实在在影响到GPU的计算性能。Kernel以线程网格(Grid)的形式组织,每个Grid由若干个线程块(block)组成,每个block由若干个线程(thread)组成。

Kernel以block为单位执行,Grid只是用来表示一系列可以被并行执行的block集合,而block间无法通信,没有执行顺序。本机中相关资源的数量介绍:

MaxThreadsPerBlock: 1024,每个block最大的线程数;

MaxShmemPerBlock: 49152,每个block可用的最大共享内存大小;

MaxThreadBlockSize: [1024 1024 64],三个维度各自最大的线程数量;

MaxGridSize: [2.1475e+09 65535 65535],三个维度各自最大的Grid数量;

TotalMemory: 2.1475e+09,AvailableMemory: 1.6579e+09,显存2G,实际可用1.6G。

在Matlab中最简单的调用方法是使用gpuArray()函数数据放到GPU上运算,再用gather()函数将结果取回。下面的简单示例说明工作区的变量a通过gpuArray函数被放到了GPU中,在GPU中完成了取绝对值的计算,并通过gather函数将结果取回。

你也可以直接在GPU中产生数据进行运算,例如上图中的变量e。这只是一个简单的示例,更多的内容还需要你根据自己的需求去应用。下图显示的是Matlab自带的并行计算工具箱。

对于一些复杂的无法用matlab内部函数进行GPU加速的代码,Matlab还提供了一个更强大的工具,就是调用.cu文件。matlab+c混合编程把.c,.cc,.cpp等文件编译为能够使用的mex文件。对于CUDA程序.cu,matlab也提供了一套方法来调用,最终编译成.ptx文件。需要了解的请自行搜索查找方法。

对在Matlab中进行GPU编程感兴趣的给我们“雷达通信电子战”微信公众号发送“190206”可获得相关参考资料进行深入学习。

  1. 加速Matlab程序的1001个“小技巧”

  2. FPGA/DSP/GPU,加速雷达信号处理

  3. 雷达信号处理实现,选择FPGA还是GPU?

  4. 《全场通用》服务说明

阅读原文,更多精彩等着你!

gpu处理信号_GPU中的并行运算,加速你的Matlab程序相关推荐

  1. matlab计算地转流程序,geostrophy 用于海洋科学中计算地球流的一系列matlab程序 联合开发网 - pudn.com...

    geostrophy 所属分类:matlab例程 开发工具:matlab 文件大小:14259KB 下载次数:76 上传日期:2016-03-25 08:36:07 上 传 者:楠楠 说明:  用于海 ...

  2. matlab dsp工具箱_GPU中的并行运算,加速你的Matlab程序

    Matlab本就擅长矩阵计算,其借助CUDA工具箱调用Nvidia GPU加速并行运算,可以起到如虎添翼的效果.今天给大家介绍一下CUDA的基础知识以及如何快速在Matlab中调用工具箱对程序进行加速 ...

  3. matlab中emd函数,EMD算法的matlab程序介绍解析

    <EMD算法的matlab程序介绍解析>由会员分享,可在线阅读,更多相关<EMD算法的matlab程序介绍解析(6页珍藏版)>请在人人文库网上搜索. 1.此版本为 ALAN 版 ...

  4. matlab中的灰色预测,灰色预测MATLAB程序

    <灰色预测MATLAB程序>由会员分享,可在线阅读,更多相关<灰色预测MATLAB程序(11页珍藏版)>请在人人文库网上搜索. 1.实用标准文档灰色预测彷设曲七叫L叫耳/叫励 ...

  5. gpu处理信号_GPU显卡不仅用来打游戏那么简单,它还可以用于通用加速计算

    如今,显卡不仅在工作站.个人PC中变得非常重要,而且在数据中心也处于举足轻重的地位.CPU负责通用计算.GPU负责加速计算已经成为绝大数数据中心一种常态.用于加速计算的GPU专用处理器,它将计算密集型 ...

  6. matlab中面板中如何显示不出来,用matlab程序运行空间面板过程中出现出现如下问题,要怎么解决呢?请各位大牛指点...

    程序: % dimensions of the problem A=xlsread('C:\Users\lenovo\Documents\MATLAB\Zandberg\cigarette.xls') ...

  7. RCLS算法MATLAB程序实现,(MATLAB辅助现代工程数字信号处理)第10章随机信号的高阶谱分析.ppt...

    第10章 随机信号的高阶谱分析 10.1 高阶累积量与高阶谱10.1.1 累积量 设X表示有限阶矩的随机变量,定义X的矩生成函数或特征参数为 定义序列{xk}的k阶累积量生成函数为 因此,随机变量的联 ...

  8. 数据流技术在GPU和大数据处理中的应用

    点击上方蓝字关注我们 数据流技术在GPU和大数据处理中的应用 苏华友, 梅松竹, 李荣春, 窦勇 国防科技大学计算机学院,湖南 长沙 410073 论文引用格式: 苏华友, 梅松竹, 李荣春, 窦勇. ...

  9. Chrome中的硬件加速合成

    概述   本文主要讲述了硬件加速合成在chrome中的实现细节以及使用背景. 引言    以前的浏览器都使用CPU来渲染整个网页的内容. 随着硬件加速的发展,一些小型设备也具备硬件加速的能力,同时视频 ...

最新文章

  1. 简谈 Java 中的泛型通配符
  2. R语言使用table函数计算单分类变量的频率表(frequency table)、使用prop.table函数将table函数计算获得的频率表转化为比率表、返回单分类变量每一个类别的比率、或者百分比
  3. 开源DDos 机器学习思路求解的一些源码——TODO 待分析
  4. 关于STM32使用RTC时复位后程序死在 RTC
  5. 0经验跨行,我怎么拿到谷歌offer的?
  6. 洛谷 P2324 [SCOI2005]骑士精神 解题报告
  7. 图解ArcGIS API for JavaScript开发环境搭建
  8. 计算机视觉那些事儿(1):基本任务
  9. linux下用脚本语言开发自动重启程序
  10. 代价函数详解(合页代价与softmax代价)
  11. c执行cmd pdf2swf_PDF在线翻阅开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)【转】
  12. html居中代码怎么写?
  13. 打开dbf时自动打开fxp_打开游戏时提示缺少必要组件打不开怎么办?
  14. 日历 设置云端邮件服务器,ios设置MDaemon activesync同步邮件、联系人、日历
  15. 阿里云域名实名认证操作图文详情 新人必看教程
  16. php截断,php include 路径截断漏洞的利用
  17. 情侣生日纪念日倒数提醒的便签
  18. c语言负数与正数判断大小,c语言编程,输入一些整数,判断其中正数与负数的个数,并分别求出正数与负数的平均值...
  19. Deep C (and C++) by Olve Maudal and Jon Jagger— 很不错的国外技术文章
  20. 如何下载安装jenkins

热门文章

  1. 文献学习(part9)--基于模型分解的小样本学习
  2. Django(part28)--F对象
  3. 20应用统计考研复试要点(part17)--概率论与数理统计
  4. 小白的算法初识课堂(part4)--快速排序
  5. SAP Spartacus 的 git flow 和发布流程
  6. SAP Spartacus 服务器端 nodejs 应用里渲染 Angular Component 的一个例子
  7. Angular Component代码和编译后生成的JavaScript代码
  8. SAP技术专家Jerry的技术分享微信群 - 2021年1月14日更新 - 还剩27个名额
  9. rxjs里mapTo operators的用法
  10. Angular里的购物车页面实现