主要内容

이번역번역이지는최신내용을담고담고않습니다않습니다。최신최신내용을영문영문으로여기를클릭클릭

GPU에서马铃薯함수실행하기

gpuArray인수를갖는马铃薯함수

많은matlab.®가함수와툴박스가GPUArray.인수인수를제공받으면받으면자동gpu에서실행됩니다。

a = gpuarray([1 0 1; -1 -2 0; 0 1 -1]);E = EIG(a);

하나이상의gpuarray를데이터입력입력인수사용하여이러한함수를호출할마다가gpu에서실행됩니다。尺寸처럼matlab데이터를반환하는에이더적합한한를제외,이함수는결과로gpuarray를를합니다。동일한함수호출에서gpuarray와matlab배열을둘사용하여하여입력값을혼합할수함수가gpu또는cpu에서실행되는경우에자세한내용은gpuarray입력값의특수조건항목을참조하십시오。gpu지원함수에는이산푸리푸리에(fft),행렬행렬(m),행렬왼쪽나눗셈(莫德利维)을비롯하여수백개가있습니다。자세한내용은GPU지원지원함수확인항목을참조하십시오。

GPU지원지원함수확인

gpuArray를지원하는MATLAB함수인경우이함수의도움말페이지에서GPU사용과관련한추가정보를참조할수있습니다。함수도움말페이지마지막에나오는확장기능섹션에서GPU배열을을하십시오。

GPU배열배열을지원지원하는모든모든모든함수를필터링필터링목록을함수목록(GPU배열)을을하십시오。

몇몇matlab툴박스에는gpu를지원하는내장가포함포함있습니다。이러한툴박스에서gpuarray를지원하는모든함수목록을다음표에나와있는링크사용하십시오。목록에는에서경고가있는있는에는gpu에서함수실행시해야할사용법이있습니다및제한사항이있습니다。함수도움말페이지의의확장기능섹션사용법관련관련및및사항확인확인할수수각gpu지원함수의이트에에대한자세한내용내용릴리스정보를참조

툴박스이름. gpuarray를지원하는함수목록 gpu관련문서
马铃薯 gpuarray를지원하는함수
统计和机器学习工具箱™ gpuarray를지원하는함수(统计和机器学习工具箱)
图像处理工具箱™ gpuarray를지원하는함수(图像处理工具箱) GPU연산(图像处理工具箱)
深度学习工具箱™

gpuarray를지원하는함수(深度学习工具箱)

*(GPU를사용한한항목참조)

计算机Vision Toolbox™ gpuarray를지원하는함수(电脑视觉工具箱) GPU代码生成和加速度(电脑视觉工具箱)
Communications Toolbox™ gpuarray를지원하는함수(通信工具箱) 代码生成和加速支持金宝app(通信工具箱)
信号处理工具箱™ gpuarray를지원하는함수(信号处理工具箱) 코드생성및gpu지원(信号处理工具箱)
音频工具箱™ gpuarray를지원하는함수(音频工具箱) 代码生成和GPU支持金宝app(音频工具箱)
小波工具箱™ gpuarray를지원하는함수(小波工具箱) 代码生成和GPU支持金宝app(小波工具箱)
曲线配件工具箱™ gpuarray를지원하는함수(曲线配件工具箱)

모든mathworks.®제품의gpu지원함수는GPU지원함수링크에서찾아볼수있습니다。또는제품별로필터링할수도있습니다。도움말표시줄에서함수를를합니다。함수목록의왼쪽창에서찾아볼,예예들어,matlab을선택합니다。왼쪽창하단에서GPU배열을을합니다。GPU지원함수가없는제품을선택할경우GPU배열필터를사용할수없습니다。

GPU를사용한한

적합한gpu및并行计算工具箱™를사용하는하는深度学习工具箱의함수대부분에서gpu가자동으로지원됩니다。데이터를gpuarray로변환할필요가없습니다。다음은사용가능한경우gpu에서기본적으로으로실행되는함수에일부일부입니다입니다입니다목록관한일부입니다입니다입니다목록목록일부입니다입니다목록목록목록관한관한목록목록목록

