GPU訓練速度慢?不妨試試IPU

雲體驗師 發佈 2020-06-16T06:41:54+00:00

如果你是一位算法科學家或者是AI應用開發者,當你的算法在GPU上的運行速度非常慢時,你通常會怎麼想?是不是會先懷疑自己,覺得算法有問題,或者是軟體代碼有問題?

如果你是一位算法科學家或者是AI應用開發者,當你的算法在GPU上的運行速度非常慢時,你通常會怎麼想?是不是會先懷疑自己,覺得算法有問題,或者是軟體代碼有問題?

其實還有一種情況,如果算法模型是較為稀疏的卷積,那麼問題則可能出在GPU身上,因為GPU的架構不適應稀疏的卷積,而擅長處理這一場景的處理器叫IPU。在許多機器學習場景下,IPU都比GPU快,而且,這類場景會越來越多,IPU是一種非常有前景的AI晶片,如今是僅次於GPU和TPU的第三大商用AI晶片方案。

IPU是什麼?

眾所周知,GPU的並行能力遠勝於CPU,相比之下,GPU更擅長處理機器學習工作負載,而IPU與CPU、GPU又完全不同,它是專為機器學習設計的處理器架構,比GPU更擅長處理機器學習的工作負載。

據Graphcore高級副總裁兼中國區總經理盧濤介紹,IPU在現有以及下一代模型上的性能均優於GPU,在自然語言處理方面的速度能比GPU快25%到 50%;在圖像分類方面,吞吐量6倍於GPU,而且時延更低;在一些金融模型方面,速度相比於GPU能提升26倍以上。

這三部分涵蓋了人工智慧的大部分場景,可以說,在許多場景中,IPU相對於GPU有很大優勢,IPU很是厲害。

英國半導體之父、Arm聯合創始人Hermann爵士說:「在計算機歷史上只發生過三次革命,一次是70年代的CPU,第二次是90年代的GPU,而Graphcore就是第三次革命。」因為Graphcore率先提出了為AI計算而生的IPU。

Graphcore被許多業內大佬看好,目前已經獲得了4.5億美金的融資,除了許多知名金融投資機構外,包括寶馬、博世、戴爾科技集團、微軟、三星等都是其戰略投資者。IPU也很爭氣,目前IPU GC2已經量產,並裝載在戴爾EMC DSS8440伺服器供客戶使用。此外,目前Graphcore在Microsoft Azure公有雲上開放了IPU服務,並且馬上將要推出和國內雲服務商的合作。

為什麼說IPU是面向AI設計的處理器?

首先,AI的工作負載與CPU、GPU提供的能力不太一樣。AI工作負載的特點有許多,比如非常大規模的CPU不擅長的那種並行計算,又比如數據結構非常稀疏。此外,AI工作負載屬於低精度計算,有大量的數據參數復用,還有靜態圖結構。以上種種都說明,AI負載是全新的計算負載。

其次,IPU解決了CPU和GPU沒能解決的問題。一般而言,一個AI模型的參數越多,那麼預測就越精準,為了讓AI發揮更大作用,模型會不可避免地變得越來越大。模型變大對應著更密集的計算,意味著需要更大的算力提升。然而,現有架構已經支撐不了這樣的增速,所以,必須有專門面向AI的處理器來解決性能問題。

IPU誕生於此次人工智慧興起期間,又主要解決CPU和GPU解決不了的問題,所以完全可以說,IPU是面向AI設計的處理器。

三大特性解決性能問題

首先,片上內存解決內存性能問題。這麼多年來,雖然內存主頻在提升,內存帶寬也在提升,但並沒有跟上性能提升的速度,為了解決這一問題,Graphcore的IPU採用了大規模並行的MIMD(多指令流多數據流),並且在片上放置了大量SRAM內存,因為它能將AI模型和數據放到晶片上,這一做法非常激進,但性能真的是非常高,相對於CPU或者GPU的內存方案,內存性能有10到320倍的提升。

多核計算提供並行能力。目前已量產的IPU處理器(GC2)片內有1216個核,支持7296個線程,也就是支持7296個應用程式同時運行,多核並行能力奠定了性能基礎。而想讓多核高效運行,當然離不開通信技術。

高效的多核通信技術。一個IPU的處理器內部的1216個核心之間通過一個叫BSP(Bulk Synchronous Parallel)技術實現通信,核與核之間通過8 TB/s的交換總線交流數據。據了解,Graphcore的IPU是全球第一款BSP處理器。此外,在不同IPU處理器之間,用IPU-Links實現通信,帶寬高達2.5 TB/s。

