So one way to look at Krait - it's a really fast A9 with VFP4 and Neon, and leave it at that..
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.49[secs]
Time to run computation of pi (2400 digits, 10 times): 2.88[secs]
Time to run computation of e (9009 digits): 2.41[secs]
Time to run float bench: 0.01[secs]
Total time: 5.8s
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.43[secs]
Time to run computation of pi (2400 digits, 10 times): 1.50[secs]
Time to run computation of e (9009 digits): 1.43[secs]
Time to run float bench: 0.01[secs]
Total time: 3.4s
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.50[secs]
Time to run computation of pi (2400 digits, 10 times): 1.81[secs]
Time to run computation of e (9009 digits): 1.69[secs]
Time to run float bench: 0.01[secs]
Total time: 4.0s
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.44[secs]
Time to run computation of pi (2400 digits, 10 times): 1.51[secs]
Time to run computation of e (9009 digits): 1.44[secs]
Time to run float bench: 0.01[secs]
Total time: 3.4s
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.52[secs]
Time to run computation of pi (2400 digits, 10 times): 3.01[secs]
Time to run computation of e (9009 digits): 2.52[secs]
Time to run float bench: 0.01[secs]
Total time: 6.1s
It is why I said that CPU is not used in full power with stock FW.
./bootstrap
./configure
make
sudo make install
sudo ldconfig
gcc -Wall -O2 -pthread -lm -lc -lliquid -o benchmark_threaded benchmark_threaded.c
# auto-generated file
# ./benchmark_threaded
# threads buffer len filter len runtime [s] samples samples/s
1 256 57 3.0000 9800704 3.2669e+06
2 256 57 3.0000 19592960 6.5310e+06
3 256 57 3.0000 29215488 9.7385e+06
4 256 57 3.0000 39013632 1.3005e+07
5 256 57 3.0000 39353600 1.3118e+07
6 256 57 3.0000 39301888 1.3101e+07
7 256 57 3.0000 39640064 1.3213e+07
8 256 57 3.0000 39363584 1.3121e+07
9 256 57 3.0000 39424768 1.3142e+07
10 256 57 3.0000 39308032 1.3103e+07
11 256 57 3.0000 39888384 1.3296e+07
12 256 57 3.0000 39669760 1.3223e+07
13 256 57 3.0000 39742208 1.3247e+07
14 256 57 3.0000 39844352 1.3281e+07
15 256 57 3.0000 39696384 1.3232e+07
16 256 57 3.0000 40227584 1.3409e+07
Small add-on:
Results of CPUBENCH compiled with stock options, executed on my FW with "Cortex-A9" options:
-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -O0
pi@raspy3:~ $ gcc -Wall -O -pthread -lm -lc -o cpubench cpubench.c
pi@raspy3:~ $ ./cpubench
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 1us
Time to run memory bench: 0.41[secs]
Time to run computation of pi (2400 digits, 10 times): 0.02[secs]
Time to run computation of e (9009 digits): 0.03[secs]
Time to run float bench: 0.00[secs]
Total time: 0.5s
$ gcc -Wall -o cpubench cpubench.c
pi@raspy3:~ $ ./cpubench
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 1us
Time to run memory bench: 0.92[secs]
Time to run computation of pi (2400 digits, 10 times): 3.56[secs]
Time to run computation of e (9009 digits): 3.83[secs]
Time to run float bench: 0.01[secs]
Total time: 8.3s
You do know that you can do a search only in a specific thread using the search box that's in the upper right had corner?Plus, people rarely go through a 20+ pages thread before posting, so you often get the same question asked over and over again within the thread. With shorter threads, people are more likely to take the time to read them first.
You do know that you can do a search only in a specific thread using the search box that's in the upper right had corner?
You might consider starting separate threads for each firmware revision, at least major ones. That way bug reports and discussion specific to each release can be more easily found.
The other option - migrate to musl
You do know that you can do a search only in a specific thread using the search box that's in the upper right had corner?
Not an option when dealing with a bunch of closed source components that are linked against uclibc.
Worthwhile to explore - many are statically built so they can be portable across differnt SoC's and not dependent on the system-wide clib...
admin@Stargate88:/tmp/home/root# ldd /usr/sbin/acsd
libnvram.so => /usr/lib/libnvram.so (0x2abfb000)
libshared.so => /usr/lib/libshared.so (0x2ac40000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2abc9000)
libc.so.0 => /lib/libc.so.0 (0x2ac93000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaf8000)
admin@Stargate88:/tmp/home/root#
Are you going to make a firmware for the r7500v2?
Would be fun to see performance on something like Liquid DSP
# auto-generated file
# ./benchmark_threaded-a9
# threads buffer len filter len runtime [s] samples samples/s
1 256 57 3.0000 23316224 7.7721e+06
2 256 57 3.0000 45248256 1.5083e+07
3 256 57 3.0000 47870464 1.5957e+07
4 256 57 3.0000 47976192 1.5992e+07
5 256 57 3.0000 48998656 1.6333e+07
6 256 57 3.0000 49361152 1.6454e+07
7 256 57 3.0000 49408768 1.6470e+07
8 256 57 3.0000 48601344 1.6200e+07
9 256 57 3.0000 50805760 1.6935e+07
10 256 57 3.0000 50150656 1.6717e+07
11 256 57 3.0000 50438144 1.6813e+07
12 256 57 3.0000 50007040 1.6669e+07
13 256 57 3.0000 50723328 1.6908e+07
14 256 57 3.0000 50170624 1.6724e+07
15 256 57 3.0000 50676224 1.6892e+07
16 256 57 3.0000 52382208 1.7461e+07
# auto-generated file
# ./benchmark_threaded-a15
# threads buffer len filter len runtime [s] samples samples/s
1 256 57 3.0000 25693184 8.5644e+06
2 256 57 3.0000 45039616 1.5013e+07
3 256 57 3.0000 50476800 1.6826e+07
4 256 57 3.0000 50361856 1.6787e+07
5 256 57 3.0000 50704384 1.6901e+07
6 256 57 3.0000 50806016 1.6935e+07
7 256 57 3.0000 50941184 1.6980e+07
8 256 57 3.0000 50291968 1.6764e+07
9 256 57 3.0000 50178048 1.6726e+07
10 256 57 3.0000 50896640 1.6966e+07
11 256 57 3.0000 52323072 1.7441e+07
12 256 57 3.0000 51564032 1.7188e+07
13 256 57 3.0000 52723712 1.7575e+07
14 256 57 3.0000 52975872 1.7659e+07
15 256 57 3.0000 53508608 1.7836e+07
16 256 57 3.0000 54482688 1.8161e+07
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.48[secs]
Time to run computation of pi (2400 digits, 10 times): 3.18[secs]
Time to run computation of e (9009 digits): 2.70[secs]
Time to run float bench: 0.01[secs]
Total time: 6.4s
This is CPU and memory benchmark for OpenWRT v0.6. This will then take some time... (typically 30-60 seconds on a 200MHz computer)
Overhead for getting time: 0us
Time to run memory bench: 0.44[secs]
Time to run computation of pi (2400 digits, 10 times): 1.80[secs]
Time to run computation of e (9009 digits): 1.73[secs]
Time to run float bench: 0.01[secs]
Total time: 4.0s
Welcome To SNBForums
SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.
If you'd like to post a question, simply register and have at it!
While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!