大數據和機器學習AI晶片:GPU vs FPGA 雲和本地部署的艱難選擇

GPU和FPGA如何幫助執行數據密集型任務,例如操作,分析和機器學習,以及有哪些選擇?

應用程序和基礎架構在逐步發展。這是人工智能再生的時代,基礎設施既可以使人工智能應用程序理解世界,也可以不斷髮展以更好地滿足需求。

通常情況下,我們已經設想了為AI應用程序提供動力的新基礎架構,並且在它完全成熟之前給出了名稱 ------ Infrastructure 3.0。我們也開始探索堆棧中多方面組成部分,包括哪些明顯的、不那麼明顯的,以及其他部分。

為了易於闡述,本文將聚焦“具有許多計算核心和高帶寬內存的專用硬件”,簡稱AI芯片。我們來看看這些AI芯片如何在數據庫和分析以及機器學習(ML)方面使以數據為中心的任務受益。

讓我們從GPU和FPGA來開啟這篇文章的介紹。

GPU

圖形處理單元(GPU)已經存在了一段時間。最初設計是用於滿足快速渲染的需求,主要用於遊戲行業,GPU的架構已被證明能夠與機器學習良好匹配。

GPU的並行處理,這也是CPU可以做的事情,但與通用CPU相反,GPU的專業性使它們能夠跟上摩爾定律的速度繼續發展。Nvidia是GPU領域的主要參與者,最近宣佈了一套基於Turing架構的新GPU。

為避免淘汰,新的Nvidia GPU實際上帶來了圖形渲染的改進。但是,更重要的是,為了契合需求,他們收集了Tensor Cores,這是該公司專門的機器學習架構,並介紹了NGX。NGX是一種技術,正如Nvidia所說,它將人工智能引入圖形管道:“NGX技術帶來了諸如採用標準攝像機輸入和創建超級慢動作等功能,就像你使用一個價值10萬美元以上的專用攝像機那樣。”

人們一般不會對通用機器學習(ML)感興趣,但新Nvidia卡的功能肯定能引起人們的關注。然而,它的價格也反映了產品的高端品質,從2.5K到10K美元不等。

大數據和機器學習AI芯片:GPU vs FPGA 雲和本地部署的艱難選擇

GPU可以極大地加速工作負載,這些工作負載可以分解,並行執行,與CPU協同工作。圖片:SQream。

但是,利用GPU,不僅需要硬件架構 ---- 它還需要軟件。對於Nvidia來說,這是有利的競爭因素,而對於像AMD這樣的競爭者來說卻顯然不利。Nvidia在使用GPU進行機器學習應用方面遙遙領先的原因在於使用GPU所需的庫(CUDA和cuDNN)。

AMD雖然也有一個可以與AMD GPU一起使用的替代軟件層,稱為OpenCL,但它的成熟度和支持程序與Nvidia的庫尚有差距。AMD正在努力迎頭趕上,它也在硬件方面展開佈局。

為了從AI芯片中受益,AMD所需的投資超出了硬件。迫切需要一個位於這些芯片之上的軟件層,以優化在其上運行的代碼。沒有它,它們幾乎無法使用。但是,這也需要使用者學習如何使用這一層。

上面,我們已經提到GPU如何成為ML工作負載的首選AI芯片。最受歡迎的ML庫支持GPU - Caffe,CNTK,DeepLearning4j,H2O,MXnet,PyTorch,SciKit和TensorFlow等。除了需要了解每個庫的細節之外,通常還需要構建GPU環境。

至於普通的數據操作和分析 -----GPU數據庫方面,已經開發出一類新的數據庫系統,其目標是利用GPU並行性,將現成硬件的優勢帶入主流應用程序開發。這個領域可以選擇BlazingDB,Brytlyt,Kinetica,MapD,PG-Strom和SQream。

FPGA

現場可編程門陣列(FPGA)並不是新的產品----自80年代起就存在。它們背後的主要思想是,與其他芯片相反,可以按需重新配置。讀者可能更想知道這是如何實現的,如何更專業化,以及有什麼用處。

FPGA可以簡單地被認為是包含低級芯片基礎的電路板,例如AND和OR門。通常使用硬件描述語言(HDL)指定FPGA配置。使用此HDL,可以以符合特定任務或應用程序要求的方式配置基礎架構,實質上是模仿特定應用集成電路(ASIC)。

由於必須通過HDL為每個不同的應用程序重新編程,芯片聽起來很複雜。因此,軟件層至關重要。根據Tirias Research首席分析師Jim McGregor的說法,“構建FPGA的工具集有些古老。Nvidia在使用GPU時很好地利用了CUDA語言。利用FPGA,仍然是一種有效構建算法的黑馬。”

大數據和機器學習AI芯片:GPU vs FPGA 雲和本地部署的艱難選擇

英特爾非常重視FPGA,可能是為了彌補其在GPU中落後的局勢。但FPGA軟件層還沒有GPU那樣成熟。圖像:英特爾

但上面這種情況正在悄然發生改變。最初是英特爾對FPGA表示了興趣,收購了Altera(關鍵的FPGA製造商之一)。這可能是英特爾推進AI芯片世界的戰略,這一點在與GPU競爭中處於劣勢之後將變得越來越重要。但是,拋開復雜性,FPGA有競爭力嗎?

