Memory bandwidth benchmark for Android

Laptops, PDAs, Cell Phones, and all other tech that you carry with you.

Moderators: mac_h8r1, Nelliesboo, David

Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 7:31 am

UPDATE: Now updated to v2.1 Users with earlier versions should upgrade and retest.

I just published my second benchmark app. This tests memory bandwidth. Get it https://play.google.com/store/apps/details?id=org.codedivine.rgbenchbw.

The test is derived from the STREAM benchmark which is widely used in testing memory bandwidth on servers and workstations.

The app is simple (and quick) to run. Just choose the number of threads, press "Run" and within about 10 seconds it will give you memory bandwidth estimate in MB/s. You can try running it with different number of threads. The UI gives you option to run it with 1, 2, 4 or 8 threads.

Results are unfortunately not very consistent from one run to next, but should give you a rough estimate of the memory bandwidth offered by your system. Post your results, or any feedback you may have, here.

On my Snapdragon S3 dual-core system, the achieved peak was 1.8GB/s. This was using 4 or 8 threads.
Last edited by codedivine on Thu Sep 27, 2012 10:11 pm, edited 3 times in total.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 7:42 am

I have a feeling this numbers are unrealistic, but that's just me.

BTW- My LG optimus 2x get 1GB/per second. 2 threads.
Intel i5 4670K @ 4.8GHZ|ATI Radeon HD 7970 (Stock)| 12 GB RAM (Stock)| Xtreme Music with G500 5.1 | Panasonic "TH-L42E60" @ 120 HZ.
Jigar
Maximum Gerbil
Silver subscriber
 
 
Posts: 4618
Joined: Tue Mar 07, 2006 4:00 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 7:53 am

Jigar wrote:I have a feeling this numbers are unrealistic, but that's just me.

BTW- My LG optimus 2x get 1GB/per second. 2 threads.


Thanks. Unrealistic how? Too high or too low?
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 7:59 am

A Nexus 7 user reported about 2.3GB/s using 4 threads.

edit: As noted below, might not have been Nexus 7. Let's just say unknown Tegra 3 device.
Last edited by codedivine on Wed Sep 26, 2012 11:35 pm, edited 1 time in total.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 9:38 am

Nice, I'll run this after I finish flashing a new nightly build of CM10.

Also, Anandtech has a nice article that might be informative for you: http://www.anandtech.com/show/4144/lg-o ... artphone/4
ChronoReverse
Gerbil Elite
 
Posts: 738
Joined: Wed Dec 12, 2007 4:20 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 9:50 am

Okay, reran RgbenchMM to make sure nothing significantly changed with the new ROM: 1132MFlops

RgBandwidth
1 thread: 953/779/929/895
2 threads: 1395/1282/1490/1449
4 threads: 1371/1259/1405/1420
8 threads: 1245/1162/1384/1363

Galaxy Note, Snapdragon S3 @ 1.5GHz running Android 4.1 (JB, CM10)
Last edited by ChronoReverse on Wed Sep 26, 2012 10:33 am, edited 1 time in total.
ChronoReverse
Gerbil Elite
 
Posts: 738
Joined: Wed Dec 12, 2007 4:20 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 10:29 am

1:926/934/777/765
2:953/1035/886/868
4:957/1007/881/866
8:926/1016/869/850

Atrix 4G (Tegra2)
NeelyCam
Gerbil First Class
Gold subscriber
 
 
Posts: 135
Joined: Fri Oct 16, 2009 12:25 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 12:03 pm

Thanks Neely :D
Oh and Good News Everyone! I have pushed v1.1 to the market that adds an "auto mode". It will test all the configs for you and display the result of the one with the best copy bandwidth. I figured the easier it is to use, the better chance it will have to be adopted.

Of course, you still have the option of manually testing the threads and for that I have also added an option to test 5 threads. :)
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 12:25 pm

ChronoReverse wrote:Okay, reran RgbenchMM to make sure nothing significantly changed with the new ROM: 1132MFlops

