以防有人搞不清楚:這是微基準測試的一個極小樣本。當對諸如此類性能的非常簡單的任務進行基準測試時,架構之間的差異往往很大。
例如,指令在執行時被分配給少數端口之一,某些指令只能分配給某些端口,具體哪些指令分配哪些端口依架構而不同。如果內部循環僅使用幾個不同的指令,那麼一種架構可能會很不幸,因為大多數指令都需要相同的端口,因此總體上可以執行較少的指令。
對於真正的基準測試,請使用許多不同的複雜工作。這並不完美,但這是我們比較不同處理器的最佳方法。
確實。早在1999年,在測量ROR / ROL指令性能的微基準測試中,AMD K7的速度是Intel 的整整三倍,因為這些循環指令的每時鐘吞吐量正好是Intel的三倍。顯然,這並不意味著AMD比英特爾快3倍。
像博客文章作者一樣,隨機選擇1或2個微基準測試對於對所有實際工作負載的整體性能進行分類沒有用。如果他選擇了其他測試代碼,那麼他們顯示AMD的速度可能是英特爾的兩倍。
Jamesyang1997 wrote:
要教粉粉們什麼是正常的軟體?
當然是除了SYSmark以外的其他基準測試程式都不夠好。
https://www.mobile01.com/topicdetail.php?f=296&t=5900927&p=2&p=2#74697377


小笨賢 wrote:
https://lemire...(恕刪)
=====================
我在很短的時間內只能使用最新的AMD處理器(Zen 2),但是在這短時間內,我通常發現它每個週期的指令數量甚至比舊的Intel處理器要少。
讓我們考慮一下一個軟件,它每個週期具有大量指令,即快速JSON解析器simdjson。我在Linux下使用GNU GCC 8,我使用基準命令行parse處理一個名為twitter.json的測試文件。我記錄了在處理的兩個階段中每個週期的指令數(由CPU計數器測量)。這兩個階段共同有效地解析了JSON文檔。這是一個繁重的基準測試:錯誤預測的分支和高速緩存未命中的數量很少。Skylake處理器的頻率最高。我使用AMD Rome(服務器)處理器。
我發現AMD比英特爾落後約10%到15%。
===========================
SERVER 需要 大量轉換 JSON 字串 跟 AES256 + RSA 4096 ... 人家可是 有憑有據的!!
這個還不是 多工+繁重運算...Rome 跑分 單一渲染 好看而已!!
=========================================================================
關於這位魁北克大學教授的文章, Intel 與 AMD 兩個 CISC (複雜指令集) x86 架構的 CPU, 為何 AMD CPU 使用的新指令集會比 Intel 的指令集要少!!
對於 CISC(相對於 ARM RISC) 架構, 每一個 CPU 指令都由微碼 (Micro-Code) 所構成, 只是每一個 CPU 指令需要多少個微碼去執行而已!! 其實換句話說, 每一個相同 CPU 指令 (如 Memory Copy), Intel 需要 100 個指令, AMD 只需 70 個!! 然而我們在計算 CPU 效能時, 通常不是用微碼數量來計算與比較, 而是比較其指令完成時間, 耗用資源, 還有數值正確與否!!
意思是說, 一個 bitset operation, Intel 需要 2.1 個指令, AMD 只需 1.4 個指令來完成!! 各自指令集包含不同微碼, 而微碼有因為 Compiler 是否針對 CPU 進行優化而不同!!
然而由此可知, AMD 的 CPU 確實是經過優化, 可以在相同的 Compiler 用比較少的指令集去完成一個 動作!!
比較少的指令意味可以用比較少的CPU 資源與時間, 也是 AMD架構優於 Intel 的特性之一!!
通常去評估 CPU 的 benchmark, 是以單位時間內可執行的 cpu 指令數, 或是執行某項高複雜度的標準工作(如3D Rendering) 所需時間與耗用資源來去做評估! 這種以執行某項工作只算幾個執行指令的方式, 真的是失之考慮!!
所以要正確解讀人家的文章, 才是正解!!