For example, we can create a GPU array by code:
rand(3, 'single', 'gpuArray')
Unfortunately, this code will fail if it is run on a PC without a CUDA graphics card. If we can pass 'cpuArray' to rand, we can easily write a MATLAB program for both CPU and GPU computings. E.g.,
useGpu = 0 if(useGpu) arrayType = 'gpuArray'; else arrayType = 'cpuArray'; end % The program ...
A = rand(3, 'single', arrayType); B = rand(3, 'single', arrayType); C = A*B;
(Unfortunately, this example doesn't work for current MATLAB…)
Otherwise, we have to write this code:
useGpu = 0 if(useGpu) A = rand(3, 'single', 'gpuArray'); B = rand(3, 'single', 'gpuArray'); else A = rand(3, 'single'); B = rand(3, 'single'); end C = A*B;
Could MathWorks add 'cpuArray' to most array creation functions in the future?
Best Answer