Page 2 of 2

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 11:12 am
by ChronoReverse
With the newest Play version:

Galaxy Note Snapdragon S3 @ 1.5GHz on Android 4.1 (JB, CM10)
RgBandwidth: 1356/1310/1504/1496
RgbenchMM: 1167

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 11:31 am
by codedivine
ChronoReverse wrote:
With the newest Play version:

Galaxy Note Snapdragon S3 @ 1.5GHz on Android 4.1 (JB, CM10)
RgBandwidth: 1356/1310/1504/1496
RgbenchMM: 1167


Thanks. I am not planning to update those tests for a little while so you can consider those final results. For the memory bandwidth, I get a spread of about 7-8% in different runs and have not been able to eliminate that.

Yours does have a slightly lower result for memory bandwidth than mine (about 1497/1407/1606/1558) indicating possibly a different memory module.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 11:49 am
by codedivine
Forge wrote:
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.


Thanks. Well the memory bandwidth test should not be tied to the clockspeed of the CPU or number of cores. It is primarily testing the memory controller + DRAM. For example, see Neely's results on the HP Touch (S3 @ 1.2 GHz) match mine (S3 @ 1.5GHz).

Further, some unconfirmed numbers reported to me on twitter:
1. Exynos 4 Quad (4412, 1.4 GHz) : 2.3 GB/s
2. Qualcomm Snapdragon S4 dual-core (MSM8960, 1.5GHz) : 2.3 GB/s
3. Exynos 4 Dual (4410, Galaxy S2): 1.4 GB/s.

If those are accurate, then you can see that the test is not limited to 1MB/1 MHz :) . The newer processors (Exynos 4 Quad and Snapdragon S4) perform much better, which is expected.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 12:17 pm
by ChronoReverse
Hmm, for me, underclocking does seem to reduce the bandwidth score. At 1GHz, I'm scoring in the 900's instead of the 1400's for 1.5GHz.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 12:24 pm
by codedivine
ChronoReverse wrote:
Hmm, for me, underclocking does seem to reduce the bandwidth score. At 1GHz, I'm scoring in the 900's instead of the 1400's for 1.5GHz.


Looks like I was wrong about then :)

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 4:26 pm
by codedivine
I have been tipped that on ARM processors, much better memory performance can be achieved by using NEON instructions. I will try that.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 4:57 pm
by Forge
You may want to check/branch to a NEON and non-NEON path, as I understand NEON isn't ubiquitous yet.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 5:02 pm
by ChronoReverse
Grr, if Nvidia hadn't skimped on the Tegra2 and left out NEON, it would be close enough to ubiquitous for any platform that mattered.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 9:43 pm
by codedivine
Update: Version updated to v2.1

Added a simple memcpy test and I get about 1.8+ GB/s on my phone. App UI has changed slightly. There is a new button where you choose between "Simple" and "Misc". Simple gives you memcpy and "Misc" gives you the STREAM results.

Please try this and post your results. Will be interesting to see if the Tegra 3 results improved.

This is not yet using NEON but is simply testing the performance of the memcpy system call which should have been optimized by your vendor.

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 10:53 pm
by ChronoReverse
Simple: 1524MB/s
Misc: 1330/1267/1426/1398

Interesting how much my S3 lags your S3

Re: Memory bandwidth benchmark for Android

Posted: Thu Sep 27, 2012 11:57 pm
by codedivine
User with a Galaxy S (Samsung Vibrant) reported 1.27 GB/s in simple mode.

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 3:18 am
by Jigar
codedivine wrote:
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?


Sorry for the late response, but i felt the result are too high, although i can be wrong. :)

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 3:27 am
by killadark
Galaxy s3 international
Single thread
simple 1743
Misc
Copy 1987.9mb/s
Scale 1687.8mb/s
Add 1636.6mb/s
Triad 1565.5mb/s

2 threads

simple 1782
Misc
Copy 2015.4mb/s
Scale 1964.7mb/s
Add 1508.0mb/s
Triad 1366.6mb/s

8 thread