英特爾最近發佈了針對NVIDIA Titan X Pascal GPU在兩代英特爾FPGA(英特爾Arria10和英特爾Stratix 10)上評估新興深度學習(DL)算法的研究成果。這項研究的要點是,當使用緊湊數據類型與完整32位浮點數據(FP32)時,英特爾Stratix 10 FPGA優於GPU。

這意味著只要使用低精度數據類型,英特爾的FPGA就可以與GPU競爭。聽起來很糟糕,但它實際上是DL的新興趨勢。理由是簡化計算,同時保持可比較的準確性。

將FPGA用於機器學習(ML)有光明前景。然而,今天,發展並不是那麼順利。在驗證McGregor的聲明時,似乎沒有一個支持FPGA的ML庫開箱即用。目前正在開展使用TensorFlow實現FPGA的工作,但除此之外幾乎沒有什麼其他工具。

然而,在數據操作和分析方面,情況有所不同。最近,英特爾展示了其與FPGA加速分析合作的一些合作伙伴。 Swarm64看有望為PostgreSQL,MariaDB和MySQL加速12次。另外,rENIAC可以提供Cassandra的13倍加速版本,以及Algo-Logic及其定製鍵值存儲。

在雲端和本地部署中抉擇

選用何種新興技術很難抉擇,硬件也不例外。項目研發中,是應該構建自己的基礎架構,還是使用雲?是應該等到產品變得更加成熟再使用,還是立即使用產品,成為早期採用者而受益?是選擇GPU,還是FPGA?是選擇哪個GPU或FPGA供應商?

例如,當與ZDNet的貢獻者和分析師Tony Baer討論GPU數據庫時,Baer認為他們沒有未來。這是因為,根據Baer的說法,GPU的經濟性使得只有雲提供商能夠大規模地積累和使用它,因此,GPU數據庫供應商最終都會成為基於雲的數據庫提供者。

目前,一項此類收購,即巴西的Blazegraph收購,已經發生。雖然這確實有意義,但這不是唯一可行的方案。如果我們談論收購,那麼非雲數據庫供應商可能會購買GPU數據庫,而這些供應商希望將這些功能帶到他們的產品中。

一些GPU數據庫供應商也有可能進入他們自己的行列。與現有企業相比,GPU數據庫似乎不太成熟,但10年前許多NoSQL解決方案也是如此。 GPU數據庫在日常運營和分析上有選擇優勢,但問題是替換現有系統支出的成本是否超出了性能的提升需求。

另一方面,Swarm64和rENIAC是FPGA產品,它們承諾儘可能保持您現有的基礎架構不受影響,特別是在Swarm64的情況下。雖然它們的成熟度仍然是一個懸而未決的問題,但“簡單地”將硬件添加到現有數據庫並從中獲得更好的性能的想法聽起來很好。

就GPU與FPGA問題而言,GPU似乎擁有更廣泛和更成熟的生態系統,但FPGA提供了卓越的靈活性。還有人建議FPGA可以提供更好的性能/功耗比,並且未來的GPU可能無法跟上低精度數據類型,因為它們必須重新設計以支持這一點。

大數據和機器學習AI芯片:GPU vs FPGA 雲和本地部署的艱難選擇

哪一個最適合您 - GPU或FPGA?雲還是本地部署?

就選擇GPU或FPGA供應商而言,與選擇雲或本地部署這個問題交織在一起。 GPU,Azure,Google Cloud都提供GPU,所有這些GPU都使用Nvidia作為其支持GPU的實例。另一方面,FPGA在AWS(由Xilinx提供支持的EC2 F1)和Azure(由英特爾提供支持的Project Brainwave)上提供,但不在Google Cloud上提供。

AWS似乎沒有為F1提供ML特定的設施。 Microsoft允許用戶部署經過培訓的ML模型,但是關於如何在FPGA驅動的實例上訓練此類模型的信息並不多。就其本身而言,谷歌正在重視其定製TPU芯片。

就GPU與FPGA問題而言,GPU似乎擁有更廣泛和更成熟的生態系統,但FPGA提供了卓越的靈活性。也有人認為,FPGA可以提供更好的性能/功耗比,並且未來的GPU可能無法跟上低精度數據類型,因為它們必須進行重新設計以支持這一點。

關於百萬美元的構建費用問題 - 如果你用雲或建立自己的基礎設施 - 答案可能取決於:

如果基礎設施足夠使用,投資購買和安裝自己的基礎設施是有意義的,但偶爾使用雲似乎更合適。但對於大多數情況,這種基礎構建可能更適合混合部署。

另外,需要特別說明的是:如果你有一個Hadoop集群,那麼為它添加GPU或FPGA功能可能更有意義,因為Hadoop已經升級,能夠支持這兩個選項。

當然,我們在構建這個生態系統時,還沒有涵蓋所有可能的選項 ----- 這些都不是唯一的雲部署方式,也不是唯一的可選AI芯片。這是一個有許多新興參與者的新生領域,我們可以參照選擇的有很多。

譯者介紹:

劉志紅,17年IT從業經驗。曾在NTT DATA,Oracle,中鈔造幣集團,中國電信雲計算分公司從事雲計算等關聯IT研發工作。獨立擁有軟件著作權1件。目前就職於電子工業出版社。


分享到:


相關文章: