Vengineerの妄想

人生を妄想しています。

Intel nGraph Compiler stack


Intel nGraph Library が 何か名前が変わったというか。。。


 ・Bridge/Importer : Deep Learning Framework や ONNX のモデルを nGraphの内部IR表現にする
 ・nGraph Core     : 入力グラフから nGraphの内部IR表現を構築する
 ・Hyper Transformer / (sub graph partiition) :ヘテロな環境でのグラフ分割や割り当てをやるー。
 ・IA Transformer/NNP Transformer : これって、IA系 / NNP (Nervana)系ハードウェアに特化したIRの変形
 ・バックエンド : めちゃいっぱいある

nGraphの特徴は、バックエンドが豊富ということです。
 この部分を nGraph stack と呼んでいるようです。
 x86CPUのKernel APIとしては、
 ・nGraph Kernels
 ・MKL DNN
 ・Eigen
 ・MLSL
 Subgraph APIとしては、
 ・JITers
 ・Halide   ----- キター、Halide

その下のCPU実行では、OpenMPやTBB Flow Graphを使っています。

その他に
 ・NNP     Transformer  => Argon
 ・iGPU    Transformer => clDNN
 ・nGPU    Transformer => CUDA/cuDNN 
 ・PlaidML Transformer => LLVM / OpenCL / OpenGL / CUDA

何故か? NNP と iGPU の間に、「Upcoming Intel deep Learning Accelerator」なるものがあります。