深度学习工具箱에서자동gpu지원에대한내용은GPU에서병렬로빅데이터사용용한(深度学习工具箱)항목을참조하십시오。

dlnetwork.(深度学习工具箱)객체또는모델함수로정의된신경망을사용하는고급신경망및워크플로의경우데이터를gpuArray로변환하십시오。GPU에서사용자지정학습루프또는예측을실행하려면gpuarray를지원하는함수(深度学习工具箱)를사용하십시오。

GPU를확인하거나선택하기

GPU가있는경우matlab은gpu계산에자동gpu를사용합니다。GPudevice.함수를사용하여gpu를확인할수있습니다。여러개의gpu가있는있는에는GPudevice.를사용하여하여그중하나하나선택,여러개의gpu를병렬사용할할수수예제는GPU를식별하고선택하기병렬풀에서다중gpu사용하기항목을참조하십시오。GPU지원여부를확인하려면릴리스별gpu지원항목을참조하십시오。

딥러닝을위해matlab은은gpu에대한자동연산을지원합니다。복수의gpu에서matlab을사용한한(深度学习工具箱)항목을참조하십시오。

GPU에서matlab함수사용하기

이예제에서는gpu지원matlab함수를사용하여gpuarray로연산을수행방법방법보여줍니다。GPudevice.함수를사용용gpu의속성을확인할있습니다。

GPudevice.
ANS =带有属性的Cudadevice:名称:'GeForce GTX 1080'索引:1 Computapapabity:'6.1'支持DOUPE:1驱动程序:10.1000工具包:金宝app101000 MAXSHREADSPERCLOCK:1024 MAXSHMEMPERBLOCK:49152 MAXTHREADBLOCKSIZE:[1024 1024 64] MAXGRIDSIZE:[2.1475E + 0965535 65535] SIMDWIDTH:32 TotalMemory:8.5899E + 09可用性:6.9012E + 09多处理器:1733500 CompleMode:'默认'GPuoverLapStransfers:1 KernelexecutionTimeout:1 CanmaphostMemory:1 DemableOpported:1金宝app

-15年에서15까지의값을반복하는행벡터를만듭니다。이벡터를GPU로전송하고gpuArray를생성하려면GPUArray.함수를사용하십시오。

x = [-15:15 0 -15:15 0 -15:15];gpux = gpuarray(x);谁是GPUX.
名称大小字节类属性gpuX 1x95 4 gpuArray

gpuarray로연산을수행수행gpu지원matlab함수함수사용하십시오。matlab은자동으로gpu에서계산을실행합니다。자세한내용은GPU에서matlab함수함수실행항목을참조하십시오。예를들어,诊断EXPM.摩擦ABSPliplr.의조합을사용해해。

