關注模型壓縮、低比特量化、移動端推理加速優化、部署

註:PC端微信鏈接打不開請用手機打開

業界新聞

  • Xilinx 宣布收購 Solarflare | 賽靈思摘要:Solarflare 是一家全球領先的高性能、低時延網路解決方案提供商,其客戶橫跨金融科技到雲計算。通過此次收購案,賽靈思能夠將其業界領先的 FPGA、MPSoC 和 ACAP 解決方案與 Solarflare 的超低時延網路介面卡(NIC,網卡)技術以及 Onload 應用加速軟體相結合,從而實現全新的融合 SmartNIC 解決方案,加速賽靈思的「數據中心優先」戰略及向平台公司轉型之路。
  • 蘋果新 iPhone 大曝光:A13 晶元 AI 算力飆升,後置三攝設計 | 雷鋒網摘要:與 A12 相比,A13 的 CPU 可能將繼續採用 2 個大核 + 4 個小核的架構,或者採用 3 個大核,但蘋果會通過架構微調來提升 CPU 頻率。從單核和多核的情況來看,蘋果 A 系列的單核 CPU 表現一直是穩步提升,但多核表現不太穩定,比較難以預測。

    GPU 方面,依據過去的增長規律,Jason Cross 認為 A13 在 GPU 方面的 3DMark Sling Shot 評分可能會在 4500 分左右。不過,在圖像處理和 Neural Engine 方面,Jason Cross 認為蘋果將會在 A13 上大幅度提升這一塊的表現,來滿足日益增加的 On-Device 機器學習和圖像處理的需求——一個可參考的對象是,A12 比 A11 的 Neural Engine 運算速度提升了 8 倍,據此 Jason Cross 認為這一次的提升可能是 3 倍到 5 倍。

  • 英特爾發布第九代酷睿移動處理器,為筆記本電腦而生 | 愛范兒摘要:英特爾於 4 月 25 日正式推出了面向筆記本電腦市場的第九代酷睿系列處理器,仍基於 14nm Coffe Lake 架構。其中未鎖頻版 Core i9-9980HK,採用 8 核心 16 線程,基礎頻率 2.4GHz,睿頻達 5GHz,還支持 Thermal Velocity Boost 及 16MB 緩存。第九代酷睿移動版處理器將支持英特爾 Dynamic Tuning 技術,可動態調整性能與溫度。
  • Docker開發者現在可以在自己的桌面上構建Arm容器 | Docker摘要:Docker與Arm公布一項重要的全新合作夥伴計劃:兩家公司將共同為Docker的工具提供面向Arm平台的更佳支持能力。此次合作的主要思路,是幫助Docker開發人員輕鬆立足自己的x86桌面設備為Arm平台構建應用程序,而後將應用成果部署至雲端(包括基於Arm的AWS EC2 A1實例)、邊緣以及物聯網設備。具體來講,開發者的Arm容器構建流程將與以往保持一致,無需任何交叉編譯步驟。
  • 百度購買 Arteris IP 的FlexNoC?互聯產品用於數據中心的崑崙人工智慧(Kunlun AI)雲晶元 | design-reuse摘要:今天宣布Baidu已購買Arteris IP FlexNoC互連,用於該公司的供數據中心使用的高性能崑崙人工智慧雲晶元。百度的崑崙人工智慧雲晶元是獨一無二的產品,這是因為,無論它們是位於數據中心,還是位於車輛或消費電子等「周邊」設備中,既能夠進行人工智慧訓練,也能夠進行推理。
  • 曠視研究院新出8000點人臉關鍵點,堪比電影級表情捕捉 | 知乎摘要:曠視提出了「 8000 點人臉關鍵點定位技術」——可通過 8000 個 3D 關鍵點實現全臉的精細定位,支持各種姿態表情,能在移動端實時運行。最終訓練的Shufflenetv2模型運算量為 32 MFLOPS,在中端處理器驍龍660 上的平均運行時間為:10.5ms,而在高端處理器驍龍855 上的平均運行時間可達:4ms,幀速率 250fps。

