首先,我想說現在所謂的AI,且不說那些偽AI,即便是正牌AI,大多數也是指Machine Learning。

而Machine Learning,是基於神經網路。神經網路是一種典型的並行結構,每個節點的計算並不複雜。但是節點很多,且獨立。

這種結構與GPU的結構非常相似。有人說GPU就是一群小學生。神經網路的計算,本質上也就是一群小學生的計算。所以,兩者非常契合。甚至,對於神經網路的計算來說,GPU都有些屈才了。所以現在有了基於FPGA的AI專用晶元。每個節點更加傻瓜,算幼兒園小朋友吧,具備一些基本的條件反射。但是由於每個節點簡單,所以同樣的晶元面積就可以放更多的小朋友,從而速度更快了。

但是,不要以為這就是AI的全貌了。遠的難的不說,遊戲當中的AI,歷史很悠久了吧。這些AI基本上都是跑在CPU上的,至今也沒有什麼根本性改變。

所以,有這種刻板影響其實上沒有看到AI的全貌,也就是沒有真正理解什麼是AI。


現在到處都有AI的應用,無論是金融建模、自動駕駛、智能機器人、新材料發現、腦神經科學、醫療影像分析等等,而人工智慧時代的發展極度以來計算力的支持。人工智慧的核心是演算法,深度學習是目前主流的人工智慧演算法。

CPU無法做到大量數據並行計算的能力,GPU的特點是有大量的核心和高速內存,擅長並行計算,所以超算常用到GPU,各核之間的獨立性相比CPU要低的很多。GPU本身擅長的就是海量數據的快速處理。人們利用GPU來訓練這些深度神經網路,所使用的的訓練集大的多,所耗費的時間也大幅縮短,佔用的數據中心基礎設施也少得多。GPU還可以用於運行這些機器學習訓練模型,以便在雲端進行分類和預測,從而在耗費功率更低、佔用基礎設施更少的情況下能夠支持遠比從前更大的數據量和吞吐量。

總結一下GPU的優勢:

  • 多線程,提供了多核並行計算的基礎結構,且核心數非常多,可以支撐大量數據的並行計算,處理神經網路數據遠遠高效於CPU。
  • 擁有更高的訪存速度。
  • 更高的浮點運算能力。

因此,GPU比CPU更適合深度學習中的大量訓練數據、大量矩陣、卷積運算。

發佈於 2020-10-15繼續瀏覽內容知乎發現更大的世界打開Chrome繼續akkaze-鄭安坤akkaze-鄭安坤?

南京大學 理論物理碩士

gpu更適合做矩陣運算,你可以理解為所有矩陣元素一起算,並行度高。

而目前的ai領域,基礎理論都是矩陣計算


gpu更適合做矩陣運算,你可以理解為所有矩陣元素一起算,並行度高。

而目前的ai領域,基礎理論都是矩陣計算


和ai無關。強就是強。很多領域都強。體系結構決定的。


ai運算更多是特定運算,因此通用型的CPU在性能上不佔優勢;相反,GPU擁有眾多的獨立處理核心,每個核心都能完成相關的特定運算功能,因此GPU在面對CPU時,就是成百上千個核心pk幾個核心,性能差距瞬間就被拉開了。


CPU 在 AI 上功能溢出了。而且設計上也不符合 AI 的計算特性。

GPU 本來就是針對大規模並行計算,而且計算過程相對單一的內容。和 AI 計算的內容類似。


因為目前的神經網路結構大部分計算可以轉化為矩陣計算,天生容易並行,而且是稠密矩陣乘法,gpu計算單元很多,比較適合這種計算。cpu的計算單元很少,但是流水很長,各種分支預測,適合順序的計算。 反對高票神經網路和gpu相似的說法,完全不是一個東西好嗎,再說了,你拿一個模擬信號類比數字信號這也比不了啊。如果神經網路結構跟人腦相似的話,gpu也不一定會適合。


因為CPU的設計宗旨是降低計算延遲,使得每個thread的計算儘可能快,所以CPU的大部分並非ALU和FPU(計算單元),很大的一部分都是用來管理的單元和Cache,這部分management主要的一個作用是分支預測(Bracn Predictor),他們把會預測code進入哪個分支,ALU在接下來幾個指令需要哪些數據,提前load到Cache里,這樣ALU就不需要"空轉"了。

