MATLAB GPU编程基础

原文地址:http://blog.sina.com.cn/s/blog_863f5cf90102uyrh.html

Matlab2013版本开始,matlab将可以直接调用gpu进行并行计算,而不再需要安装GPUmat库。这一改动的好处是原有的matlab内置函数都可以直接运用,只要数据格式是gpuArray格式的,那么计算过程会自动的调用GPU进行计算,不可谓不方便。

具体操作起来,只要知道下面几个函数就可以像编写简单的m文件一样,进行matlab的GPU编程:

1.GPU设备确认函数

1n=gpuDeviceCount  %返回设备上的GPU数目

2)gpuDevice         %选择GPU设备

   D=gpuDeviceor gpuDevice(): 如果当前还未设置选择的GPU,则选择默认的GPU,D是返回对象;如果已经设    置了GPU,则返回设置的GPU对象。

   D=gpuDevice(IDX):表示选择IDX对应的GPU设置,D是返回对象

   %PS: 目前的GPU设置一般至少包含两个GPU,分别用1和2表示对应的IDX。

3)reset(gpudev) %清空gpu的内存,类似matlab的clear的功能。其中gpudev是gpuDevice所返回的对象。

 

2.GPU以CPU之间的交互

1)gpuArray(CPU-->GPU)

   主要有两个功能:

   I) 将CPU内存数据传导到GPU内存中

   例子-1:

   X=rand(10,'single');%定义在CPU上的一个10x10的随机初始化数组

   GX=gpuArray(X);     %在GPU开始数组GX,并且将X的值赋给GX

   GX2=GX.*GX;         %GPU上执行数组对应位置的点乘

   II)在GPU内存中随机初始化一些内存数据。

   例子-2:

   GX=rand(10,'gpuArray');%直接在GPU设备上随机初始化一个10x10的数组

   %%PS:常用的随机初始化函数有:eye,ones, zeros, rand, randi, randn.

2)gather(GPU-->CPU)

   主要是将GPU内存中的数据拷贝回CPU内存中。

   继续例子-1

   X2=gather(GX2)      %将GPU内存中的数组GX2赋值给CPU中的X2

3)TF=existOnGPU(DATA)

   用于判断DATA是否存在于GPU内存中。如果不存在则返回false。

 

3.计算效率统计

  t=gputimeit(F,N)     %返回执行F操作N次所需的时间,当N=1时可以缺省   


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab之norm函数

