Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Glow: LLVM-based machine learning compiler


Glowに関しては、先週の木曜日に、今日は、 Facebook Glow Compiler のソースコードをグダグダ語る会という勉強会を開催しました。

2018 LLVM Developers'Meetingの Keynote である[http://llvm.org/devmtg/2018-10/talk-abstracts.html#keynote1 Glow: LLVM-based machine learning compiler
Nadav Rotem, Roman Levenstein]、ビデオはこちら

引用
    Glow is an LLVM-based machine learning compiler for heterogeneous hardware that's developed as part of the PyTorch project. It is a pragmatic approach to compilation that enables the generation of highly optimized code for CPUs, GPUs and accelerators. Glow lowers the traditional neural network data-flow graph into a two-phase strongly-typed intermediate representation (inspired by SIL). Finally Glow emits LLVM-IR and uses the LLVM code generator to generate highly-optimized code. In this talk we'll describe the structure of machine learning programs and how Glow is designed to compile these graphs into multiple targets. We'll explain how we use the LLVM infrastructure and go over some of the techniques that we use to generate high-performance code using LLVM.

そう、Glow は CPU用のバックエンドには、LLVMを使っているんですよ。

勉強会の時も出たんですが、CUDAのバックエンドは無いんですよね。OpenCLなんですよ。
x86Intel GPUOpenCLIntelから提供されていますが、PyTorch 1.0の発表の時に、エコシステムのパートナーとして発表されたMarvell、Cadence、IntelEsperantoQualcomm
Qualcommは、GPUOpenCLをサポートしているようですが、Marvell、Cadence、EsperantoOpenCL をサポートしているんですかね。。。