12. ChainerX = NumPy-like ndarray + autograd
• in C++ w/ a thin binding layer
= far less host-side overhead
• with pluggable device backends
= open to quickly add a new device support
• with pure C++ API
= available for Python-free native apps
Speed
Environment Support
Quick Deployment
13.
14. ChainerX Python API: namespace
• NumPy 互換 API
• NN 向けの関数も提供
( , など)
• デバイスを指定可能
• で微分可
能な配列へ
import chainerx as chx
x = chx.ones((2, 3),
dtype=chx.float32,
device='cuda:0')
y = (x + 1).require_grad()
z = chx.exp(y).sum()
z.backward()
19. Model compiler
Execute models written in Python without CPython
Python
Chainer
ONNX+
ChainerX
VM
Execution with
ChainerX
Vendor-specific
graph formats
Native binary
Tracing
(ONNX-Chainer)
Translation
(Chainer to ONNX)
20. Model compiler
Preserves the logics written in Python syntax
• Define-by-Run model precompiled into static graph
• Debug with CPython interpreter and ship/optimize with the
model compiler
21. Chainer/CuPy v6 roadmap features (highlight)
• ChainerX
• NHWC layout
• Inference loop abstraction
• Unified Link interface
• ONNX-Chainer integration
• Stabilize cupy.fuse
• Shared memory pool with
ChainerX