Nvidia GT 750M GPU performance on a MacBook Pro using MATLAB
I recently got a 15 inch Retina Macbook Pro which contains an NVIDIA GT 750M GPU. It’s been a while since I last got a laptop with a decent GPU in it so I wondered how it would perform in MATLAB using the Parallel Computing Toolbox.
Of course I didn’t read any documentation; I simply fired up MATLAB 2015a and issued the gpuDevice command.
>> gpuDevice Error using gpuDevice (line 26) There is a problem with the CUDA driver or with this GPU device. Be sure that you have a supported GPU and that the latest driver is installed. Caused by: The CUDA driver could not be loaded. The library name used was '/usr/local/cuda/lib/libcuda.dylib'. The error was: dlopen(/usr/local/cuda/lib/libcuda.dylib, 10): image not found
This is because I didn’t install a load of CUDA-related stuff! Following these instructions did the trick!
>> gpuDevice() ans = CUDADevice with properties: Name: 'GeForce GT 750M' Index: 1 ComputeCapability: '3.0' SupportsDouble: 1 DriverVersion: 6.5000 ToolkitVersion: 6.5000 MaxThreadsPerBlock: 1024 MaxShmemPerBlock: 49152 MaxThreadBlockSize: [1024 1024 64] MaxGridSize: [2.1475e+09 65535 65535] SIMDWidth: 32 TotalMemory: 2.1470e+09 AvailableMemory: 444055552 MultiprocessorCount: 2 ClockRateKHz: 925500 ComputeMode: 'Default' GPUOverlapsTransfers: 1 KernelExecutionTimeout: 1 CanMapHostMemory: 1 DeviceSupported: 1 DeviceSelected: 1
I headed over to the MATLAB File Exchange to get the GPU Bench App for MATLAB and fired it up. The summary of the results is below. Click on the image to see the detailed results.
The double precision performance of this GPU card is very poor – MUCH slower than the CPU on the Macbook Pro.
Looking on the bright side, the numbers for the CPU are pretty good for a laptop!
By default setting, the retina macbook needs more resources to render image because of its screen resolution.
nVidia performance for Double in its mainstream cards are 1 / 32 of the Single.
It is part of their policy to make people buy Tesla and Quadro.
This is on of the main reasons I wish for OpenCL support in MATLAB.
AMD cards have much much better performance in the GPGPU world.