存在以下條件。
考慮三個不同的處理器 P1、P2 和 P3,它們執行相同的指令集。P1 的時鐘頻率為 3 GHz,CPI 為 1.5。P2 的時鐘頻率為 2.5 GHz,CPI 為 1.0。P3 的時鐘頻率為 4.0 GHz,CPI 為 2.2。
問題是
執行相同程式時哪個處理器的性能最高?
我已經學會了在比較計算機性能時比較 cpu 執行情況。
但是,由于cpu execution time = CPI * instruction set * 1/clock rate僅用上述問題中的條件無法知道指令集的大小,因此我認為無法比較處理器之間的性能。
我尋找了與此類似的其他問題,問題是Which processor has the highest performance expressed in instructions per second?我們在如圖所示的每秒指令數條件下比較了處理器之間的性能。
所以我想知道的是,是否可以在沒有任何特殊條件的情況下比較處理器之間的性能。(是不是給定的問題錯了?)如果可能,我想知道如何比較它們。
uj5u.com熱心網友回復:
但是,由于
cpu execution time = CPI * instruction set * 1/clock rate僅用上述問題中的條件無法知道指令集的大小,因此我認為無法比較處理器之間的性能。
對于那個公式;我認為這instruction set反映了做同樣的作業需要多少指令。例如,如果一個指令集可以在一條指令中進行乘法運算,它可能有instruction set = 1,如果另一個指令集需要 20 條指令來進行一次乘法運算,那么它可能instruction set = 20需要 20 倍的指令才能完成相同的作業。
對于你的家庭作業(3 個處理器都執行相同的指令集),instruction set是無關緊要的——它們都采用相同數量的指令來完成任何數量的作業。考慮到這一點,您就可以做到performance = clock rate / CPI。進一步來說:
P1 = 3 GHz / 1.5 = 2,000,000,000
P2 = 2.5 GHz / 1.0 = 2,500,000,000
P3 = 4 GHz / 2.2 = 1,818,181,818
當然,作業非常簡單——停頓(CPU 在等待快取未命中和分支預測錯誤后的指令獲取等事情時什么都不做的時間)往往比時鐘速度或“理論最大 CPI”對性能的影響更大"; 和“實際測量的 CPI”取決于使用了哪些特定指令(對于所有程式,永遠不能是像“1.5 CPI”這樣的單一數字)。換句話說,在實踐中,很容易出現 CPU 對一個程式最快但對另一個程式最慢的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/338986.html
上一篇:重復檢查與創建一套打字稿
下一篇:Nodejs并行請求越來越慢
