在日前舉辦的GTIC 2020上,光子算數創始人兼CEO白冰發表了一場題為《AI芯片的另一條路:光子芯片》的主題演講。作為一家國內少有的光子AI芯片賽道玩家,白冰在演講中與大家分享了光學芯片的工程化進展、市場定位及目標客戶、具體研發實施路徑及相關適配算法等話題。
一、光學芯片工程化進展,已至測試階段
與常規數字芯片不同,白冰所創立的光子算數,采取了另外一條技術路線——光子芯片。
白冰說,用光學做計算處于比較早期的階段。目前光子算數團隊已將其做成測試級的產品,并于今年放至服務器廠商客戶處進行測試。
作為一家初創公司,光子算數和高校、研究所等幾家單位共同工作。其早期樣片集成了幾百個不同的光學單元,比如有電光轉換,把電信號加載到光載波,然后通過傳播到片內的光學組合,完成一些特定的函數變換。跟傳統的計算特征不同,它不是面向加減乘除,而是直接完成一個復雜的變化過程。
這被稱為可編程光子陣列芯片FPPGA(Field Programmable Photonic Gate Arrays),其中的光學單元可以通過電控,控制重新的連接組合方式,實現不同的復雜函數。也就是說,FPPGA具有可重構的特性。
光學芯片加速的不是完整算法,和所有的數字芯片一樣,光學芯片面向復雜函數做加速計算,其計算對象是特定算子。光的劣勢在于不是特別靈活,但是在某些函數上有優勢。
整個系統是光電混合的,數據在光電兩部分中完成一個流動,執行一個完整的計算過程,由光學、電學芯片構成光電混合AI計算硬件系統。
光電混合系統仍要做到軟硬協同,開發適合光學加速的算法,使得光電混合系統的硬件物理架構與算法的運算/訪存特征相匹配。
從技術架構圖可以看到,左邊是電學部分,包含邏輯控制、緩存等,以及專用的定制化IP。考慮到與光學芯片匹配,這些IP與傳統的數字IP不一樣,需要定制化開發;右邊是光學模組,除了光學計算芯片外,還有一顆DFB激光器芯片,還有驅動、TIA以及小型的控制、電源芯片等組件。
中間采用熱插拔的方式,跟通信模塊一樣。之所以選擇這一方式,是因為光子算數團隊考慮到光芯片、電芯片放到一起,可能賣不出去,因為很難拼得過GPU,考慮到其產品定位,因此做成插拔型。
光子算數與高校一起打造了面向服務器的光電混合AI加速計算卡,目前已完成一些定制化加速任務,包括機器學習推理、時間序列分析等特定任務。白冰說,計算卡現在的性能可用,不過還比較初步,能做到36路1080P視頻同步處理,功耗不到70W,算力資源相對有限,混合精度下峰值算力接近20TOPS,光部分為低精度,電部分為高精度。
計算卡封裝有光子協處理引擎模塊,散熱器、驅動、控制器、TIA、一些計算控制部分和賽靈思FPGA芯片,數據在光電之間形成循環流動。光的定位是為電做協處理加速。
其中光子協處理引擎模塊用的是兩個QSFP28的光通信接口(每個都是100GB/s),光通信物理接口非常成熟,其光學帶寬大約達200GB/s,典型功耗達7W,算力在1.2TOPS左右。該模塊支持熱插拔,不需要經過預調,內部封裝了一些適合于用光學做的特殊的算子函數,比如隨機投影、高維空間變換映射、壓縮、小規模卷積、時間序列等高算子。現在該模塊還比較初步,下一階段,光子算數會進一步擴大其規模。
光子協處理引擎模塊里面是兩層結構,上面是控制模組,其二級控制緩存處理隨時可以換,以適應下一步軟件迭代;下面是光學運算模組,包含整個光學計算部分,其中集成了大量的光學單元,為了一些特定的函數,可以做低延時、低能耗的變換過程。
完整計算過程是FPGA接收的數據從電接口進來,經過驅動放大,驅動光芯片上的調優器,把信號再返到光上,經過片內傳輸完成變換,然后再變成電信號返回。
目前光子算數已將一些光電混合AI加速計算服務器提供給機房和IDC試用與測試,接口是標準的PCIe口。此外,其服務器也與一些國產操作系統和CPU廠商做了適配。
白冰坦言,該服務器目前性能仍較有限,70W運行功耗下,大概能做三四十路的視頻同步處理,跟純電比沒有那么強。
下一步,他們考慮將光的部分帶寬擴大,進一步提升算力。當前在光通信領域,100GB/s是主流,200GB/s比較少,400GB/s、800GB/s主要有一些大廠在做,目前還沒推出產品。盡管做這塊成本較高,但這是比較切實可行的已有方案。
二、熱插拔式模塊,可由大廠軟件調用
白冰談到的第二個話題,光學芯片的產品定位,即這個東西做完之后,賣給誰?
如果想在云端替代NVIDIA GPU,是非常困難的,其核心競爭力在于它的軟件工具。把電和光放到一張卡上,要開發完整的軟件套件,工作量非常大且代價很高。當然云端加速計算卡也可以做定制化,但定制化在云端的適用空間會相對有限,這是做云端AI芯片的所有公司共同面臨的窘境。
光子算數為什么選擇做成熱插拔方式?實際上,這是將適合用光學做的特定算子封裝到光學模塊里,通過熱插拔接口和國內大廠的加速計算卡插在一起,這種接口制都是成熟的,開發者使用大廠的軟件工具,即可通過API調用光子算數的模塊內嵌特定算子。面向具體應用,開發者通過大廠軟件工具,開發由光子算數的光學算子與大廠原有的電學算子組成的光電混合算法整體。
光子算數對自己的市場定位是提供傳統加速計算卡的升級組件,使傳統加速計算卡提升性能、降低能耗、降低成本,不受制于軟件工具。消費者依然買大廠的卡和工具,如需升級,即可選用光子算數的模塊。白冰提了一個形象的比喻,用一張傳統卡加上光子協處理引擎模塊的效果,相當于給汽車配了一個渦輪增壓。
三、研發實施路徑:算法先行,硬件跟進
白冰談到關于研發路線。他們研發的內容是系統性工程,相較于設計新型的光學計算單元,難度是可以克服的。
更多的,其行業特征特別像光模塊,它的行業拓展是小芯片、大組裝,其封裝和組裝成本占整個的70%,是一個系統工程。更主要的,要做軟硬系統的匹配,同時硬件要做到光與電的協同,其中包括一些算子、標定的東西并涉及到一些關鍵技術。
最核心的,要做適合光學做的算法,算法先行,硬件跟進。目前市面上的傳統算法不太適合光學芯片去執行,計算機發展這么多年,一直是軟和硬耦合在一起發展,“硬”一直是數字芯片,所以算法里嵌了很多數字芯片的基因,用光學硬件很難加速。
因此首先要開發適合光學做的算子,給光學算子配一些數字算子,去組成完整的算法,然后來分析光電混合算法的運算和訪存特征,再之后再設計硬件,如何給算法加速。
“這是我們做的核心關鍵思路,這也是為什么很多公司目前做不出來的原因。”白冰說。
四、適配光學計算的算法示例
那么,哪些算法適合用光學計算去處理呢?
白冰舉了些例子,比如光學隨機投影,用光學芯片物理實現無需復雜精確控制,加工容差大、一致性要求低。該方案有循環的效果,不是卷積,而是對數據直接進行維度的變化,直接能做非線性的處理,比如升維或壓縮這樣。
例如對平面上的目標進行分類,用一條曲線可以把它分開,曲線是比較復雜的,算法里面可能對應很多層,在處理之前,可以將數據扔到光學芯片里,做一個升維操作,數據從二維空間變到三維、四維空間,多了Z軸。這個投影用光學做的話沒有代價,在電里面用一個線性的平面就可以把兩類目標區隔開,可以把十層的網絡壓縮到兩層,這樣就是投影變換,光學芯片會有內部的架構。
光子算數把光學函數和數字算子組成了關鍵的光電混合算法,經嘗試,至少可以跟市面上主流的算法做更新。
比如基于光學隨機投影做目標識別遷移學習時,后半部分進行重新訓練,算法訓練量還是很大的。其實可以不走綠色部分,直接在藍色塊用光學芯片做預處理,后面加簡單的線性層,就可以完成任務,做一個維度的升維變化。
再比如訓練時,通常會用BP,連續求導會有梯度消失或爆炸的問題,另外訓練量也比較大。用光學做,可以直接將輸出層Loss通過光學隨機投影直接回傳到不同的權重層,每層并行獨立更新權重,這樣可以做并行訓練處理并且避免了連續求導的過程。
盡管這一領域相對早期的,主要面向特定化的市場,但可以看到,它已在某些領域有些成熟化的產品出現和得到應用。由于當前光學芯片主要作為協處理器,光子算數也在持續地與做電學芯片的大廠積極溝通合作。
責任編輯:PSY
-
計算
+關注
關注
2文章
450瀏覽量
38821 -
AI
+關注
關注
87文章
30947瀏覽量
269213 -
光子芯片
+關注
關注
3文章
99瀏覽量
24422
發布評論請先 登錄
相關推薦
評論