回覆列表
-
1 # 超能網
-
2 # Djxncnsjsjwncnc
CPU的特點:單個任務算的快,但是隻能同時算少量幾個任務。擅長處理各種邏輯計算。
GPU的特點:單個任務算的非常慢,但是能同時執行大量過程相同,資料不同的運算。擅長處理各種簡單的數學運算。
平常用電腦絕大多數都是邏輯運算,要求儘快得到結果,這些活只能CPU來幹。
-
3 # 高大福
1000個熟練工人能不能替代一個科學家?如果把GPU比作1000個熟練工人,那麼CPU就是一名科學家,兩個其實都無法互相替代。
1000個熟練工人可以在幾個小時內在流水線上製造出幾百部手機或者幾十輛汽車,而一名科學家可以解出一道高難度的數學難題,但是要花上幾個月的時間;兩者各有各的價值,只能說是分工不同。
從技術上來講,GPU是一種專用晶片,而CPU是一種通用晶片。
GPU的出現時為了彌補CPU在資料併發處理上的不足,CPU一般只有4核、8核,而CPU動輒可以有上千個核心。GPU在影象處理上相比CPU有著很強的優勢,並且可以在機器學習等需要同時處理海量資料的場景發揮作用。
而CPU更為通用,科學家既能解決數學問題,也能上生產線幹體力活,只是效率沒有熟練工人高罷了;所以讓CPU處理邏輯更復雜,需要不同“技能”的少量工作顯然更合理。
我在NVIDIA的官網上找到一個影片,形象地解釋了GPU在處理影象方面和CPU的區別,挺有意思的。
GPU取代不了CPU,這是因為它們的功能定位就不一樣,前面也有回答說過,CPU擅長做些複雜的事,如分支預測,GPU擅長做些量大的事,如平行計算。其實換個角度還可以這麼想,GPU為什麼能按照它們的方式工作?
GPU的圖形驅動程式為程式設計師提供了一個介面,我們透過如DirectX、CUDA、OpenGL、OpenCL、Metal等API進行程式設計。這個驅動程式有多複雜就不說了,可是你想過沒有,它是在哪上面執行的?
沒錯,就是CPU,即使是GPU能完成全世界上所有的計算,它仍然需要一個CPU來執行GPU驅動,這個驅動會號令GPU該去做些什麼。或許你說,怎麼不在GPU上加一個小CPU來做這些事呢?確實,AMD有自己的APU,它是一個內建了GPU的CPU,英特爾也有自己內建了GPU的CPU,但是它們都沒有一臺只有GPU而不需要某種CPU的計算機。
如果真的只有一個GPU,那麼如何將GPU連線到網路,如何將GPU連線到印表機,如何讓GPU接受鍵盤輸入的指令等等,這些任務都需要作業系統來執行其它相應的硬體驅動程式,並且此類程式碼和互動都需要一個CPU型的處理器來幫助執行。
所以說,GPU不能完全取代CPU的最大原因是,它只有依靠CPU才能實現自己的遠大前程。