天天看點

說說中國高校理工科教育中的基礎概念混亂問題——GPU是ASIC嗎

在YouTube上看到這樣一個視訊:

​​https://www.youtube.com/watch?v=7EXDp6c9n-Q&lc=Ugydwl8gppB5FWE8Y5V4AaABAg.9fcFRMWuCpg9fcrI479gE2​​

視訊中說A100是ASIC,對此我表示不認同,理由就是A100雖然是加速卡但也是一種GPU,隻不過不帶視訊輸出功能而已,但其絕不是ASIC。在我回複後沒多久就有人回複我,說GPU就是ASIC的一種,理由就是GPU是專門用來處理圖形的。看了這回複我不得不說這是中國國内哪個大學培養的理工生,這基本概念的掌握能力真的是要人無語的很。由于被YouTube禁言無法回複,具體回複過程見下圖:

說說中國高校理工科教育中的基礎概念混亂問題——GPU是ASIC嗎

被禁止回複的内容:

建議你好好研究清楚概念,ASIC是專用內建電路,GPU是通用內建電路,這兩個本就不是一個概念。你可以說TPU是ASIC,哪怕廣義上你把FPGA歸為ASIC我都多少能接受,但是你不能說GPU是ASIC。什麼一個晶片設計中部分電路是專門負責一個功能的,然後你就說這個晶片是ASIC,如果你要是這樣認為的話,那麼所有晶片的電路設計都可以歸為ASIC,那其他概念也就沒有必要存在了。概念沒了解透就多讀書,多查資料,嚴謹些。

==================================================

螞蟻礦機、通訊裝置中的濾波晶片、數模轉換晶片等,這些都是ASIC,但是你要是說GPU是ASIC,那簡直就是概念不清。ASIC主要的特點就是使用場景的單一性,但是你說GPU就是做圖形和圖像計算的,是以GPU也是一種ASIC,這就是沒有弄清基本概念的本質。是否是專用電路,還是要看是否對特定功能的強化,ASIC就不用多說什麼了,對于GPU來說雖然是做圖形和圖像計算的,但是其功能卻是通用的,或者你也可以将圖形和圖像計算看做是複雜的通用計算而不是單一功能的計算。如果說這樣還不了解就可以換個角度,指定的ASIC隻能高效的跑一些固定類型的計算,甚至很多ASIC能且隻能運作固定類型的計算,或者說ASIC具有一定的定制性,而GPU是可以高效運作所有矢量類型的計算的,這一點和CPU很像,是以說CPU和GPU都是通用晶片而不是ASIC。使用ASIC作為AI晶片可以對特定的AI應用大幅度提高性能,但是不要忘記即使是深度學習即AI的當下也不是所有的AI應用都是Deep Learning的,你可以這樣認為,那就是TPU隻能運作Deep Learning,而A100不僅可以運作Deep Learning還能運作其他類型的AI矢量計算。不論是設計架構、應用場景還是設計原理上GPU都不能歸到ASIC一類中,正确的歸法應該是和CPU一樣歸到通用晶片中。如果非要擡杠,說GPU晶片中的部分晶片電路也是針對單一類型計算的,如A100中的TensorRT部分,那麼也隻能說GPU中含有部分ASIC,這一點如同CPU一樣,現在很多CPU晶片中也會內建定制部分如現在所謂的“帶有AI功能的CPU”,但即使如此你也隻能說這些CPU和GPU是帶有特定電路設計的通用晶片,而不能說這些CPU和GPU是ASIC。

個人認為ASIC最大的優點就是性能的強大,最大的缺點就是難擴充和延伸,軟硬體支撐困難。對于ASIC來說往往需要構成軟硬體的閉環,而GPU雖然對特定任務的性能不如ASIC但是比較友善更新和後期維護,對于難以形成軟硬體閉環的使用者來說AI晶片選擇時GPU要優于ASIC的,畢竟你不需要那麼大的人力物力,軟硬體平台可以直接拿來就用的,當然如果你是要進行移動端晶片選擇的話你隻能用ASIC,不然這個功耗和性能确實解決不太來。在現實中很多AI的ASIC往往也是針對固定網絡類型的Deep Learning,而GPU就不用考慮這些,雖然GPU運作指定網絡結構的Deep Learning的速度比不上指定的ASIC,但是GPU可以運作幾乎所有的網絡結構模型,隻能說GPU和ASIC各有優劣吧。由于ASIC的專用定制性即使是現在的AI應用中其實使用也是很受限的,比如在TPU中你運作Deep Learning類型的矩陣運算性能可以得到保障,但是你也隻能使用Tensorflow架構,并且你還得用原生的不能加入你自定義的TensorFlow操作(或許在得到Google官方支援下花費較多時間也能行)。由于現在的Deep Learning的盛行,很多的AI下的ASIC其實都是對特定矩陣運算的定制,功能還是比較單一的,不是所有的AI應用都是圖像識别和語言識别的。即使在Deep Learning下,我認為ASIC對比GPU的優勢還是在部署端尤其是移動端,因為大多數場景下隻有到了部署的時候神經網絡結構才是徹底定死的,這就如GPU計算中也往往會分訓練卡和推理卡一樣,同樣一款硬體在不同場景下其性能的表現也是不同的。矢量計算包括矩陣運算,但不僅限于矩陣運算,Deep Learning下的ASIC所獲得的超越GPU的性能可以說是通過犧牲通用性所換來的。

=================================================

上面說了這些,下面就說說下個話題——說說中國高校理工科教育中的基礎概念混亂問題:

其實要談的就是我個人的一些感覺和觀點。由于我經常參見985理工科高校博士的學術讨論會,是以對高校理工博士還是有些了解的。開的會開多了也就發現了一些問題,那就是好多985高校的理工科博士在講自己的研究課題的時候經常性的将本課題下的基礎概念講錯,可能我本人也是個比較較真的人,每每遇到這種情況總是忍不住的要公開吐槽一下,不過這種事情見多了後吐槽啥的也不重要了,重要的是我對此感覺蠻憂慮的。作為中國科研主力軍,如果連基礎概念都不了解又怎麼能要人放心呢,誠然現在的科研猶如蓋樓,你往往隻需要知道你下一層是怎麼蓋的你就可以接着往上該,但是無法對整個情況有個大緻了解,無法對基本原理和概念有個深入的了解,又怎麼能要人放心這一層層壘上去的樓會堅固呢。

關于理工科學生是否應該有個牢固的基礎我想人們是沒有疑問和意義的,不過每每落實到實際情況上時人們又往往覺得這個事情無傷大雅、不太礙事,但是我個人的觀點則是要想有更好的發展對基礎技能培養(包括基礎概念的掌握)都是極為有必要的。或許現在的人們對發展和收益很急迫,但是我覺得“磨刀不誤砍柴工”還是有理的,如果基礎技能都不過關即使蓋好了高樓往往也是抵不過大些的地震的。

即使人們認為我說的高校生連本學科基礎概念都掌握不清這件事并不會影響人們的學術發展,但這總是有礙觀瞻吧,尤其是在公開場合開讨論會的時候,因為每每遇到這樣的場景我都會覺得“天雷滾滾”,甚至有種憤然離場的沖動。不過說實在的,我發現慢慢的人們也發現不了這些基礎概念是否被講錯,可能是“劣币驅逐良币”,慢慢的人們都變得搞不清楚真正的本學科基礎概念應該是什麼了。這件事從輕上說是不嚴謹,從重上說,我認為這就是“瞎搞”、“亂象”。這種問題已然不是個例而是成為了普遍現象,想想真的要人憂心。

繼續閱讀