伴隨著人工智慧的宣傳,經常聽到CPU,GPU,TPU的字樣。作為發燒友,CPU和GPU應該比較清楚,不過TPU又是什麼概念?這三者在人工智慧領域又有何區別?下面就為大家簡單介紹一下。
首先要實現人工智慧必須有三點:算法(核心),硬體和數據(基礎)。
算法主要分為為工程學算法和模擬算法。
工程學方法是採用傳統的編程技術,利用大量數據處理經驗改進提升算法性能;模擬法則是模仿人類或其他生物所用的方法或者技能,提升算法性能,例如遺傳算法和神經網絡。
接下來就是本文講述的重點了。
GPU
最初GPU主要用於圖像渲染所需而研發,特別針對密集的、高並行的計算,因此GPU 設計了更多的電晶體專用於數據處理,而非數據高速緩存和流控制,這是和CPU最大的區別之處,比如CPU 上有 20%的電晶體是用作運算之用的,而GPU 上有 90%甚至更多的電晶體用作運算。
GPU 處理的首要目標是運算以及數據吞吐量,從硬體設計上就是一種完全為多線程設計的處理核心,擁有複數的管線平臺設計,完全勝任每線程處理單指令的工作。能夠進行整數,浮點計算,邏輯運算等操作。而 CPU 內部電晶體的首要目的是降低處理的延時以及保持管線繁忙,這也決定了 GPU 在密集型計算方面比起 CPU 來更有優勢。
分工與合作
CPU 由於在分支處理以及隨機內存讀取方面有優勢,在處理串聯工作方面較強。GPU 由於其特殊的核心設計,在處理大量有浮點運算的並行運算時候有著天然的優勢。計算機工作時,性能實際上就是使用 CPU 來做串聯工作,而 GPU 負責並行運算,CPU+GPU的異構運算組合讓計算機性能充分發揮。
不過目前在移動端,GPU的應用還不如PC端,但隨著手戲及VR的微端運用,GPU呈現出大爆發的趨勢。
當然GPU的缺點也很明顯,正是因為GPU更擅長於類似圖像處理的並行計算, GPU 提供了大量的核,可以同時對很多像素進行並行處理。但只能在大量數據處理時有明顯提升,其處理單一數據的速度不如CPU,並GPU 核主要被設計為支持與圖像處理相關的運算,不如 CPU 通用。並且GPU相對可編程的矽晶片FPGA,較容易產生計算錯誤。
FPGA
FPGA誕生於1984年,這種可編程邏輯器件憑藉性能、上市時間、成本、穩定性和長期維護方面的優勢,在通信、醫療、工控和安防等領域佔有一席之地。特別是最近兩年,由於雲計算、高性能計算和人工智慧的繁榮,擁有先天優勢的FPGA得到空前發展。
計算能力除了和硬體的計算速度有關,也同硬體能支持的指令有關。FPGA和GPU內都有大量的計算單元,因此它們的計算能力都很強。在進行神經網絡運算的時候速度會比CPU快很多,但兩者之間存在一些差別。GPU出廠後由於架構固定硬體原生支持的指令其實就固定了。如果神經網絡運算中有GPU不支持的指令,比如,如果一個GPU只支持加減乘除,而我們的算法需要其進行矩陣向量乘法或者卷積這樣的運算,GPU就無法直接實現,就只能通過軟體模擬的方法如用加法和乘法運算的循環來實現,速度會比編程後的FPGA慢一些。而對於一塊FPGA來說,如果FPGA沒有標準的「卷積」指令,開發者可以在FPGA的硬體電路裡「現場編程」出來。相當於通過改變FPGA的硬體結構讓FPGA可以原生支持卷積運算,因此效率會比GPU更高。
TPU
TPU英文全稱Tensor Processing Unit(張量處理器)。是谷歌專為它的深度學習語言Tensor Flow開發的一種晶片。TPU是一種ASIC,這是一種與FPGA類似,但不存在可定製性的專用晶片,經過了專門深度機器學習方面的訓練,它有更高效能(每瓦計算能力),寬容度更高,每秒在晶片中可以擠出更多的操作時間,使用更複雜和強大的機器學習模型,將之更快的部署,用戶也會更加迅速地獲得更智能的結果,在處理人工智慧方面功耗更低,最出名的就是AlphaGo。
另外從商業角度講,目前Google的處理器還是自產自銷,不會對外出售。不過隨著越來越多的企業採用Google雲服務,採購Intel處理器並自建伺服器/數據中心的會越來越少,會對Intel、NVIDIA這樣的大客戶產生巨大衝擊。
PS:
ASIC(Application Specific Intergrated Circuits)即專用集成電路,是指應特定用戶要求和特定電子系統的需要而設計、製造的集成電路。目前用CPLD(複雜可編程邏輯器件)和FPGA(現場可編程邏輯陣列)來進行ASIC設計是最為流行的方式之一,它們的共性是都具有用戶現場可編程特性,都支持邊界掃描技術,但兩者在集成度、速度以及編程方式上具有各自的特點。
ASIC的特點是面向特定用戶的需求,品種多、批量少,要求設計和生產周期短,它作為集成電路技術與特定用戶的整機或系統技術緊密結合的產物,與通用集成電路相比具有體積更小、重量更輕、功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優點,嚴格的說,ASIC不能算是學術名詞,也不能算是技術。
◇綿陽 王建銀