如何評估 GPU 相對於 CPU 的處理能力?

如何評估 GPU 相對於 CPU 的處理能力?

假設我有一個程式執行大量浮點計算,並且在我當前的硬體上速度慢得不切實際。為了盡可能減少運行時間,我想弄清楚在給定固定預算(我的情況約為 3000-4000 美元)的情況下,投資 CPU 還是 GPU 是否更好。我知道將一個 CPU 與另一個進行比較,我可以得到很粗糙的透過將時脈頻率乘以每個 CPU 的核心數量並比較這些數字來了解相對處理速度。但是 GPU 呢?有沒有什麼方法可以根據 GPU 的規格快速計算一個數字,告訴我大致相對於已知的 CPU,我期望它運行我的程式的速度有多快?

我知道實際的處理速度在很大程度上取決於程式的建構方式以及 CPU/GPU 時脈速度以外的其他因素。出於這個問題的目的,我忽略了這些其他因素,即我假設除浮點數運算之外的任何任務所花費的時間都可以忽略不計(因此它不是 I/O 限製或類似的東西),並且該程式是無限並行的(因此,給定任意數量的CPU 或GPU 核心,只要程式運行,所有這些核心都將使用到最大容量)。

答案1

好吧,您可以嘗試使用綜合基準。他們會給你一些想法。例如,NVIDIA 的 CUDA 工具包包含一些在 CPU 和 GPU 上執行的程序,可用於比較在每個平台上執行它們所需的時間。

如果您只需要使用 GPU 資料表來完成此操作,您也可以這樣做。例如,這裡這是我的 GeForce 9500 GS 的頁面。您可以在那裡找到有關處理核心數量的信息。處理能力與GPU頻率和核心數成正比。有些卡片甚至GFLOPS 數量也是如此。有一個文件為每張卡提供了更統一的詳細描述,但我現在找不到方法來獲取它。也許它在 CUDA 工具包下載中?

還有運算能力級別,顯示每張卡提供哪些功能,但如果我沒記錯的話,它不會直接影響計算速度,只會影響可能使用的精確度和指令集。

我不了解有關其他製造商的卡的最新信息,但我希望至少也有 AMD 和英特爾的方法來獲取數據。

相關內容