RgBandwidth
1 thread: 953/779/929/895
2 threads: 1395/1282/1490/1449
4 threads: 1371/1259/1405/1420
8 threads: 1245/1162/1384/1363

Galaxy Note, Snapdragon S3 @ 1.5GHz running Android 4.1 (JB, CM10)


It is strange that your results profile differs from mine given that mine is also S3 dual-core @ 1.5GHz. On 2 threads, I get almost the same performance as 1 thread. Hmm, maybe it has a different memory module?
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 1:16 pm

I suppose the memory chip and interface could be different?

Let's see, your Galaxy S2X would have the APQ8060 while my Galaxy Note has the MSM8660.

[edit]Huh, no they don't differ. Both are specified as Single-channel 333 MHz ISM/266 MHz LPDDR2. Perhaps it's the OS or memory chip after all. Which Android were you running? I'm on a JellyBean build (3.0 kernel).

In any case, on my Note, the memory bench consistently maxes out at 2 cores.
ChronoReverse
Gerbil Elite
 
Posts: 738
Joined: Wed Dec 12, 2007 4:20 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 1:28 pm

Installed and ran 1.2, seems my results have gotten higher?

Auto RgBandwidth
1439/1338/1486/1460
ChronoReverse
Gerbil Elite
 
Posts: 738
Joined: Wed Dec 12, 2007 4:20 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 3:47 pm

I am running stock 4.0.4 with TouchWiz.
Hmm I will take a deeper look into the data being generated again. Wondering if my timer has a resolution issue. The times that we are measuring are in the 10-30ms ranges in this case. I do many iterations and calculate using an average but wondering if the timer is not accurate. The other thing to think about is how I do memory allocation in the benchmark and whether I can make that more repeatable. I probably cannot increase the problem size or the memory allocations will be so large that some phones might run out of memory.

Overall, I do expect this benchmark to show variations amongst runs, that's just the nature of it. But should work harder to reduce the variations.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 4:19 pm

Running on a Pantech Burst, 2.3.6 SnapDragon S3 1.5Ghz dual core

Rgbandwidth:
On Auto: 1293/1163/1371/1284

RgbenchMM
1 Thread: 592MFlops
2 Threads: 1149MFlops
4 Threads: 1161MFlops
Having twins has dramatically reduced the time I have to nerd out.
Corrado
Minister of Gerbil Affairs
 
Posts: 2568
Joined: Sun Feb 17, 2002 7:00 pm
Location: Gilbertsville, PA

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 5:45 pm

Thanks Corrado!

I am uploading a newer version of the bandwidth benchmark. 2 changes:

1. I think this version should reduce variability a little bit. Lets see how that goes.
2. I am also now reporting average time of the kernels in addition to bandwidth achieved. This is standard practice for STREAM related benchmarks.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 5:54 pm

Also, FWIW, the ICS update is supposed to be released for my phone tomorrow. I'll update with those to see how much difference the OS really makes.
Having twins has dramatically reduced the time I have to nerd out.
Corrado
Minister of Gerbil Affairs
 
Posts: 2568
Joined: Sun Feb 17, 2002 7:00 pm
Location: Gilbertsville, PA

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 5:55 pm

Corrado wrote:Also, FWIW, the ICS update is supposed to be released for my phone tomorrow. I'll update with those to see how much difference the OS really makes.


Great! Yes that will be very interesting to hear! And thanks a lot for using my benchmarks :D
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 6:45 pm

Btw, to give you an idea of how the situation compares to desktops, I compiled a version of my benchmark as a command line app in Linux (same kernel code in C, just removed Android UI bits and replaced with C command line). I got about 9 GB/s peak on my Phenom II X4 desktop system which theoretically can provide 17 GB/s.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 6:48 pm

Well the theoretical peak for the Scorpion is 2.7GB/s for a single channel so we're not getting even close to peak =)

But we seem to be getting similar utilization rates.
ChronoReverse
Gerbil Elite
 
Posts: 738
Joined: Wed Dec 12, 2007 4:20 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 7:13 pm

