Matlab之GPU加速方法
来源:互联网 发布:淘宝 退款 空包犯法嘛 编辑:程序博客网 时间:2024/05/21 09:00
Matlab之GPU加速方法
- Matlab之GPU加速方法
- 一般代码加速方法
- GPU设备确认
- GPU和CPU之间数据传递
- 复杂代码加速方法
- 一般代码加速方法
一般代码加速方法
Matlab目前只支持Nvidia的显卡。
GPU设备确认
想知道自己的电脑有没有这个能力,在Matlab中运行 gpuDevice
。
只要数据格式是gpuArray
格式的,那么计算过程会自动的调用GPU进行计算。
GPU和CPU之间数据传递
- gpuArray
I) 将CPU内存数据传到GPU内存中
X=rand(10,'single'); %定义在CPU上的一个10x10的随机初始化数组 GX=gpuArray(X); %在GPU开始数组GX,并且将X的值赋给GX GX2=GX.*GX; %GPU上执行数组对应位置的点乘
还有很多支持 gpuArray 数据类型的函数,具体可以用 methods(‘gpuArray’) 查看。下列某函数的说明可以用 help gpuArray/functionname 查看:
gpuArray.ones gpuArray.colongpuArray.zeros gpuArray.randgpuArray.inf gpuArray.randigpuArray.nan gpuArray.randngpuArray.true gpuArray.linspacegpuArray.false gpuArray.logspacegpuArray.eye
其实,这些函数的用法和对应的普通函数的用法都是类似的。
II = gpuArray.eye(1024,'int32');size(II)ans=1024 1024
II)在GPU内存中随机初始化一些内存数据。
GX=rand(10,'gpuArray'); %直接在GPU设备上随机初始化一个10x10的数组%%常用的随机初始化函数有:eye, ones, zeros, rand, randi, randn.
- gather
将GPU内存中的数据拷贝回CPU内存中。
X2=gather(GX2) %将GPU内存中的数组GX2赋值给CPU中的X2
TIPS
有时候GPU受限于硬件架构,单精度的计算远快于双精度。这时候可以考虑在拷贝的时候顺便转换一下精度 A = gpuArray(single(B)) 。
复杂代码加速方法
对于一些复杂的,无法用matlab内部函数进行GPU加速的代码,matlab还提供了一个更强大的工具,就是调用.cu文件。
matlab+c混合编程把.c,.cc,.cpp等文件编译为能够使用的mex文件。对于CUDA程序.cu,matlab也提供了一套方法来调用,最终编译成.ptx文件。
0 0
- Matlab之GPU加速方法
- 利用GPU实现Matlab加速
- Matlab编程的GPU加速
- matlab中使用CUDA kernel GPU加速
- matlab 中使用 GPU 加速运算
- GPU加速
- GPU加速
- matlab中利用GPU加速仿真的配置
- Matlab多线程与多核运算, 以及GPU加速
- MATLAB上的GPU加速计算——学习笔记
- 加速GPU,加速NVIDIA
- 一种不能进行gpu加速的折中方法
- 深度学习卷积算法的GPU加速实现方法
- brook+编程之GPU加速到底多快?
- Ubuntu12.04 之 CUDA 编程 (二) ~~~ GPU 程序加速
- 深度学习之五:使用GPU加速神经网络的训练
- Silverlight - GPU加速
- GPU加速-手势库
- ffmpeg封装H246为MP4
- ubuntu 编译android时,java和javac版本不同引起的问题。
- B2C商城(非平台)需求设计
- Android View框架总结(七)View事件分发机制
- MyEclipse/Eclipse常用小功能--持续更新...
- Matlab之GPU加速方法
- picoCTF2013 wirteup (一)
- form表单的两种提交方式,submit和button的用法
- <context:component-scan>使用说明
- 冒泡排序
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) D. Minimization
- 配置vim作为python、php开发环境
- NOIP2015 提高组 day1 神奇的幻方
- Switch的识别