從ISSCC Deep Learning處理器論文到人臉識別產品

新聞: 最近,韓國科學技術院的科研團隊開發出一種超低功耗的高性能人工智慧晶元,並在此基礎上開發出一套多功能、高效率的人臉識別系統。

其中說了幾個應用,感覺比較靠譜的是下面這個警察隨身佩戴,實時進行人臉識別的應用。(請忽略視頻的畫風)

(圖片來源於:KAIST)

這個晶元來自KAIST,它的基礎工作在今年的ISSCC上有過介紹,我之前的文章也進行了分析,大家可以參考一下。

「DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN Processor for General-Purpose Deep Neural Networks」

Dongjoo Shin, Jinmook Lee, Jinsu Lee, Hoi-Jun Yoo

KAIST, Daejeon, Korea

這篇文章提出的處理器同時支持CNN-RNN結合的操作,並實現較高的能耗效率(8.1TOPS/W)。

1. 挑戰

首先,CNN和FC/RNN兩類網路在運算和參數方面的需求有很大的不同。

這種差異也造成專門為CNN設計的硬體加速器不適合用於RNN網路,反之亦然。下面這頁還是比較清楚的說明了這個問題。

另外兩個挑戰分別是不同層處理的差異性以及對處理能力(包括運算和訪存)的挑戰。這裡是用VGG-16為例,是否具有普遍代表性是有疑問的。

2. 處理器架構

從大的架構上來看,作者並沒有試圖用一個架構來同時支持CNN和RNN,而是放了兩個不同的處理器。看到這裡,本以為作者會比較詳細的介紹一下這兩個處理器是怎樣有效的協同工作的,但是從ppt和論文都沒有舉例說明。後面的實驗結果部分也只是介紹了VGG-16的情況,不算一個完整的CNN+RNN的例子。

後面作者介紹了細節工作,首先給出了Convolution Processor的架構。這裡沒有太新鮮的東西。基本是由多個分布的卷積運算加速器,一個處理其它運算(polling,Relu...)的Aggregation core和一個Controller組成。

到此為止在大的架構上並沒有太大的新意。

3. 幾項具體技術

後面的幾點貢獻還是有借鑒價值的,包括:

– Mixed workload division method (在on-chip memory受限的情況減少off-chip memory的訪問)

由於on-chip memory大小受限,輸入層的圖像必須被分成若干部分。分割的方法包括:圖像分割 image division (ID),通道分割channel division (CD) 和混合分割mixed division (MD)。對於圖像分割ID的情況,為處理每一個分割圖像,相同的權重參數必須被多次從off-chip memory載入。對於通道分割CD的情況,對於單獨的一個分割圖像,最終的輸出元素無法計算,因此要進行多次off-chip memory訪問。混合分割就是混合使用了上述兩種方式,以達到更優化的效果。文章也給出了VGG-16中的可能分割模式和結果。

– Dynamic fixed-point with on-line adaptation (適應不同層的不同的數據分布)

在不同的層採用不同的定點數是由於不同層的數據分布(動態範圍)有較大不同。本文的主要貢獻是提出了一個on-line調整的方法(前人工作里有通過off-line training來獲得各個層的定點配置的方法)和相應的LUT-based的乘法器實現。

– Quantization table-based multiplier (將16bit weight轉換為4bit index;將乘法轉換為查表)

基本來說就是weight按4bit量化,先將輸入和16個weight值相乘存在Q-table里。後面在需要乘積就可以直接通過index查表獲得了。按文章的說法,有如下的結果。也可以看出,Zero skipping還是很實用的技術。

4. 實驗結果

實驗結果中分析了AlexNet和Fully-connected,LSTM層的實現結果。結果里並沒提到VGG-16的實現(處理能力的要求高很多),也沒太看出他們強調的8.1TOPS/W的效率是怎麼算的。

論文參考文獻:

[1] O. Vinyals, et al., 「Show and Tell: A Neural Image Caption Generator,」 Computer Vision and Pattern Recognition, pp. 3156-3164, 2015.

[2] Y. Chen, et al., 「Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks,」 ISSCC, pp. 262-263, 2016.

[3] B. Moons, et al., 「A 0.3-2.6TOPS/W Precision-Scalable Processor for Real-Time Large-Scale ConvNets,」 IEEE Symp. on VLSI Circuits, 2016.

[4] J. Sim, et al., 「A 1.42TOPS/W Deep Convolutional Neural Network Recognition Processor for Intelligent IoT Systems,」 ISSCC, pp. 264-265, 2016.

[5] S. Han, et al., 「EIE: Efficient Inference Engine on Compressed Deep Neural Network,」 IEEE/ACM Int』l Symp. on Computer Arch., pp. 243-254, 2016.

個人點評

看標題以為這個處理器是用單一架構同時支持CNN和RNN混合運算,但實際上還是用了兩套處理器各做各的。看來想用一個架構同時對CNN和RNN實現高效處理,滿足嵌入式系統需要的能耗效率還是很有挑戰的(也許是不可能的?)。

文章介紹的實現中的trick還是有借鑒意義的:

– Mixed workload division method

– Dynamic fixed-point with on-line adaptation

– Quantization table-based multiplier

T.S.

這裡可以看到我寫的大部分文章:Deep Learning Hardware - 我的文章

歡迎訂閱我的公眾號StarryHeavensAbove

推薦閱讀:

吳恩達 DeepLearning.ai 課程提煉筆記(4-4)卷積神經網路 --- 人臉識別和神經風格遷移
【論文簡評】人臉關鍵點檢測
人臉識別的美麗神話
40行代碼的人臉識別實踐
人臉活體檢測技術簡介

TAG:深度学习DeepLearning | 人脸识别 | 处理器 |