本文經超能網授權轉載, 其它媒體轉載請經超能網同意
GPU是替代不了CPU的, 同樣, CPU也替代不了GPU.
如果形象點理解, GPU就像一群螞蟻, 這些螞蟻都做著同樣的事, 而CPU就像一隻猴子, 這隻猴子做著各種不同的事.
從根本上說CPU和GPU它們的目的不同, 且有不同側重點, 也有著不同的性能特性, 在某些工作中CPU執行得更快, 另一工作中或許GPU能更好.
當你需要對大量數據做同樣的事情時, GPU更合適, 當你需要對同一數據做很多事情時, CPU正好.
然而在實際應用中, 後一種情形更多, 也就是CPU更為靈活能勝任更多的任務. GPU能做什麼? 關於圖形方面的以及大型矩陣運算, 如機器學習演算法, 挖礦, 暴力破解密碼等, GPU會有所幫助.
簡單地說, CPU擅長分支預測等複雜操作, GPU擅長對大量數據進行簡單操作. 一個是複雜的勞動, 一個是大量並行的工作.
其實 GPU可以看作是一種專用的CPU , 專為單指令在大塊數據上工作而設計, 這些數據都是進行相同的操作.
要知道處理一大塊數據比處理一個一個數據更有效, 執行指令開銷也會大大降低, 因為要處理大塊數據, 意味著需要更多的晶體管來並行工作, 現在旗艦級顯卡都是百億以上的晶體管.
CPU呢, 它的目的是儘可能快地在單個數據上執行單個指令. 由於它只需要使用單個數據單條指令, 因此所需的晶體管數量要少得多.
目前主流案頭CPU晶體管都是十億以下, 和頂級GPU相差十倍以上, 但它需要更大的指令集, 更複雜的ALU(算術邏輯單元), 更好的分支預測, 更好的虛擬化架構, 更低的延遲等等.
另外, 像我們的作業系統Windows, 它是為x86處理器編寫的, 它需要做的任務執行的進程, 在CPU上肯定更為高效, 你想每個線程的任務並不相同, 基本上難以並行化, 完全發揮不了GPU的長處.
那麼, 可以預見在未來, 隨著CPU進一步強化處理數據塊的能力, 我們將看到CPU和GPU架構之間的融合, 而且隨著製造技術的進步和晶片的縮小, GPU也可以承擔更複雜的指令.
CPU與GPU間的分工雖然還是大有不同, 但彼此間的交集無疑會更多.