ChronoReverse wrote:Well the theoretical peak for the Scorpion is 2.7GB/s for a single channel so we're not getting even close to peak =)
But we seem to be getting similar utilization rates.


Yes. You will not reach theoretical, even on desktops or servers. From the STREAM website: "The STREAM benchmark measures "real world" bandwidth sustainable from ordinary user programs -- not the theoretical "peak bandwidth" provided by most vendors."

STREAM is popular precisely because it sees through the vendor BS :)

Now, about the utilization we are seeing, I think we *might* be able to get better utilization if i tested larger problem sizes. Unfortunately, I cannot increase the problem size too much on a smartphone due to RAM restrictions, particularly if I want to be compatible with the many models out there. Hmm, maybe I will provide problem size as a setting to the user (in the future), so that at least the users with enough RAM can test larger problem sizes.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 9:05 pm

My Nexus 7 is similar to what you reported -

Copy 1213
Scale 1233
Add 1023
Triad 812
I do not understand what I do. For what I want to do, I do not do. But what I hate, I do.
derFunkenstein
Gerbil God
Gold subscriber
 
 
Posts: 21551
Joined: Fri Feb 21, 2003 9:13 pm
Location: WHAT?

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 9:11 pm

derFunkenstein wrote:My Nexus 7 is similar to what you reported -

Copy 1213
Scale 1233
Add 1023
Triad 812


That is little odd. Another user reported about 2.2 GB/s on the Nexus 7. Anyway, I have published a new version (v1.2) which should be relatively more stable.
Still waiting for it to appear in the market. Apparently it takes Google 3-4 hours to update app listings. I recommend using the Auto-mode.

Thanks for testing it, much appreciated :D
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 9:48 pm

OK I totally must have been looking at something else when I said it was similar, because I do see 2.3GB in your post. :lol:

This is with the latest official build. Is the other using a custom ROM? I was also using AUto threads. 4 threads is not significantly different, and actually a little lower.
I do not understand what I do. For what I want to do, I do not do. But what I hate, I do.
derFunkenstein
Gerbil God
Gold subscriber
 
 
Posts: 21551
Joined: Fri Feb 21, 2003 9:13 pm
Location: WHAT?

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 10:13 pm

derFunkenstein wrote:OK I totally must have been looking at something else when I said it was similar, because I do see 2.3GB in your post. :lol:

This is with the latest official build. Is the other using a custom ROM? I was also using AUto threads. 4 threads is not significantly different, and actually a little lower.


Actually I just checked it again, apparently the person just said "Tegra 3" and did not specify his device. I had somehow assumed it to be a Nexus 7.
Possibly some other device.
But either way, wait till tomorow morning perhaps.
I expect the v1.2 to go live in the Play store (I have hit the publish button a while back) in a few hours.
The new version should be relatively more stable. You can retest with it.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 11:29 pm

HP TouchPad (Snapdragon S3 1.2GHz) running CM9:

Auto: 1539/1365/1538/1553
Auto: 1554/1392/1573/1546
Auto: 1526/1356/1559/1513
Auto: 1521/1372/1561/1567

1: 937/804/928/918
1: 940/788/926/931
1: 943/781/914/902
1: 966/804/923/914

2: 1416/1268/1458/1434
2: 1445/1304/1512/1501
2: 1435/1273/1425/1448
2: 1445/1287/1518/1460

4: 1448/1293/1505/1449
4: 1461/1291/1519/1459
4: 1492/1344/1534/1499
4: 1484/1328/1510/1509

5: 1370/1171/1409/1442
5: 1344/1183/1408/1395
5: 1363/1197/1432/1411
5: 1348/1171/1398/1432

8: 1462/1281/1517/1473
8: 1398/1214/1479/1451
8: 1393/1257/1475/1458
8: 1412/1278/1490/1391
NeelyCam
Gerbil First Class
Gold subscriber
 
 
Posts: 135
Joined: Fri Oct 16, 2009 12:25 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 11:34 pm

