1  MATLAB原文:

  如果所有你想使用的函数支持GPU,你能够使用gpuArray把输入的数据传输到GPU,也能够唤起gather命令把传输值GPU的数据回收。

2  通过gpuDevice命令观察当前电脑的GPU设备

>> gpuDevice
ans =
CUDADevice (具有属性): Name: 'GeForce GT 430' % GPU设备的型号
Index: 1  % 当前GPU设备的编号
ComputeCapability: '2.1' % 计算能力
SupportsDouble: 1  %知否支持双精度运算
DriverVersion: 8  % Cude驱动版本
ToolkitVersion: 7.5000  % 工具版本
MaxThreadsPerBlock: 1024  % 每个Block的最大线程数目
MaxShmemPerBlock: 49152  % 每个Block可用的最大shared内容
MaxThreadBlockSize: [1024 1024 64]  %单个Block支持x,y,z三个方向的最大值
MaxGridSize: [65535 65535 65535]  %最大的grid大小
SIMDWidth: 32  %Warp大小
TotalMemory: 1.0737e+09  %GPU设备全部内存大小
AvailableMemory: 799592448  %GPU设备可分配内存大小
MultiprocessorCount: 2  %GPU设备处理器个数(同CPU处理器个数相同,这是双核GPU)
ClockRateKHz: 1500000  % 时钟频率多少赫兹
ComputeMode: 'Default'  %计算模式
GPUOverlapsTransfers: 1  
KernelExecutionTimeout: 1
CanMapHostMemory: 1
DeviceSupported: 1  %本机MATLAB支持的GPU设备个数
DeviceSelected: 1  %当前选择GPU设备编号。

3  通过gpuDevice(index)编号选择第几个GPU处理器进行数值运算。

4  创建GPU数值阵列(最简单的一种复制和提取应用)

  通过gpuArray函数完成,通过gather函数回收运算或复制的GPU数据:

x = rand(3,3);
B = gpuArray(x);
whos B
% whos B % 返回GPU赋值后的对象
% Name Size Bytes Class Attributes
%
% B 3x3 4 gpuArray X1 = gather(B); % 把GPU中的值在收回来,赋值一个变量
x - X1;
% x - X1 % 结果为0,表示过程正确
% ans =
% 0 0 0
% 0 0 0
% 0 0 0

5  对应的创建GPU数值阵列有一些其他的GPU函数,与常用的MATLAB函数一样,只不过加上gpuArray字符说明,就可以转换成GPU数值阵列。常用的这些函数有两种方式,而且可以函数名来作为定放的位置,分别如下:

eye(___,'gpuArray')	rand(___,'gpuArray')
false(___,'gpuArray') randi(___,'gpuArray')
Inf(___,'gpuArray') randn(___,'gpuArray')
NaN(___,'gpuArray') gpuArray.colon(值)
ones(___,'gpuArray') gpuArray.freqspace(值)
true(___,'gpuArray') gpuArray.linspace(值)
zeros(___,'gpuArray') gpuArray.logspace(值)
gpuArray.speye(值)

6  其他的创建GPU数值阵列的函数可以用帮助的方式取查看

  help gpuArray.methodname(methodname就是想要查看的函数)

7  还有操作GPU数据的函数常用的有:

classUnderlying(___,'gpuArray')     gupArray.classUnderlying(值) % gpu数值阵列数据元素类型
isreal(___,'gpuArray') gupArray.isreal(值) % 判断gpu数值阵列数据元素是否为实数
length(___,'gpuArray') gupArray.length(值) %gpu数值阵列最后一维的数据长度
ndims(___,'gpuArray') gupArray.ndims(值) %gpu数值阵列的尾数
size(___,'gpuArray') gupArray.size(值) %gpu数值阵列各维大小

8  常用的还有这些

