File Exchange

image thumbnail

GPU vs CPU speed test of finite difference equation

version (5.73 KB) by Mark Ward
Compares the speed of the parallel computing toolbox functions vs CPU for finite difference


Updated 10 Jul 2014

View License

Simulates the heat equation, with constant heat capacity and thermal conductivity, using GPU (parallel computing toolbox) or CPU (matrix calculations). Includes results from Nvidia titan and i5-2500k @ 4.2 GHz. Any suggestions welcome on speeding up either.

Cite As

Mark Ward (2020). GPU vs CPU speed test of finite difference equation (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (5)

Bill R.


Probably it would be useful to say somewhere in the comments that the variable myPerf is reporting "speed", i.e. something proportional to the number of operations divided by the time.

But definitely useful. Thanks for posting the code!

Mark Ward

GPU with the stencil method is definitely faster, by around 25x on an NVidia Titan compared with i7-3770 @ 3.4 GHz for single precision

Mark Ward

Updated version uses less memeory and is faster, and has comments explaining how to run on the cpu or the gpu in two different ways. Some options have to be changed by editing the code, e.g. whether the calculations are single or double precision etc.

asan masraf

you applied different loops on GPU but
where is CPU processing part on these are codes.(I can't see!)
and from your results appear cpu faster than gpu! is it right or I misunderstood ??!


more minor fixes

few more minor corrections. All the big calculations are set as single precision currently.

I temporarily uploaded a version which used massive arrays. This one is back to normal.

This version is faster and uses less memory. It uses the 'stencil' approach: see the comments for details.

Was advised by Mathworks that one of the submitted files was not a .m file, so I've re-submitted the zip archive.

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux