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

摘要:
1 MATLAB原文:如果您要使用的所有函数都支持GPU,您可以使用gpuArray将输入数据传输到GPU,也可以调用collect命令回收GPU的数据。3通过gpuDevice编号选择GPU处理器进行数值计算。

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  常用的还有这些

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

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

免责声明:文章转载自《Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-利用GPU并行执行MATLAB程序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mac终端命令大全介绍谈谈我对sku的理解(2)----数据库设计下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

matlab从fig文件中提取数据

如果你的fig文件中图像是由多条曲线绘制而成,比如说plot命令生成的,通过以下方式输出横坐标,纵坐标的取值 open('figname.fig'); lh = findall(gca, 'type', 'line');% 如果图中有多条曲线,lh为一个数组 xc = get(lh, 'xdata');            % 取出x轴数据,xc是一个元...

matlab调教日记 --- debug篇

节运行 在进行matlab测试的时候,要尽量采用节运行的功能,避免其他代码对调试部分代码进行的干扰。 节运行方式如下图,在注释中加入%%既可以进行分节 点击matlab 编辑器工具栏中的运行节 即可仅运行该节。 若不喜欢该方法,也可以使用将其他代码全部注释,或者使用matlab新推出的交互脚本方式进行调试,但交互脚本方式似乎运行速度较为缓慢,适合小型...

(专题四)06 matlab绘图选项卡

绘图选项卡 例子1--选择已有变量,绘制图形    都是按照选中的先后顺序依次确定坐标,  如果要修改绘制图形 法一,利用绘图工具和停靠图形按钮 法二,命令行窗口中输入命令 >>plottools 绘图工具的组成 新子图面板 若要将图形绘制成二行两列的两个用于绘制二维图形的子图 点击二位子图选项中的创建子图按钮 单击第一行第二列的方格...

matlab绘图

MatLab绘图 作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面方便又高效。 一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。 如果一个命令行很长...

matlab读取csv文件数据并绘图

circle.m(画二维圆的函数) %该函数是画二维圆圈,输入圆心坐标和半径%rectangle()函数参数‘linewidth’修饰曲线的宽度%'edgecolor','r',edgecolor表示边框颜色,r表示颜色参数%'facecolor','b',facecolor表示内部填充颜色,b表示颜色参数function [] = circle( x,y...

非线性方程(组):MATLAB内置函数 solve, vpasolve, fsolve, fzero, roots [MATLAB]

MATLAB函数 solve, vpasolve, fsolve, fzero, roots 功能和信息概览 求解函数 多项式型 非多项式型 一维 高维 符号 数值 算法 solve 支持,得到全部符号解 若可符号解则得到根 支持 支持 支持 当无符号解时  符号解方法:利用等式性质得到标准可解函数的方法 基本即模拟人工运算 vpasolv...