9  其实GPU变得很简单,就是赋值计算,取回。

Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-利用GPU并行执行MATLAB程序的更多相关文章

  1. Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-1

    1 更高级的算法牵扯到更多重的循环和复杂的计算,尤其是现在人工智能的算法尤其如此.有些历史知识的人能够了解到,人工智能的很多基本算法其实近百年之前就有了,但是当时的计算机技术达不到去实现这些算法的要求 ...

  2. Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-2

    1 MATLAB并行计算-从个人桌面到远程集群和云(陈伟/魏奋)视频摘录笔记 https://cn.mathworks.com/videos/parallel-computing-with-matla ...

  3. Matlab高级教程_第二篇:Matlab相见恨晚的模块_01_定时器

    MATLAB的定时器功能(timer函数): 1 从MATLAB6.5版本开始,MATLAB开始支持定时器.相对于传统的pause函数来说,定时器要强大的多,不仅可以等效实现pause的功能,还可以显 ...

  4. Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-关于parfor的问题

    1 我们知道MATLAB支持并行运行一般有四种模式: 第一种模式:本机调用多核CPU性能并行运算 第二种模式:本机调用GPU性能并行运算 第三种模式:多计算机组成集群,调用集群CPU性能并行运算 第四 ...

  5. Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_全局变量的妙用_遍历穿透

    1 比如我这边写了一个函数,这个函数中有一个变量作为参数,给定这个参数一个值,然后这个函数返回给我一个值.但是,我写这函数的时候,这个传参我不写到函数里面.可以通过全局变量的方式进行在外部穿透遍历. ...

  6. Matlab高级教程_第二篇:关于MATLAB转C#过程中遇到输出两组参数的问题

    1. 在matlab的m函数很可能遇到原函数[a,b] = func(a); 这样的两个输出参数. 2. 在观察C#生成后定义中我们发现: public MWArray HP(); public MW ...

  7. Matlab高级教程_第二篇:MATLAB和C#一些常用的矩阵运算方法的转换

    1.相关方法已经生产引用,直接调用的结果如下: 2. 相关调用代码如下: using System; using System.Collections.Generic; using System.Li ...

  8. Matlab高级教程_第二篇:MATLAB和C#对应数据类型的讲解(多讲一点儿C#的矩阵运算)

    1. MATLAB对应C#的数据类型主要在引入的父类库MWArray当中.有如下对应规则 .NET TYPE MWArrayTYPE MATLAB Type System.Double MWNumer ...

  9. Matlab高级教程_第二篇:关于MATLAB转C#过程中MWArray到C#数组,C#数组到MWArray相互转换

    Matlab传递数据时使用的方法,那么Matlab计算完成后在C#中应该怎么获取它的计算数据呢? 需要遵循两个基本步骤: 弄清楚Matlab函数传回的数据到底是什么格式?struct?cell?cha ...

随机推荐

  1. VS.NET中的常用控件和类型的命名规范

    表1  命名规范 VS名称 简写 VS名称 简写 数据类型 Array arr Boolean bln Byte byt Char Chr Date Time dtm Decimal dtm Doub ...

  2. DES与MD5加密

    using System; using System.Data; using System.Configuration; using System.Web; using System.Security ...

  3. SAP HANA学习笔记

    SAP HANA:High-Performance Analytic ApplianceSAP HANA XSC:Extended Application Services Classic(SAP推出 ...

  4. 项目进度02-Day3

    ①今天做了什么? 数据库数据的重置.之前的用户类字段的补充.简单的平台信息查询 ②明天要做什么?   分类浏览和综合查询功能. ③遇到了什么问题? 出现问题:Parameter index out o ...

  5. POJ 1149:PIGS 网络流经典题

    PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18345   Accepted: 8354 Description ...

  6. MySQL 插入 中文数据乱码解决

    问题描述: 1.在命令行中进行插入,没有问题.但是显示存在部分乱码 2.在JDBC中插入成功.中文是直接以“??”形式显示. 通过Navicat客户端查看 与在网页中看到的一一致,说明读取没有问题,问 ...

  7. Python Scrapy的QQ音乐爬虫 音乐下载、爬取歌曲信息、歌词、精彩评论

    QQ音乐爬虫(with scrapy)/QQ Music Spider UPDATE 2019.12.23 已实现对QQ音乐文件的下载,出于版权考虑,不对此部分代码进行公开.此项目仅作为学习交流使用, ...

  8. nodejs(14)express获取url中的参数

    问号传参获取参数 获取 http://127.0.0.1:3001/user?id=10&name=zs 中的查询参数: 直接使用 req.query 获取参数即可: 注意:URL 地址栏中通 ...

  9. ES6 之 对象的扩展

    1.Object.is() 判断俩个值是否相等 +0 不等于 -0 NaN 等于自身 console.log(Object.is('foo','foo')); // true console.log( ...

  10. Linux 文件上传

    Linux 文件上传操作 SecureCRT与linux互相上传和下载文件 1. 需要上传或者下载,需要使用rz和sz命令. 2. 如果linux上没有这两个命令工具,则需要先安装.可以使用yum安装 ...