Create array on GPU
G = gpuArray(X)
G = gpuArray(X)
copies the numeric array X
to
the GPU, and returns a gpuArray object.
You can operate on this array by passing its gpuArray to the feval
method of a CUDA kernel object,
or by using one of the methods defined for gpuArray objects in Establish Arrays on a GPU.
The MATLAB array X
must be numeric (for example: single
, double
, int8
,
etc.) or logical, and the GPU device must have sufficient free memory
to store the data.
If the input argument is already a gpuArray, the output is the same as the input.
Use gather
to retrieve the array from the
GPU to the MATLAB workspace.
Transfer a 10-by-10 matrix of random single-precision values to the GPU, then use the GPU to square each element.
X = rand(10,'single');
G = gpuArray(X);
classUnderlying(G)
single
G2 = G .* G; % Performed on GPU whos G2 % Result on GPU
Name Size Bytes Class G2 10x10 108 gpuArray
Copy the array back to the MATLAB workspace.
G1 = gather(G2);
whos G1
Name Size Bytes Class G1 10x10 400 single
arrayfun
| bsxfun
| existsOnGPU
| feval
| gather
| parallel.gpu.CUDAKernel
| reset