GPUE = EXPM(DIAG(GPUX,-1))* EXPM(DIAG(GPUX,1));gpum = mod(圆形(abs(abs(abs)),2);gpuf = gpum + fliplr(gpum);

결과를플로팅합니다。

显示亮度图像(gpuF);colormap(翻转(灰色));

GPU에서다시데이터를를전송해야하는하는收集를사용합니다。CPU로다시수집하는작업에이많이들수있으며,gpuarray를지원하지않는에서결과를사용할필요필요필요없는한으로으로필요하지하지하지하지

结果=收集(gpuF);谁是结果
名称大小字节类属性结果96x96 73728双倍

GPU와CPU사이에는숫자정밀도와알고리즘의차이가있으므로일반적으로CPU에서코드를실행할경우결과가달라질수있습니다。CPU와GPU에서계산되는각각의답은참값인해석적결과에대한부동소수점근삿값으로서둘은똑같이타당한답이지만,계산과정에서의반올림이서로다릅니다。이예제에서결과는정수이며는반올림오차를제거합니다。

GPU를사용하여이미지를를선명하게

이예제에서는gpuarray와gpu지원지원사용하여이미지를선명하게만드는방법보여줍니다。

이미지를읽어들이고GPUArray.함수를사용하여이미지를GPU로보냅니다。

image = gpuarray(imread('peppers.png'));

이미지를双重형으로변환하고을적용하여기울기이미지를를。그런다음기울기이미지를사용하여하여로이미지를선명만듭니다。

DIMAGE = IM2DOUBLE(图像);梯度= convn(尺寸,yimage(3)./ 9,'相同的') -  Convn(Dimage,One(5)./ 25,'相同的');金额= 5;Sharpened = Dimage +金额。*渐变;

원래이미지와선명해진이미지의의크기를조정조정하고하여비교

imshow(imresize([尺寸,削尖],0.7));标题('原始图像​​(左)与锐化图像(右)');

GPU지원함수를사용하여mandelbrot집합집합계산

이예제에서는gpu지원matlab함수를사용하여알려진수학구조인mandelbrot집합집합을계산하는방법을보여줍니다보여보여줍니다GPudevice.함수를사용하여gpu를확인합니다。

파라미터를정의합니다。Mandelbrot알고리즘알고리즘은실수부와허수부로구성된그리드를반복반복허수부로구성된된그리드반복반복다음코드는반복횟수,그리드크기및그리드제한을정의합니다。

最大= 500;gridsize = 1000;XLIM = [-0.748766713922161,-0.7487667077771757];ylim = [0.12364084894862,0.123640851045266];

GPUArray.함수를사용용gpu로데이터를하고GPUArray.를만들거나,또는gpu에서직접배열을수있습니다。GPUArray.Linspace.같은같은함수의gpu버전을제공하여이터배열배열을만들사용할할있도록있도록자세한내용은GPU배열직접만들기항목을참조하십시오。

x = gpuarray.linspace(xlim(1),xlim(2),gridsize);y = gpuarray.linspace(ylim(1),ylim(2),gridsize);谁是Xy
名称大小字节类属性x 1x1000 4 gpuarray y 1x1000 4 gpuarray

많은matlab함수가gpuarray를지원합니다。gpu지원함수에gpuarray인수를제공하면가자동으로gpu에서실행됩니다。자세한내용은GPU에서matlab함수함수실행항목을참조하십시오。알고리즘알고리즘에대한복소수복소수그리드를만들고결과에대한数数를만듭니다。이배열배열gpu에서직접만들려면那些함수를사용용“gpuArray”를를하십시오。

[Xgrid,Ygrid] = meshgrid(x,y);z0 =复合物(Xgrid,Ygrid);count = =(大小(z0),“gpuArray”);

다음코드는gpu지원함수를사용하여mandelbrot알고리즘을구현합니다。코드가gpuarray를사용하기때문​​계산은gpu에서수행됩니다。

z = z0;为了maxIterations z = z.*z + z0;= abs(z) <= 2;Count = Count + inside;结尾count = log(count);

계산이완료되면결과를합니다。

ImageC(X,Y,Count)Colormap([Jet(); flipud(Jet()); 0 0 0]);轴离开

GPU에서희소형식배열사용하기

다음함수는희소형식gpuarray를지원합니다。

ABS ACOS ACOSD ACOSC ACOTD ACSH ACSC ACSCD ACSCH角度ASEC ASECD ASECH ASIN ASIN ASINHATAN ATAN ATANH BICG BICGSTAB CEIL CGS Columundering Cong COS COSD COT COT COTH COTH COTH COTH COTH COTH COTH COTH COTH COTH
最终EPS exp expint expm1查找修复楼层全球gmres gpuarray.speye imag isaundingingsisdiagegisementy isequal isequaln isfinite isfloat isinteger isslogical isnumeric isreal issparse istril istriu istriu isderyingyingype leng log log2 log10 log1p lsqr minus mtimes mustbeunderingtype ndims nextpow2 nnz
非安利斯·常规Numel NZMAX PCG PLUS QMR RAD2DEG真实Reallog Reallog RealSQRT轮秒SECS SEC SEC SEC SIN SINPI SINPI尺寸稀疏SPFUN SPONES SPRANDSYM SQRT SUM TAN TANT TANH TFQMR TIMES(。*)跟踪TRIL TRIUUMINUS底层UPLUS

gpuarray입력값으로를를호출하거나희소희소형식값값GPUArray.를호출하여희소형식gpuarray를를수있습니다。예를들면다음과같습니다。

x = [0 1 0 0 0;0 0 0 0 1]
0 1 0 0 0 0 0 0 0 1
s = sparse(x)
(1,2)1(2,5)1
g = gpuarray;%g是稀疏的gpuarraygt =翻转(g);% gt是一个稀疏的gpuArrayf = full(gt)%f是一个完整的gpuarray
0 0 1 0 0 0 0 0 0 1

희소형식gpuarray는인덱싱을지원하지않습니다。대신를사용하여배열에서0이아닌배열배열,그리고이러한요소요소의행와열인덱스를를행와열인덱스를를인덱스열열인덱스를그런그런다음원하는값값대체하고희소형식형식희소형식형식생성새로새로생성생성생성생성생성

GPU에서복소수사용하기

gpu에서실행되는함수출력값에이복소수일수있는경우,이함수의의입력인수를명시적복소수로지정해야해야적으로복소수로지정해야이는Arrayfun.이실행하는하는코드에서에서호출되는GPUArray.에에됩니다。

예를들어,음의요소가있을수있는gpuarray를만들경우g = gpuarray(复杂(p))를사용하면sqrt(g)를성공적으로실행할수있습니다。

또는Arrayfun.에전달되는함수내에서X가실수로구성된벡터이고일부일부요소에이있는있는sqrt(x)는오류를생성하므로대신SQRT(复杂(x))를호출해야합니다。

결과가복소수복소수이터로된된gpuarray이고모든가0인경우이허수부는유지되고이터는는복소수를유지유지유지유지유지유지유지유지따라서种类是真实的등을사용할할때영향영향을수수

다음표에는복소수데이터를를반환할수있는함수와출력이실수를를값값범위를하는입력범위범위되어있습니다。

함수 실수실수출력값에에대한입력
这些“可信赖医疗组织”(x) abs(x)<= 1
Acosh(x) x> = 1
acoth(x) ABS(x)> = 1
ACSC(x) ABS(x)> = 1
asec (x) ABS(x)> = 1
Asech(x) 0 <= x <= 1
Asin(x) abs(x)<= 1
atanh(x) abs(x)<= 1
log(x) x> = 0
log1p(x) x> = -1
log10(x) x> = 0
log2(x) x> = 0
电源(x,y) x> = 0
Reallog(x) x> = 0
Realsqrt(x) x> = 0
sqrt(x) x> = 0

gpuarray입력값의특수조건

GPU지원함수는데이터가GPU에있는경우만gpu에서실행됩니다。예를들어,다음코드는첫번째입력값데이터가gpu에있기에gpu에서실행됩니다。

>>总和(GPUARRAY(魔术(10)),2);
그러나다음코드는번째입력인인데이다가GPU에있지않기에gpu에서실행되지않습니다。
>>总和(魔术(10),GPUARRAY(2));
입력인수gpuarray에차원,스케일링인자또는반복횟수등항목이포함되어있는경우함수이항목을을하고cpu에서계산합니다。함수는실제데이터인수가GPUArray인경우만만gpu에서실행됩니다。

감사의글

岩浆는gpu가속을활용선형대수루틴라이브러리라。并行计算工具箱에서gpuarray에구현된선형함수는는한성능과를확보하기위해岩浆

참고항목

|

관련예제

세부정보