相反,GPU的設計宗旨是高通量,也就是說GPU相比於CPU有更多的帶寬,(我印象中有CPU十倍左右)。此外,它們有更加多的計算單元和寄存器用來進行計算。

於是乎,這兩個優點加起來,就非常適合目前的AI模型,也就是大量的矩陣運算,大量數據從內存里一併load到GPU里,然後算完一併送出去。雖然單個thread延遲高了點,這比CPU算一點點小雞啄米的算,但是一小塊米啄的快,整體划算的多。

當然,GPU也有自己的缺點,就是延遲高,不過這個可以通過把空轉的線程換出來緩解。還有就是沒有分支預測,GPU對於一個if else語句所做的就是開一半核去算進入的分支,另一半idle,造成了浪費。

這大概就是我的理解,有錯誤請指正。


在資訊日益發達的今天,人工智慧(AI)這個詞早已不新鮮。我們在生活中可以看到很多跟 AI 相關的產品,比如智能音箱、AI 拍照、智能推薦、自動駕駛等等。雖然大家看得多,但是大部分人都不清楚,到底什麼是人工智慧,它是如何完成這些神奇的操作?

人工智慧並不神秘,本質上他跟我們日常使用的手機、電腦沒多大區別,都是便於我們工作生活的工具。在電腦誕生之前,人類計算複雜的問題往往需要一個月甚至更久的時間,而電腦可能只需要幾秒鐘就完成了。人工智慧的原理與電腦類似,只不過計算量與電腦不在一個量級上。普通台式電腦只靠一顆 CPU 加一顆 GPU 計算,而人工智慧會用無數顆 GPU 搭建一整個深度學習網路。

在很多遊戲愛好者看來,GPU 是衡量電腦遊戲性能好壞的標準,常常為英偉達與 AMD 哪個型號 GPU 性能強爭得不可開交。事實上,GPU 的應用早已突破遊戲領域限制,應用到人工智慧上游深度學習中。深度計算的應用場景幾乎都是向量計算 ,而 GPU 是未來「通用」向量處理器(流處理器)技術的基石。

未來是人工智慧的時代,也是深度學習的時代,因此 GPU 的需求前所未有。


GPU更多地使用多核心和並行計算的方式來處理數據。

從1995年最初的GPU採用1核心,到2004年的24核心GPU,到2009年的128核心GPU,大規模並行計算開始得到廣泛的應用。2018年的NVIDIA VOLTA顯卡擁有5120個核心。

GPU最初的應用目的是圖像處理,特別是在遊戲領域。遊戲是一個非常典型的大規模並行計算的應用場景,有太多的內容需要GPU模擬(動作、光線、材料、陰影、流體等等..),而這些往往需要在同一時間並行處理完成。

而這種大規模的並行計算,與近年來推出的深度學習十分的契合:

了解深度學習的人應該清楚,深度學習是結合的龐大的數據和複雜的神經網路節點,進行大規模的並行計算而實現最終的輸出結果。通常深度學習的模型需要幾百億甚至幾萬億的矩陣運算,而每一步計算往往是非常簡單的加法和乘法。GPU的特性就決定了它非常擅長做大規模的並行簡單計算(這與GPU在遊戲中的應用場景非常相似),因此GPU完美地與深度學習技術相契合。使用GPU做輔助計算,能夠更快地提高AI的性能。

另外補充一點:隨著摩爾定律的失效,CPU每年的性能提升已經非常有限,目前僅能維持在每年1.1倍的性能提升,非常有限。但GPU是採用核心堆砌的方式來實現運算,在目前來講,完全可以通過增加核心數來維持每年1.5倍的性能提升。

NVIDIA最新的GPU架構VOLTA就是針對人工智慧和深度學習而設計的一款架構。基於此架構的Tesla V100被稱為「宇宙最強GPU」,採用12nm製程,5120個核心,運算速率15 teraflops。由於針對人工智慧演算法做了深度優化,它在進行深度學習計算時,運算速率達到8倍的120teraflops。全新的專用處理模塊——Tensor Core(張量計算核心),它與Volta的其他微架構改進,以及支持深度學習和高性能計算(HPC)的軟體/框架集成在一起。

相比單純使用CPU做人工智慧運算,這款產品能夠在性能方面提升40倍,在效率方面提升30倍,效果非常顯著。