論文

  • CNN更新換代OctConv!性能提升算力減半,還即插即用 | 知乎摘要:Facebook和新加坡國立大學聯手提出了新一代替代品:OctConv(Octave Convolution),效果驚艷,用起來還非常方便。OctConv就如同卷積神經網路(CNN)的「壓縮器」。用它替代傳統卷積,能在提升效果的同時,節約計算資源的消耗。比如說一個經典的圖像識別演算法,換掉其中的傳統卷積,在ImageNet上的識別精度能獲得1.2%的提升,同時,只需要82%的算力和91%的存儲空間。
  • 吊打YOLOv3!普林斯頓大學提出:CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法,已開源! | CVer摘要:截止2019年4月20日,據Amusi所了解,CornerNet-Lite 應該是目標檢測(Object Detection)中 FPS和 mAP trade-off 最佳演算法。 CornerNet-Saccade 是追求高準確率(mAP)的同時,儘可能提高速度(FPS),即準確率優先,其對標於CornerNet等演算法。創新點:引入Saccade思想CornerNet-Squeeze 是追求高實時性(FPS)的同時,儘可能提高準確率(mAP),即速度優先,其對標於YOLOv3等演算法。創新點:引入SqueezeNet優化思想。CornerNet-Saccade 檢測圖像中可能的目標位置周圍的小區域內的目標。它使用縮小後的完整圖像來預測注意力圖和粗邊界框;兩者都提出可能的對象位置,然後,CornerNet-Saccade通過檢查以高解析度為中心的區域來檢測目標。它還可以通過控制每個圖像處理的最大目標位置數來提高效率。CornerNet-SqueezeNet 是受SqueezeNet啟發,CornerNet-Squeeze將 residual block 替換為SqueezeNet中的 Fire module 。受MobileNet啟發,CornerNet-Squeeze將第二層的3x3標準卷積替換為 3x3 深度可分離卷積(depth-wise separable convolution)。
  • [SysML] Accurate and Efficient 2-Bit Quantized Neural Netowrks [機器之心解讀]

    摘要:為得到整體的量化神經網路(QNN),這篇論文提出分別用於權重和激活的量化技術:

  1. 激活量化的技術「PArameterized Clipping acTivation(PACT)」:在訓練期間使用 ReLU 函數的參數化截略來確定量化的輸出範圍的方案;
  2. 用於權重量化的技術「Statistics-Aware Weight Binning(SAWB)」:可基於權重分布的統計特性確定能最小化量化誤差的最優比例因子,無需執行窮舉搜索。組合使用 PACT 與 SAWB 可以得到一種二位量化神經網路(2-bit QNN),其分類準確度在一些常見的模型和數據集上能達到當前最佳水平。

  • [SysML] Optimizing DNN Computation With Relaxed Graph Substitution [機器之心解讀]摘要:DNN 可被視為由(數學)運算元組成的計算圖。TensorFlow、PyTorch 和 TVM 等會將計算表達為有狀態的數據流圖,並在訓練期間優化圖,並會在整個過程中變換為新圖。新圖相比於迭代前的圖通常會有嚴格更好的運行時間性能。這種「嚴格更好」會得到深度學習框架的非常受限的搜索空間,也是高計算成本的一大原因。直觀地說,可以認為優化問題存在諸多約束。約束越多,演算法得到解的時間就會越長。例如,如果 conv3 是一個 3×3 卷積,其核可分解為使用兩個 1×3 核執行卷積(6 次乘法)但結果還是一樣,從計算角度看,每次卷積的成本更低了。此外,通過將卷積分為兩個可以並行執行的更小卷積,執行整個卷積的速度也可能會更快。這一思路兩個方向都有效,而且這正是圖替換思想背後的基本直覺。如果源圖和目標圖計算出的輸出在外部邊上是數學上等價的,則圖替代就是有效的。最後說明一點,寬鬆化的思路可按如下方式展示。考慮以下等價表達式以及從上面的表達式到下面的表達式所採取的步驟:

但是,如果系統每次迭代時都有約束——新子圖必須嚴格優於當前子圖;則第二個表達式就不會被允許,因此也就無法得到最終的表達式。這就體現了放鬆約束條件(寬鬆化)的重要性。因此為了解決這個問題從而降低計算成本,這篇論文提出了一種寬鬆化的圖替代方法,可通過放鬆每個迭代約束的「嚴格更好」來實現複雜圖優化的探索。這能增大問題的可行空間,並能在每次迭代時更快找到解。此外,研究者還引入了回溯方法(backtracking),可搜索一組寬鬆化圖替代來尋找每次迭代的最優解(沒有嚴格更好的約束)。

  • 英特爾「演化演算法」新框架:29個Python代碼塊,自動生成新演算法 | 新智元 [論文]摘要:英特爾的研究人員提出一種新的自動演算法生成器(AAD),利用演化演算法框架,以Python語言的基本子集作為語法架構,能夠對29個數組/向量問題的代碼塊進行組合,通過學習,自動生成更複雜問題的解決方案。自動演算法發現器(AAD),這是一種用於合成高複雜度計算程序的演化演算法框架。此前的演化演算法依賴於客觀的適應函數,這在給演算法設計上增加了難度。AAD是用於綜合高複雜度程序的演化框架,它以Python語言的基本子集作為語法架構。使用AAD能夠對29個數組/向量問題的代碼塊進行組合,其中既有最大值、最小值,矩陣翻轉這類簡單問題,也有更具挑戰性的問題,如排序和矩陣向量乘法等,對於輸入沒有大小限制。為了應對複雜需求帶來的各種挑戰,AAD工具還能實現與高性能計算(HPC)技術的結合。總的來說,與現有技術相比,採用PGE的演化演算法能夠解決類似或更高複雜性的問題。

