Just published another benchmark app for Android. It is a memory bandwidth benchmark derived from the STREAM benchmark.
My benchmark, named RgBandwidth, is meant to provide you with a rough estimate of the achievable memory bandwidth on your system. Get it from the Play store. To quickly get an estimate of memory bandwidth performance achievable on your device, just press “Run” using the Auto mode.
Then in about 10-20 seconds, you will get various bandwidth ratings in MB/s. The easiest to understand is the Copy Bandwidth data. Alternately, you can manually select a thread number and experiment around.
On my dual-core Snapdragon S3 device, I got about 1.5GB/s of peak bandwidth.
If you use my benchmark, I would be very grateful if you could share the numbers with me in the comments below 🙂
7 thoughts on “RgBandwidth: My memory bandwidth benchmark for Android”
I got 1.917, 2.264, 2.152, and 2.086 GB/s for copy, scale, add, and triad respectively. I have a Samsung Galaxy S3.
I got 1164.8 1165.5 1054.4 1059.0 MB/s for copy, scale, add, and triad respectively. I have a Galaxy Samsung.
I have a Nexus 10 (Exynos 5 Dual, dual-core Cortex A15 @ 1.7GHz) and am blown away by the bandwidth numbers! I am getting easily around 4 to 5x the numbers that I see on my Nexus 7, and sometimes more!
Copy 5459.4 MB/s (5.459 GB/s)
Scale 5220.0 MB/s (5.220 GB/s)
Add 4656.9 MB/s (4.656 GB/s)
Triad 4660.7 MB/s (4.660 GB/s)
These numbers are quite consistent between runs.
It would be lovely to get a little insight into what these numbers actually mean (eg. triad).
You can look at the STREAM official site at http://wwww.streambench.org to see the description and some C code. The benchmarks here are derived from the STREAM bench. For example, the official source code uses OpenMP but I used pthreads instead.
Thanks for the link! The bench seems very simple and yet very effective. To answer my original question (for anyone that is following this conversation), copy is just copying data from one large, in memory array to another in-memory array, scale is multiplying a scaler to an element of one in memory array and dumping the results to another array, add is adding two elements from two separate in-memory arrays and dumping the results into a third array, and the Triad test is a MAD pulling data from two in memory arrays and storing it into a third! Thanks again!
Hi, Have you released the source code for this? If you haven’t would you be willing to do so?
Are you calculating memory bandwidth for CPU or GPU??