只要安裝Raspbian並執行各種應用軟體,就能大概得知Pi 2的硬體效能提昇了多少,CPU從ARMv6到ARMv7、從單核心到四核心,記憶體從512MB到1GB,不消多說也知道變快了,官方號稱執行速度會有六倍之快,不過實際情況還是要看你的程式性質,有無使用多核心、有無運用GPU、等等。
以前若是較大型的應用軟體,例如圖片編輯軟體GIMP、網頁瀏覽器、Scribus、辦公室軟體,光開啟就花去不少時間,使用時反應也非常遲鈍,根本不堪使用,不過現在情況已大為改善,的確可作為個人電腦來用,若再考慮價錢性能比,更是物超所值。
rpi每次都能引爆話題,這次Pi 2也不例外,許多人剛拿到熱騰騰的Pi 2,就迫不及待地進行效能檢測,譬如Ladyada在凌晨三點就以PCSX模擬PlayStation玩遊戲了。
pi@raspberrypi ~ $ cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1000 MHz
available frequency steps: 600 MHz, 1000 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1000 MHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 600 MHz.
cpufreq stats: 600 MHz:49.87%, 1000 MHz:50.13% (3)
analyzing CPU 1:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1000 MHz
available frequency steps: 600 MHz, 1000 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1000 MHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 600 MHz.
cpufreq stats: 600 MHz:49.87%, 1000 MHz:50.13% (3)
analyzing CPU 2:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1000 MHz
available frequency steps: 600 MHz, 1000 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1000 MHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 600 MHz.
cpufreq stats: 600 MHz:49.87%, 1000 MHz:50.13% (3)
analyzing CPU 3:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1000 MHz
available frequency steps: 600 MHz, 1000 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1000 MHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 600 MHz.
cpufreq stats: 600 MHz:49.87%, 1000 MHz:50.13% (3)
讓我試試nbench,結果如下。
BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
: : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 495.76 : 12.71 : 4.18
STRING SORT : 41.141 : 18.38 : 2.85
BITFIELD : 1.4135e+08 : 24.25 : 5.06
FP EMULATION : 77.569 : 37.22 : 8.59
FOURIER : 5241 : 5.96 : 3.35
ASSIGNMENT : 7.5314 : 28.66 : 7.43
IDEA : 1443.8 : 22.08 : 6.56
HUFFMAN : 725.78 : 20.13 : 6.43
NEURAL NET : 6.8871 : 11.06 : 4.65
LU DECOMPOSITION : 250.88 : 13.00 : 9.39
==============ORIGINAL BYTEMARK RESULTS==============
INTEGER INDEX : 22.234
FLOATING-POINT INDEX: 9.499
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==================LINUX DATA BELOW===================
CPU : 4 CPU ARMv7 Processor rev 5 (v7l)
L2 Cache :
OS : Linux 3.18.7-v7+
C compiler : gcc version 4.6.3 (Debian 4.6.3-14+rpi1)
libc : libc-2.13.so
MEMORY INDEX : 4.749
INTEGER INDEX : 6.235
FLOATING-POINT INDEX: 5.268
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
然後跟舊板子
TEST : Iterations/sec. : Old Index : New Index
: : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 200.4 : 5.14 : 1.69
STRING SORT : 31.472 : 14.06 : 2.18
BITFIELD : 8.8785e+07 : 15.23 : 3.18
FP EMULATION : 45.509 : 21.84 : 5.04
FOURIER : 2056.4 : 2.34 : 1.31
ASSIGNMENT : 2.3939 : 9.11 : 2.36
IDEA : 669.29 : 10.24 : 3.04
HUFFMAN : 414.53 : 11.49 : 3.67
NEURAL NET : 3.1213 : 5.01 : 2.11
LU DECOMPOSITION : 72.68 : 3.77 : 2.72
==============ORIGINAL BYTEMARK RESULTS==============
INTEGER INDEX : 11.448
FLOATING-POINT INDEX: 3.534
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==================LINUX DATA BELOW===================
CPU :
L2 Cache :
OS : Linux 3.1.9+
C compiler : gcc-4.7.real
libc : libc-2.13.so
MEMORY INDEX : 2.539
INTEGER INDEX : 3.121
FLOATING-POINT INDEX: 1.960可以看見有很明顯的提昇,當然啦,相關因素很多,包括建置編譯nbench的編譯器選項,rpi板子超頻時脈,有無執行其他背景程式,等等,另外也跟測試項目有關,
另外可使用sysbench來測試有無多執行緒的效能,底下是1個執行緒的結果。
pi@raspberrypi ~ $ sysbench --test=threads run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing thread subsystem performance test
Thread yields per test: 1000 Locks used: 8
Threads started!
Done.
Test execution summary:
total time: 18.5008s
total number of events: 10000
total time taken by event execution: 18.4875
per-request statistics:
min: 1.80ms
avg: 1.85ms
max: 9.61ms
approx. 95 percentile: 1.89ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 18.4875/0.00
底下是4個執行緒的結果,
pi@raspberrypi ~ $ sysbench --num-threads=4 --test=threads run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 4
Doing thread subsystem performance test
Thread yields per test: 1000 Locks used: 8
Threads started!
Done.
Test execution summary:
total time: 4.8727s
total number of events: 10000
total time taken by event execution: 19.4634
per-request statistics:
min: 1.88ms
avg: 1.95ms
max: 10.30ms
approx. 95 percentile: 1.96ms
Threads fairness:
events (avg/stddev): 2500.0000/7.68
execution time (avg/stddev): 4.8659/0.00
非常明顯,有了四核心之後,多執行緒的程式當然就跑得快。其他還有測試JavaScript的評分、測試GPU的效能表現、等等,有興趣者可自行嘗試。
最後提醒一句,跑得快也就代表比較耗電,記得提供穩定的電源與線材。
參考資料:
- Benchmarks & Performance Improvements | Introducing the Raspberry Pi 2 - Model B | Adafruit Learning System,各種測試數據。
- Raspberry Pi2 – Power and Performance Measurement » RasPi.TV,效能與功耗。
- Performance | Embedded Linux Board Comparison | Adafruit Learning System,比較各塊板子,Arduino Yun、Beaglebone Black、Intel Galileo、Raspberry Pi。
- Raspberry Pi • View topic - An nbench challenge,使用nbench測試。
- Raspberry Pi Overclocking Benchmarks - chimerasaurus,舊板子不同超頻時脈的nbench測速結果。
- Raspberry Pi Version 2 performance | Linux Voice,測試報告。
- Raspberry Pi 2 review | TrustedReviews,測試報告。
- Raspberry Pi 2 vs. B+ & Beaglebone | Initial State,比較Pi 2、B+、BeagleBone。
- Raspberry Pi 2 Overclocking options - Thomas MarcussenThomas Marcussen,超頻選項。
多謝分享!
ReplyDelete葉老師, 請問用Raspberry Pi 2能否用GPIO發送100MHz的固定頻率? 感恩
ReplyDelete可以,但我沒做過。
Delete請拜孤狗大神。
http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/
https://www.raspberrypi.org/forums/viewtopic.php?t=37770
http://hackaday.com/2012/12/10/transmit-fm-using-raspberry-pi-and-no-additional-hardware/
好像「軟體FM」會需要那麼高的頻率。
葉老師, 我有試了以下方法:http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter
Delete用一個空的檔案取代聲音檔就可以一直發出100NHz clock,
但是我發現他是發正弦波而不是方波,而且電壓似乎不能調整
他發的是FM,不是方波吧。
Delete> 電壓似乎不能調整
調整?不懂。
我看了他大概的描述.發現他是用DMA的時脈從GPIO吐出來大約振福1.5V(我用Scope量的),用sin的方式產生FM載波.但是最近工作上需要一個400mV 100MHz的方波.本來是希望可以利用這個裝置達到我要的目的.但是我不知道要如何修改...
Delete我也不知道,無法回答。
Delete