開源項目

  • xperroni/Valdroid: Binary build of Valgrind for Android摘要:Android版本Valgrind。
  • darchons/android-gdb: GDB fork targetting Android/Fennec development 摘要:Android版gdb,用的時候adb push到手機上。註:不是gdbserver。
  • 用Modin利用多核加速Pandas計算 | 機器之心解讀摘要:Modin 是加州大學伯克利分校 RISELab 的一個早期項目,旨在促進分散式計算在數據科學領域的應用。它是一個多進程的數據幀(Dataframe)庫,具有與 Pandas 相同的應用程序介面(API),使用戶可以加速他們的 Pandas 工作流。例如,在一台 8 核的機器上,用戶只需要修改一行代碼,Modin 就能將 Pandas 查詢任務加速 4 倍。Modin 所做的只是增加了 CPU 所有內核的利用率,從而提供了更好的性能。該系統是為希望程序運行得更快、伸縮性更好,而無需進行重大代碼更改的 Pandas 用戶設計的。這項工作的最終目標是能夠在雲環境中使用 Pandas。
  1. Modin 的架構數據幀分區,Modin對數據幀的分區模式是沿著列和行同時進行劃分的,因為這樣為 Modins 在支持的列數和行數上都提供了靈活性和可伸縮性。

    1. Modin 系統架構被分為不同的層:
      1. Pandas API 在最頂層暴露給用戶。
      2. 下一層為查詢編譯器,它接收來自 Pandas API 層的查詢並執行某些優化。
      3. 最後一層為分區管理器(Partition Manager),負責數據布局並對發送到每個分區的任務進行重組、分區和序列化。

Modin 利用 Ray 加速 Pandas 的 notebook、腳本和程序庫。Ray 是一個針對大規模機器學習和強化學習應用的高性能分散式執行框架。同樣的代碼可以在單台機器上運行以實現高效的多進程,也可以在集群上用於大型計算。

博文

  • ARM嵌入式開發中的GCC內聯彙編簡介 | Linux公社摘要:在針對ARM體系結構的編程中,一般很難直接使用C語言產生操作協處理器的相關代碼,因此使用彙編語言來實現就成為了唯一的選擇。但如果完全通過彙編代碼實現,又會過於複雜、難以調試。因此,C語言內嵌彙編的方式倒是一個不錯的選擇。然而,使用內聯彙編的一個主要問題是,內聯彙編的語法格式與使用的編譯器直接相關,也就是說,使用不同的C編譯器內聯彙編代碼時,它們的寫法是各不相同的。本文介紹在ARM體系結構下GCC的內聯彙編。
  • 關於CPU Cache -- 程序猿需要知道的那些事 | cenalulus Tech Blog摘要:作者從為什麼要有CPU Cache到多級CPU Cache、什麼是Cache Line、存放數據規則、N-Way Set Associaive、Cache淘汰策略介紹了CPU Cache。
  • 多角度解析Tesla FSD自動駕駛晶元 | StarryHeavensAbove摘要:在剛剛結束的Tesla Autonomy活動中,Tesla非常「大方」的介紹了自己的Full Self-Driving (FSD) Computer從系統到晶元的很多細節。從晶元來看,其「透明度」超過了除Google第一代TPU之外所有的AI相關晶元。實際上,和Goolge TPU的情況類似,在這次發布之前,Tesla也做了一定的專利布局,這正好讓我們可以從不同角度更深入的了解Tesla的FSD晶元。
  • 華為「方舟編譯器」到底是個什麼鬼? | 嵌入式資訊精選摘要:方舟編譯器作為全新的系統及應用的編譯和運行機制,從DNA層面對安卓進行了改造,解決了安卓應用邊解釋邊運行的低效問題,讓手機能直接聽懂「高級語言」,可以說是近幾年來安卓陣營最大的根本性革新。它大幅降低了安卓系統隨機卡頓的問題,打破了人機之間的藩籬,讓用戶能直觀感受到的就是使用體驗更加持久流暢。
  • 視頻回放:諸宸辰-CVPR2019:基於Anchor-free特徵選擇模塊的單階目標檢測 | 極市平台摘要:CMU博士生諸宸辰,為我們分享了其在CVPR2019的工作:基於Anchor-free特徵選擇模塊的單階目標檢測。
  • 豆瓣評分9.7!《樹莓派開始,玩轉Linux》 | 程序員書庫摘要:這本書,是以樹莓派為基礎,講解Linux操作系統,讓你不僅可以了解樹莓派的背景知識,樹莓派的使用,Linux使用,還能了解到操作系統的原理並且還有實操項目,你會不會有想看它的衝動呢?不賣關子了,這本書就是——《樹莓派開始,玩轉Linux》。章節目錄除了基本Linux外,還有安裝Spark計算pi的實例,搭建集群,跑YOLO模型等等案例。

往期回顧

  • 2019-04-13
  • 2019-03-31

Wechat ID: NeuroMem

Editor: github.com/ysh329Project: github.com/ysh329/aweso

本作品採用知識共享署名-相同方式共享 2.0 通用許可協議進行許可。
推薦閱讀:
相关文章