以上幾點特性的加持使得在自然語言處理的BERT、ResNeXt這樣的機器視覺場景下,Graphcore的IPU相對於GPU表現出許多優勢,這裡作為對比的GPU都是英偉達的上一代旗艦V100。談到英偉達最新的A100時,盧濤表示對自己的產品也非常有信心。

看到這裡,你就會發現,IPU最大的特點和優點其實就是一個字:快!

晶片設計只是第一步,配套工具鏈也很重要

對用戶來說,AI晶片真的是太多了,Github上有人總結了AI晶片的全景圖,一大類是各種巨頭,包括谷歌、AWS、Facebook這樣的超級網際網路公司以及IT巨頭;另一大類是老牌晶片設計廠商,比如英特爾、英偉達;最後一類是各種初創公司。AI晶片領域真的是不要太擁擠,看起來一片繁榮,但有時候選擇太多也不是一件好事。

從晶片廠商看來,晶片設計完成後只是做了第一步,配套的工具鏈也非常重要。在開發人員看來,選擇一個AI晶片平台的成本其實很高,開發人員需要熟悉這一平台,熟悉晶片配套的各種軟體工具,熟悉從開發、訓練、調試、部署、推理等方方面面。為了降低用戶選擇新平台的障礙,Graphcore做了許多工作。

據盧濤介紹,IPU支持的BSP協議能把整個計算邏輯分成計算、同步、交換三部分,對軟體工程師或開發者來說,能讓編程難度顯著降低,因為它不用處理「鎖(Lock)」的問題,有過開發經驗的人應該知道鎖的問題,如何避免「死鎖」,如何優化「鎖」是需要大量實踐教訓才能做的事情。

在晶片配套的開發軟體上,Graphcore準備的也非常完備。分析機構Moor Insights & Strategy的分析師表示, 「Graphcore是我們目前已知的唯一一家將其產品擴展到囊括如此龐大的部署軟體和基礎架構套件的初創公司。」

Graphcore配套的開發軟體叫Poplar SDK,它是介於硬體平台和機器學習框架之間的工具,Poplar SDK支持各種常見的機器學習開發框架,比如TensorFlow、PyTorch和ONNX。

為了簡化部署,Poplar SDK還提供容器化部署,能快速啟動和運行起來。此外,也支持包括微軟Hyper-V在內的虛擬化技術,支持Ubuntu、紅帽以及CentOS等常見的Linux發行版。

5月,Graphcore還推出了一個叫PopVision Graph Analyser的分析工具。開發者、研究者在使用IPU進行編程的時候,可以通過PopVision這個可視化的圖形展示工具來分析軟體運行效率,並進行調試調優。

IPU是第三大AI晶片平台

雖然晶片門類很多,看似選擇很多,但從實際部署來看,IPU是僅次於GPU和谷歌TPU的第三大部署平台,Graphcore的商業化合作進展其實非常快,目前,基於IPU的應用已經覆蓋了機器學習的各個應用領域,包括自然語言處理、圖像/視頻處理、時序分析、推薦/排名及機率模型等。

不久前的Intelligent Health峰會上,微軟分享了如何使用IPU訓練CXR(胸部X光射線樣片),幫助醫學研究人員進行新冠肺炎的快速診斷。微軟用IPU在30分鐘內完成了傳統GPU需要5個小時才能完成的訓練工作量。

在金融領域涉及算法交易、投資管理、風險管理及詐騙識別的場景中,相對於GPU,IPU可以更快、更準確地發揮人工智慧的能力。

在醫療和生命科學領域,IPU的使用可以讓人工智慧在新藥發現、醫學圖像、醫學研究、精準醫療等場景中的過程加速。

在電信領域的智慧網絡、5G創新、預測性維護和客戶體驗方面,由於性能表現遠高於GPU,IPU的創新技術和能力也展示出了較高價值。

在中國市場,Graphcore與阿里巴巴和百度兩家網際網路巨頭建立合作關係。OCP峰會上,阿里巴巴異構計算首席科學家張偉豐博士宣布了Graphcore支持ODLA的接口標準;Wave Summit 2020上,百度宣布Graphcore為百度飛槳硬體生態圈共建合作夥伴,此舉對於Graphcore在中國市場的發展非常重要。

關鍵字: