2017年4月2日 星期日

"ARM Compute Library for computer vision and machine learning" III - 總結

在實作上核心的實作是在各功能的 Kernel 類別實作中
因此若想瞭解可以去研讀各個繼承 IKernel 的 CL/NEON 實作
由系列文 II 多少可以了解 ARM Compute Library 是如何的工具
在官方的介紹也說明了這是 - a collection of low-level software functions
這樣的好處是設計簡單且易於使用, 若所需要功能不複雜, 其所提供的工具也相當堪用
但是若一個目的是需要使用多個 Kernel 的串連來達成
如此的應用就需要更進階的方式來作優化
以 OpenVX 來說即為其 Graph pipeline
基本上需要透過一個更為高階的抽象層
為問題帶入各個 stage 的分割與相關排程的分析
對於 ARM Compute Library 而言每個 function 需要 I/O image buffer
能接近這樣的方式在於兩個 stage 間以 Window + Thread 的 Tiling 方式
如此也僅是有限度地利用 data locality 的特性增加 cache 的有效性
況且對於 Load/Store 指令可是一個都沒能因此節省
(這需要能作 operation fusion 的 compiler)
這即是 ARM Compute Library 在效能與進階功能上的局限


然而若需要進一步解決上述的局限
會需要能針對 temporal/spatial scheduling 作 dynamic code generation 的 compiler以及 runtime
實作複雜度亦會大幅增加 (即 OpenVX/Halide 或類似的實作)

2 則留言:

lunashining 提到...

請問你知道有了這個opensource後該如何
去實作嗎??我對ARM不熟,只是會一點tensorflow 想知道怎麼去實作些已在電腦上跑過的project,是可以電腦train好直結在這跑嗎?

kobe 提到...
作者已經移除這則留言。

整合 MT-32 摹擬音源的 dosbox-patched

dosbox 對於許多老玩家並不陌生 提供了簡單的方式讓使用者能執行 DOS, Win 3.1/9x 的程式 相信多數用途是用來懷舊喜愛的遊戲 而音樂在遊戲中扮演相當重要的角色 在沒有強力計算與空間存放來支援 MP3/AAC 等 HQ 音樂 除了 sample rate 不高的...