2019年9月22日 星期日

DMIPS

直接看處理器每秒能執行多少百萬個指令 (MIPS, Million Instructions per second) 可衡量處理器的效能,但不同處理器的每個指令,能做多少「工作」並不同。

例如一個處理器內建有除法指令,所以一個指令就能做完一個除法。另一個處理器沒有除法指令,就需要用好幾個指令才能完成一個除法。所以以單位時間執行多少指令評估效能並不公平,效能應該要以單位時間執行多少「工作」來評估較公平。但如何定義標準的「工作」呢?

1984 年 Reinhold P. Weicker 從用 FORTRAN、PL/1、SAL、ALGOL 68、和 Pascal 寫的各種程式收集程式常見的構造特徵 (呼叫、間接指標、數值指定等),統計他們的處理器使用情況,在 Ada 上寫成精心設計的簡單程式 Dhrystone 來模擬,作為「工作」的效能基準。Rick Richardson 轉成 Unix C 版本 (Dhrystone 版本 1.1) 促成普遍使用。Dhrystone 基準不含浮點運算,逐漸成為代表通用 (整數) 處理器的性能指標。Dhrystone score 計算程式每秒跑幾次,除以 1757 是常見的 DMIPS (Dhrystone MIPS) 表示方式。1757 是 VAX 11/780 (名義上 1 MIPS) 的 Dhrystone score。DMIPS 除以 CPU frequency 是 DMIPS/MHz,用來比較處理器跑在不同速率。

Dhrystone 是當時另一個含有浮點運算的效能基準 Whetstone 的雙關語 (pun)。

問題:
  • 1988 年修改成版本 2.1 ...
  • 程式小和資料少。程式小可整個放進現代處理器的指令快取,而沒測到指令 fetch。
  • slight over-representation of string operations
  • 不代表實際程式
  • 可對 Dhrystone 編譯最佳化造成失真。
其它效能基準
  • EEMBC、HINT、Stream、Bytemark、Cachebench (for the memory subsystem)、TTCP (for TCP/IP)。
參考
  1. https://en.wikipedia.org/wiki/Dhrystone
  2. http://www.roylongbottom.org.uk/dhrystone%20results.htm
  3. https://www.nxp.com/docs/en/application-note/AN2354.pdf
  4. MFLOPS (Million Floating-point operations per second):每秒執行多少百萬浮點運算。

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...