simple 1786
Misc
Copy 1686.1mb/s
Scale 1691.1mb/s
Add 1797.4mb/s
Triad 1455.1mb/s

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 11:19 am
by codedivine
killadark wrote:
Galaxy s3 international
Single thread
simple 1743
Misc
Copy 1987.9mb/s
Scale 1687.8mb/s
Add 1636.6mb/s
Triad 1565.5mb/s

2 threads

simple 1782
Misc
Copy 2015.4mb/s
Scale 1964.7mb/s
Add 1508.0mb/s
Triad 1366.6mb/s

8 thread

simple 1786
Misc
Copy 1686.1mb/s
Scale 1691.1mb/s
Add 1797.4mb/s
Triad 1455.1mb/s


Thanks! Interesting that you get better performance on STREAM than on memcpy. And the results are a LOT lower than the peak bandwidth (6.4GB/s) quoted by Samsung for the Exynos 4412. Wondering if in the Exynos, CPU can only utilize 1 channel of memory and perhaps only the CPU+GPU can achieve the peak. The language Samsung uses in their whitepaper is "High bandwidth (6.4GB/s) for graphics intensive apps".
And down we go into the rabbit hole :D

EDIT: Either that, or my test is dumb :lol:

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 11:25 am
by codedivine
ChronoReverse wrote:
Simple: 1524MB/s
Misc: 1330/1267/1426/1398

Interesting how much my S3 lags your S3


I think it points to two different types of memory being used. Qualcomm does say it is either 333 MHz ISM or a 266 MHz LPDDR2. Likely my phone is using the first one, while yours is using the second.

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 11:27 am
by codedivine
Jigar wrote:
codedivine wrote:
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?


Sorry for the late response, but i felt the result are too high, although i can be wrong. :)


They are not. They are quite reasonable for the RAM bandwidth peaks quoted by vendors. If anything they are a bit low :)
Eg: On Tegra 2, Nvidia quotes a theoretical peak of 2.4GB/s of bandwidth.

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 1:00 pm
by codedivine
Well anyway gerbils. I think I am pausing development on the benchmarks now. Real life calls. :(

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 1:04 pm
by codedivine
Thanks everyone who has been testing and helping me. If I ever meet you in person, I will buy you a beer or coffee :D

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 2:48 pm
by codedivine
Galaxy S2 with Exynos 4410 does about 1.45GB/s peak on the memcpy (i.e. "simple") test.

Re: Memory bandwidth benchmark for Android

Posted: Fri Sep 28, 2012 3:05 pm
by codedivine
A user with the Qualcomm S4 dual-core using HTC EVO 4G LTE reported almost 5GB/s :o

Re: Memory bandwidth benchmark for Android

Posted: Sun Sep 30, 2012 11:46 pm
by lonleyppl
1 thread: 830.3 MB/s on Simple
2 threads: 882.2 MB/s
4 threads: 855.9 MB/s
Auto: 891.b MB/s


1 thread: 549.1/548.5/519.0/555.9 MB/s on Misc.
2 threads: 764.9/765.4/729.2/939.5 MB/s
4 threads: 639.4/642.5/648.6/676.0 MB/s
Auto: 762.3/745.4/707.6/712.3 MB/s

On a Droid 3 with OMAP 4430.

Re: Memory bandwidth benchmark for Android

Posted: Tue Oct 02, 2012 6:56 am
by codedivine
lonleyppl wrote:
1 thread: 830.3 MB/s on Simple
2 threads: 882.2 MB/s
4 threads: 855.9 MB/s
Auto: 891.b MB/s


1 thread: 549.1/548.5/519.0/555.9 MB/s on Misc.
2 threads: 764.9/765.4/729.2/939.5 MB/s
4 threads: 639.4/642.5/648.6/676.0 MB/s
Auto: 762.3/745.4/707.6/712.3 MB/s

On a Droid 3 with OMAP 4430.


Thanks! Quite interesting that these are about the same class as a Tegra 2. Would have thought that the dual-channel controller would give it an advantage.
Wondering how the OMAP 4470 performs given that (according to TI and Amazon marketing), it has supposedly much more bandwidth than a Tegra 3 at least.