简单点说就是用来计算范数的一个函数。 假设A是一个矩阵,那么norm(A)或者norm(A,2)计算的就是A的2范数;同理norm(A,1)计算的就是1范数了. 2范数:计算步骤是先计算A*A‘(这里A’代表转置,也就是原矩阵*(原…

word_cloud

word_cloud word_cloud wordcloud_server

matlab之reshape函数

简单来说,reshape(A,m,n)就是用来把原矩阵的元素,按照列读取排成一行,然后按照指定的m*n矩阵再按列放好。比如原矩阵为 A 1 2 3 4 5 6 7 8 9 10 11 12 我们先给他按列拍成一排(变相说…

matlab之unwrap函数

网上的说法: 要计算一个系统相频特性,就要用到反正切函数,计算机中反正切函数规定,在一、二象限中的角度为0~pi,三四象限的角度为0~-pi。 若一个角度从0变到2pi,但实际得到的结果是…

画图网页http://weavesilk.com/

画图网页 http://weavesilk.com/

matlab之bsxfun函数

<span style"font-size:18px;color:#ff0000;">简单的调用方法&#xff1a;</span> bsxfun(plus&#xff0c;A&#xff0c;B)&#xff0c;其中plus代表的是加法&#xff0c;还可以换成减法minus&#xff0c;乘法times等&#xff0c;可以参考matlab里面的帮…

Python xrange与range的区别

xrange 与 range xrange 用法与 range 完全相同&#xff0c;所不同的是生成的不是一个list对象&#xff0c;而是一个生成器。 要生成很大的数字序列的时候&#xff0c;用xrange会比range性能优很多&#xff0c;因为不需要一上来就开辟一块很大的内存空间。 xrange 和 range 这…

受限玻尔兹曼机准备知识——蒙特卡洛方法

先了解几个基本概率知识&#xff0c;不急着看蒙特卡洛方法的定义&#xff0c;具体的MC方法参考网上各种资料。 两个比较好的学习MC方法的文章&#xff1a;蒙特卡洛方法入门 (结合了实例)和 蒙特卡洛方法 (推荐&#xff0c;非常详细) 更新日志&#xff1a;2016-11-19&#xff…

Google Colab 免费GPU服务器使用教程

Google Colab免费使用GPU服务器教程 Google Colab Free GPU Tutorial Colaboratory 相关查询命令!/opt/bin/nvidia-smi!pip install !apt-get install !pip install -q keras import keras !apt-get install libnvrtc8.0 !pip install mxnet-cu80 import mxnet as mx import te…

受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样

先点明几个名词 MCMC方法&#xff1a;马尔可夫链-蒙特卡洛方法 (千万别叫成梅特罗波利斯蒙特卡罗方法了) Metropolis-Hastings采样&#xff1a;梅特罗波利斯-哈斯廷斯采样 Gibbs采样&#xff1a;吉布斯采样 还是介绍一下学习MCMC和Gibbs采样比较好的一个资料&#xff1a;随机采…

受限玻尔兹曼机——简单证明

花了很久看了一下玻尔兹曼机&#xff0c;感觉水有点深&#xff0c;总之一步一步来嘛~~~~ 先说一下一个非常好的参考资料&#xff1a; 受限玻尔兹曼机&#xff08;RBM&#xff09;学习笔记 &#xff0c;有兴趣的可以再看看这篇文章的参考文献或者博客&#xff0c;写的也非常好&…

受限玻尔兹曼机RBM实现及能量值思考——matlab实现

网址&#xff1a;http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 这个代码主要是在mnist上做手写数字识别的代码&#xff0c;贴出来的目的主要是想研究一下在迭代过程中能量的变化情况。 1. 标准能量函数 标准的能量函数的表达式为&#xff1a; 那么就将这个…

Cheat_Sheet ---Keras、Matlab、Matplotlib、Numpy、Pandas、Scikit-Learn、SciPy

Cheat_Sheet ---KerasCheat_Sheet ---MatlabCheat_Sheet ---MatplotlibCheat_Sheet ---NumpyCheat_Sheet ---PandasCheat_Sheet ---Scikit-LearnCheat_Sheet ---SciPy参考文献 http://ddl.escience.cn/f/IDkq#path%2F8215264

WPF中DataContext的绑定技巧-粉丝专栏

&#xff08;关注博主后&#xff0c;在“粉丝专栏”&#xff0c;可免费阅读此文&#xff09; 先看效果&#xff1a; 上面的绑定值都是我们自定义的属性&#xff0c;有了以上的提示&#xff0c;那么我们可以轻松绑定字段&#xff0c;再也不用担心错误了。附带源码。 …

matlab实现unix时间戳到标准时间的转换

【注】给定时间精确到小时的情况下的转换 函数&#xff1a; function [ date ] ConvertDate( x ) %将unix时间戳转换为标准时间 % date datestr(1426406400/86400 datenum(1970,1,1)); date datestr((x-3600*248*3600)/86400 70*36519datenum(1900,1,0)); end结果&#…

failed to initialize nvml driver/library version mismatch ubuntu

英伟达驱动版本是384.130显示的NVRM version: NVIDIA UNIX x86_64 Kernel Module是&#xff1a;384.130。 若是旧的版本就会出现如下问题。 这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新&#xff0c;一般情况下&#xff0c;重启机器就能够解决&#xff0c;…

关于机器学习你必须要了解的事情

原文&#xff1a;Pedro Domingos&#xff0c; A Few Useful Things to Know about Machine Learning 1. 泛化效果是机器学习的唯一目标 训练集上的效果无关紧要&#xff0c;泛化效果是机器学习的唯一目标。稍极端的例子&#xff0c;如果训练集准确率为0%&#xff0c;但随机取的…

matlab标准化和反标准化——zscore

先说一下一个小疑问&#xff1a; 目前所了解的归一化概念有点模棱两可&#xff0c;目前可能有三种理解 假设矩阵&#xff21;大小&#xff4e;&#xff0a;&#xff4d;&#xff0c;&#xff4e;代表样本数&#xff0c;&#xff4d;代表每一个样本的维度 ①单独对每一列(全部…

Sublime优美设置(待续)

快捷键熟悉练习请查看 http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html 1.基础用户设置 工具栏 – Preferences – Settings – User {“theme”: “Soda Dark.sublime-theme”,“tab_size”: 4,“font_size”: 10.0,“font_face”: “Microsoft YaHei…

人工神经网络——笔记摘抄1

一、人工神经网络简介 人工神经网络(Artificial Neural Networks&#xff0c;ANN)基本组成成分是&#xff1a;输入(感知)器、加权求和(信息汇聚)、传递(信息传输)器、输出(响应)器组成。 决定神经网络信息处理性能的三大要素&#xff1a;激励函数、学习算法、拓扑结构。 二、人…