可以說,GPU在人工智慧方面的應用具有先天的優勢,而經過優化和定製後的人工智慧GPU能夠實現「Monster」級別的表現。

#想學習更多前沿技術,歡迎下載IC智庫APP#

#IC從業者自己的知識分享平台|公眾號:ICzhiku#

編輯於 2019-03-06繼續瀏覽內容知乎發現更大的世界打開Chrome繼續冰笛冰笛寒冰鑄笛,研究智能的人

因為GPU比CPU更接近神經網路的分散式運算模式。


因為GPU比CPU更接近神經網路的分散式運算模式。


人工智慧不僅僅是深度學習。

人工智慧項目,要「入門」不要「入坑」

只能說是在人工智慧計算/AI計算領域,GPU比CPU性價比高,而不能以偏概全直接下結論說性能更強。

期待未來吧,畢竟人工智慧才剛剛起步。

另,各種HPC深度學習平台伺服器、存儲、工作站解決方案,歡迎聯絡。


我們拿CPU和GPU進行比較

? Nvidia曾經有一個非常直觀的科普視頻(原視頻地址:https://www.youtube.com/watch?reload=9v=-P28LKWTzrIfeature=emb_titleab_channel=NVIDIA),這裡搬運了過來。

Mythbusters Demo GPU versus CPU

? 正如某些科普文章提到過,GPU之所以快的原因是因為高效的並行計算,對矩陣乘法和卷積具有極大的計算優勢。但鮮有對其進行解釋,其真正的原因是在於內存帶寬,但不一定是並行計算。

? 首先,CPU是延遲優化的,而GPU是帶寬優化的。通常我們會打這樣的比方。把CPU比作一輛法拉利,而GPU則為貨運卡車。兩者的任務是從任意位置A取貨,並將這些貨物運輸到另一個任意位置B。CPU(法拉利)可以在RAM中快速獲取一些內存數據(貨物),而GPU(貨運卡車)執行速度較慢(延遲更高)。然而CPU(法拉利)需要來回多次運輸完成工作([公式])然而GPU(貨運卡車)則可以一次獲取更多內存數據進行運輸[公式]

? 換句話說,CPU更傾向於快速快速處理少量數據(例如算術運算:[公式]),而GPU更擅長處理大量數據(例如矩陣運算:[公式]),最好的CPU內存帶寬大約50GB/s?,而常見的GPU(RTX2060)內存帶寬為336GB/s(RTX3090的GDDR6X顯存更是高達912GB/s-1006GB/s)。因此,計算操作需要的內存空間越大,GPU優勢就越顯著。但是,在GPU的情況下,最大的問題在於延遲對性能的影響。結合CPU的低延遲和GPU的高帶寬可以有效隱藏延遲充分發揮互補優勢。但對於深度學習的典型任務場景,數據一般佔用大塊連續的內存空間,GPU可以提供最佳的內存帶寬,並且線程並行帶來的延遲幾乎不會造成影響。

? 除此之外,GPU還存在其他優勢。除了第一步數據從主存(RAM)上提取到L1緩存和寄存器的性能優勢。第二步雖然對性能不太重要,但依舊會增加GPU的領先優勢。通常來說與執行單元(指的是CPU的核心或者GPU的流處理器)的距離越近,則訪問速度越快,其中寄存器和L1緩存與CPU距離最近。GPU的優勢在於:GPU為每個處理單元(流處理器或者SM)均配備了一些寄存器,而GPU成百上千個處理單元就使得寄存器總的數量非常多(為CPU的30倍,高達14MB)且速度達到80TB/s。相比之下,CPU的寄存器大小通常為64-128KB,運行速度為10-20TB/s。當然以上的比較在數值上會有欠缺,並且CPU寄存器和GPU寄存器並不相同。兩者的大小和速度的差異是主要關鍵點。

? 最後一點GPU的優勢在於:大量且快速的寄存器和L1緩存的易於編程性,使得GPU非常適合用於深度學習。這一點就不展開細說了,具體可以Nvidia官方參考資料

參考文檔

  • Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning
  • Why are GPUs well-suited to deep learning?
  • What is a GPU and do you need one in Deep Learning?


GPU 在 AI 或者說機器學習上的優勢

1、高內存帶寬;

2、在線程並行下可以隱藏訪存時延;

3、更大高速寄存器和 L1 內存使得它具備較高的可編程性。


推薦閱讀:
相关文章