## 測試電腦 power 測試電腦的性能(Performance)和 功耗 (power)都是評估電腦整體效率的重要方面。 這兩個方面在不同的應用場景和使用需求中都具有重要意義 在計算機硬體方面,"power" 通常指的是計算機系統的功耗,即電腦硬體運行時所消耗的電力。 ## power 計算 在CMOS IC 技術中 power 的計算可以通過以下公式表示: **power = capacitive load(電容負載) × voltage<sup>2</sup>(電壓) × frequency(頻率)** 往往是 power 越少,節省能源的效率就越好 設計現代電子設備時,節能的策略包括儘量降低電壓、採用低 power 元件、以及儘可能減少不必要的運算。 ## 降低 power 假設一個新的 CPU 具有: * 舊 CPU 電容負載的85% * 電壓降低15%以及頻率降低15% P<sub>new</sub> / P<sub>old</sub> = C<sub>old</sub> × 0.85 × (V<sub>old</sub>×0.85)<sup>2</sup> × F<sub>old</sub> ×0.85 / (C<sub>old</sub> ×V<sub>old</sub><sup>2</sup> ×F<sub>old</sub>) = 0.85<sup>4</sup> = 0.52 * 新CPU的 power 降低到舊CPU的 52%。 然而,當面臨「power wall」時: * 無法進一步降低電壓 * 降低電壓是減小功耗的有效手段,但達到一定程度後,進一步降低電壓會導致電路無法正確操作,從而影響電路的穩定性和性能。 * 無法再移除更多的熱量 * 隨著 power 的增加,設備產生的熱量也相應增加。到達極限後,設備無法再有效地移除更多的熱量,導致設備過熱,影響性能並縮短硬體的壽命。 在這種情況下,還有其他方法可以提高性能嗎? ### Multiprocessors * Multicore microprocessors(多核心微處理器): * Multicore microprocessors 是在同一芯片上集成了多個 processor core 的設計。這樣的架構允許同一 processor 同時處理多個任務,提高整體性能。 * 需要顯式的 parallel programming * 程式員需要明確指定哪些任務可以同時執行。 * 與 ILP 比較: * instruction level parallelism(簡稱 ILP)是指 Hardware 同時執行多條指令,而對程序員隱藏。 * ILP 中, Hardware 可以同時執行多條指令,而無需程序員明確指定。 * 這是隱藏在 Hardware 底層的優化。 * 相對而言,顯式的 parallel programming 是一項挑戰。 * 難以實現的原因: * 程式員需要設計程式碼以充分利用 Multicore 的性能 * 確保每個核心處理的工作量相當,以充分發揮系統的整體性能。 * 不同核心之間的communication 和 synchronization 可能成為性能瓶頸,需要進行優化。 ## What Programs for Comparison? * What’s wrong with this program as a workload? ``` integer A[][], B[][], C[][]; for (I=0; I<100; I++) for (J=0; J<100; J++) for (K=0; K<100; K++) C[I][J] = C[I][J] + A[I][K]*B[K][J]; ``` * 測量了什麼? * 測量了處理器在進行矩陣相乘時的性能 * 未測量了什麼? * 未測量其他應用領域的性能 * 這對什麼有益? * 這樣的測試可以提供對 Hardware 性能的初步了解 * 理想情況下,在購買之前或甚至在建造機器之前運行 "typical" 程序,例如: * 工程師使用 compiler, spreadsheet * 作家使用文字處理器,繪圖程序,壓縮軟體 ## Benchmarks * 顯然, processor 的表現速度取決於用於測試的代碼。 * 這種方法通過運行一系列typical的benchmark programs,稱為Benchmarks * 需要行業標準,以便公正比較不同 processor * 存在一些公司專門創建這些“typical” 程式碼 benchmarks,用於評估系統 * 這樣不同的處理器可以在相同的條件下進行測試。這就是 Benchmarks 的目的。 **通過運行這些測試,可以評估CPU在處理特定任務上的效能。** ## Amdahl's Law * 大致上分為兩步作法 * 改進的評估方法: * 用有一種方法來全面評估這種改進的效果。 * 這可能包括引入新技術、優化代碼、提高並行處理性能等。 * 力氣花在刀口上,從最肥的羊開刀: * 將改進的工作集中在對整體目標影響最大的部分,即將力氣花在刀口上。 * 舉例來說: * 從台北到高雄,原先計畫 * 做高雄捷運到高鐵站,花0.5小時 * 從左營高鐵站坐到台北,花1.5小時 * 在從台北高鐵坐捷運到目的地,花0.5小時 1. 改進的評估方法 * 假設坐上每個交通工具的難度都一樣,做高鐵 **1.5小時** 改為坐飛機 **0.5小時** 2. 力氣花在刀口上,從最肥的羊開刀 * 將時間花費最多的過程做改進,做高鐵改為坐飛機 定律公式: T<sub>improved</sub> = T<sub>affected</sub> / improvement factor +T<sub>unaffected</sub> * T<sub>improved</sub>:是整體任務執行時間在改進後的估算值。 * T<sub>affected</sub>:是受到改進的部分所需的執行時間。 * "improvement factor":是改進的倍數,表示改進的程度。 * T<sub>unaffected</sub>:是未受到改進的部分所需的執行時間。 帶入公式計算上述例子: * improvement factor:1.5小時 / 0.5小時 = 3 * T<sub>affected</sub> :1.5小時 * T<sub>unaffected</sub>:0.5小時 + 0.5小時 = 1.0小時 * T<sub>improved</sub>:1.5 / 3 + 1.0 = 1.5 小時 而原本的總時長為1.5 + 0.5 + 0.5 = 2.5小時 改進後的時間比原本的時間快了2.5 / 1.5 = 5 / 3 ## MIPS * MIPS表示每秒能夠執行的指令數量,以百萬條指令為單位。 * 並不能作為全面的評估標準,原因: * 忽略計算機之間 ISA 的差異 * 忽略指令的複雜性 **因此,MIPS僅作為一種簡單的性能指標,並不是全面的評估標準。**
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up