GPUCONV2
GPUCONV2 Two dimensional convolution on the GPU using Cuda.
C = GPUCONV2(A, B) performs the 2-D convolution of matrices A and B.
If [ma,na] = size(A), [mb,nb] = size(B), and [mc,nc] = size(C), then
mc = max([ma+mb-1,ma,mb]) and nc = max([na+nb-1,na,nb]).
C = GPUCONV2(A, B, SHAPE) returns a subsection of the 2-D
convolution with size specified by SHAPE:
'full' - (default) returns the full 2-D convolution,
'same' - returns the central part of the convolution
that is the same size as A.
'valid' - returns only those parts of the convolution
that are computed without the zero-padded edges.
size(C) = max([ma-max(0,mb-1),na-max(0,nb-1)],0).
Note!
This function depends on two Cuda kernel files
conv2_float.cu and conv2_double.cu which needs to be compiled
to .ptx files using the nvcc compiler.
See also CONV2, NVCC
Example,
Load an image
I=im2double(imread('moon.tif'));
Create a Gaussian filtering kernel
H = fspecial('gaussian',[20 20],3);
Perform the convolution on the CPU
J = conv2(I,H);
Perform the convolution on the GPU
Jcuda = gpuconv2(I,H);
Show the results
figure,
imshow(J,[]); title('CPU filtering');
imshow(Jcuda,[]); title('GPU filtering');
imshow(Jcuda-J,[]); title('Difference');
Zitieren als
Dirk-Jan Kroon (2024). GPUCONV2 (https://www.mathworks.com/matlabcentral/fileexchange/29648-gpuconv2), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
- Parallel Computing > Parallel Computing Toolbox > GPU Computing >
- Parallel Computing > Parallel Computing Toolbox > Performance Profiling >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
Version | Veröffentlicht | Versionshinweise | |
---|---|---|---|
1.0.0.0 |