Code covered by the MathWorks Limited License

Highlights from
GPUBench

5.0

5.0 | 1 rating Rate this file 42 Downloads (last 30 days) File Size: 81.26 KB File ID: #34080
image thumbnail

GPUBench

by Ben Tordoff

 

05 Dec 2011 (Updated 18 Jan 2012)

Compare GPUs using standard numerical benchmarks in MATLAB.

| Watch this File

File Information
Description

GPUBENCH times different MATLAB GPU tasks and estimates the peak performance of your GPU in floating-point operations per second (FLOP/s). It produces a detailed HTML report showing how your GPU's performance compares to pre-stored performance results from a range of other GPUs.

Note that this tool is designed for comparing GPU hardware. It does not compare GPU performance across different MATLAB releases.

Requires MATLAB R2011b or above and a GPU with CUDA Compute Capability 1.3 or higher.

Required Products Parallel Computing Toolbox
MATLAB
MATLAB release MATLAB 7.13 (2011b)
Other requirements GPU with CUDA Compute Capability 1.3 or higher.
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (5)
25 Jan 2012 Thomas Anthony

Good benchmark for GPU's

20 Feb 2012 Tristan Martel

I've attempted to run benchmark. I have 3 teslas and a quadro in my machine. I noticed that only my fourth GPU was being used at all. The benchmark failed at 19% with the following error:
An unexpected error occurred during CUDA execution. The CUDA error was: CUDA_ERROR_ECC_UNCORRECTABLE.

Error in C:\Program
Files\MATLAB\R2011b\toolbox\distcomp\gpu\+parallel\+internal\+gpu\currentDeviceFreeMem.p>currentDeviceFreeMem
(line 7)

Error in parallel.gpu.CUDADevice/get.FreeMemory (line 107)
                fm = parallel.internal.gpu.currentDeviceFreeMem();

Error in gpuBench>getTestSizes (line 371)
    freeMem = gpu.FreeMemory;

Error in gpuBench>runMTimes (line 163)
sizes = getTestSizes( type, safetyFactor, device );

Error in gpuBench (line 76)
    gpuData = runMTimes( gpuData, reps, 'double', 'GPU', progressTitle, numTasks );

Thanks for your help on this.

21 Feb 2012 Ben Tordoff

Hi Tristan,

GPUBench only benchmarks one GPU at a time. Since it just uses the current device, you can use "gpuDevice(n)" to select the nth GPU before calling it. However, NVIDIA's drivers normally default to the most powerful card first, so if you're only getting results for your slowest card that indicates a wider problem. Can you try doing:

>> gpuDeviceCount()

to make sure all four devices are found? You can then try

>> for ii=1:gpuDeviceCount(), gpuDevice(ii), end

to print out the details of all the cards found. You need to make sure all of them have the "DeviceSupported" flag set to 1.

I've never seen the particular error you report, and looking on NVIDIA's forums they say it is most likely caused by a hardware problem and once you hit it you have to reboot to fully flush memory:

http://forums.nvidia.com/index.php?showtopic=204333

That doesn't sound good, I'm afraid!
Let me know how you get on.

Ben

13 Apr 2012 David Allen

Hi Ben,

Thanks for the code.

I am getting this error though. I know it is to do with the time-out settings, but don't know what to do from here. My Quadro 1000M does not appear to be speeding up my ffts etc.

Warning: An unexpected error occurred during CUDA execution. The CUDA error was:
CUDA_ERROR_LAUNCH_TIMEOUT.
> In gpuBench at 75
Warning: An unexpected error occurred during CUDA execution. The CUDA error was:
CUDA_ERROR_LAUNCH_TIMEOUT.
> In gpuBench at 75
Warning: An unexpected error occurred during CUDA execution. The CUDA error was:
CUDA_ERROR_LAUNCH_TIMEOUT.
> In gpuBench at 75
An unexpected error occurred during CUDA execution. The CUDA error was:
CUDA_ERROR_LAUNCH_TIMEOUT.

Error in C:\Program
Files\MATLAB\R2011b\toolbox\distcomp\gpu\+parallel\+internal\+gpu\currentDeviceFreeMem.p>currentDeviceFreeMem
(line 7)

Error in parallel.gpu.CUDADevice/get.FreeMemory (line 107)
                fm = parallel.internal.gpu.currentDeviceFreeMem();

Error in gpuBench>getTestSizes (line 371)
    freeMem = gpu.FreeMemory;

Error in gpuBench>runMTimes (line 163)
sizes = getTestSizes( type, safetyFactor, device );

Error in gpuBench (line 76)
    gpuData = runMTimes( gpuData, reps, 'double', 'GPU', progressTitle, numTasks );

Thanks,
Dave

16 Apr 2012 Narfi

If you run into CUDA_ERROR_LAUNCH_TIMEOUT, have a look at

http://www.mathworks.com/gputimeout

It explains how to change your system settings to avoid this.

Please login to add a comment or rating.
Updates
18 Jan 2012

Add data for C2075

Tag Activity for this File
Tag Applied By Date/Time
gpu Ben Tordoff 18 Jan 2012 08:34:45
performance Ben Tordoff 18 Jan 2012 08:34:45
benchmark Ben Tordoff 19 Jan 2012 03:45:31
bench Ben Tordoff 19 Jan 2012 03:45:35
utilities Ben Tordoff 19 Jan 2012 03:45:40
timing Ben Tordoff 19 Jan 2012 03:45:42

Contact us at files@mathworks.com