Thanks Neely. Essentially identical results to the 1.5GHz Snapdragon S3 then. Makes sense as the work is essentially all memory bound so CPU frequency shouldn't really affect it.

Hmm you did not hit the number found by auto when you ran the numbers manually. Why? Who knows :-?

Waiting for someone to post results from an Exynos or OMAP. Or a Snapdragon S4.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 11:48 pm

Testing more. Still there is about 7-8% spread between runs. It is looking like that is unavoidable. :roll:
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 11:51 pm

RGBenchMM

HP TouchPad (Snapdragon S3 1.2GHz) running CM9:
1: 490MFlops
2: 974MFlops
4: 963MFlops

Atrix 4G (Tegra2 1.0GHz) running Gingerbread
1: 299MFlops
2: 786MFlops
4: 681MFlops
NeelyCam
Gerbil First Class
Gold subscriber
 
 
Posts: 135
Joined: Fri Oct 16, 2009 12:25 pm

Re: Memory bandwidth benchmark for Android

Postposted on Wed Sep 26, 2012 11:53 pm

codedivine wrote:Hmm you did not hit the number found by auto when you ran the numbers manually. Why? Who knows :-?


Yeah, I don't know... it was consistent, and the spread is fairly small
NeelyCam
Gerbil First Class
Gold subscriber
 
 
Posts: 135
Joined: Fri Oct 16, 2009 12:25 pm

Re: Memory bandwidth benchmark for Android

Postposted on Thu Sep 27, 2012 8:46 am

I'll get OMAP results up tomorrow or Saturday. Don't have the time to run multiples of the test right now, sorry.
Lenovo W520
IBM dx340
Nokia Lumia 928
Sony a7 with far too many lenses to list or even count
lonleyppl
Gerbil XP
 
Posts: 362
Joined: Wed Jan 26, 2011 2:59 pm

Re: Memory bandwidth benchmark for Android

Postposted on Thu Sep 27, 2012 10:38 am

Using 1.2.3 of RGBenchBW, 1.3.1 of RgbenchMM.

Nexus 7, running Cyanogenmod 10 nightly 09-23-2012, all apps closed from task manager:
RgBW:
Threads - Copy - Scale - Add - Triad
Auto - 1249.0 - 1243.9 - 1033.2 - 828.3
1 - 617.7 - 535.1 - 603.6 - 588.0
2 - 977.3 - 925.1 - 944.2 - 777.1
4 - 1084.4 - 1057.6 - 951.3 - 790.2
5 - 937.3 - 896.7 - 874.2 - 731.5
8 - 1173.4 - 1159.3 - 998.8 - 788.8

Looking over these numbers, I think Android itself is doing too much processing under the hood, and it's not letting you assign task/thread priority. That would be very important for a benchmark. SetCPU does not appear to be working correctly on Nexus 7.

SGH-T989, T-Mo Galaxy S2, running Cyanogenmod 9.1.0, all apps closed from task manager:
RgBW:
Threads - Copy - Scale - Add - Triad
Auto - 1524.1 - 1428.6 - 1598.1 - 1541.8
1 - 1027.3 - 820.8 - 985.0 - 950.5
2 - 1531.4 - 1437.4 - 1595.7 - 1591.6
4 - 1474.8 - 1406.1 - 1584.7 - 1564.4
5 - 1369.7 - 1241.9 - 1425.4 - 1379.0
8 - 1407.7 - 1316.9 - 1499.3 - 1499.0

Something odd I'm noticing: peak MB/s never exceeds the device clockspeed. Maybe there's some clock-limiting going on at around 1MB/MHz? That would explain the similarly equipped phone with the faster 2core CPU outscoring the tablet with quad.
Siglessness is boring.
Image - M4800-Eight1
Image - Vargr-Z97
Forge
Lord High Gerbil
Silver subscriber
 
 
Posts: 8061
Joined: Wed Dec 26, 2001 7:00 pm
Location: SouthEast PA

Next

Return to Mobile Tech

Who is online

Users browsing this forum: No registered users and 0 guests