10. 擬似コードで比較する
define-and-run
# ネットワーク定義
x = Variable(‘x’)
y = Variable(‘y’)
z = x + 2 * y
# 計算
for xi, yi in data:
eval(z, (xi, yi))
define-by-run
# 定義と計算が同時
for xi, yi in data:
x = Variable(xi)
y = Variable(yi)
z = x + 2 * y
データを見ながら
違う処理をしてもよい
10
11. デバッグのしやすさで比較する
define-and-run
# ネットワーク定義
x = Variable(‘x’)
y = Variable(‘y’)
z = x + 2 / y
# 計算
for xi, yi in data:
eval(z, (xi, yi))
define-by-run
for xi, yi in data:
x = Variable(xi)
y = Variable(yi)
z = x + 2 / y
実行時エラーと定義の
対応が取りづらい
エラーはただちに
確認できる
11
12. デバッグコードで比較する
define-and-run
x = Variable(‘x’)
y = Variable(‘y’)
w = 2 * y
w = PrintNode(w)
z = x + w
define-by-run
for xi, yi in data:
x = Variable(xi)
y = Variable(yi)
w = 2 * y
print(w)
z = x + w
特殊なノードを追加 ただのPythonのprint文
12
16. CuPyとNumPyの比較
16
import numpy
x = numpy.array([1,2,3], numpy.float32)
y = x * x
s = numpy.sum(y)
print(s)
import cupy
x = cupy.array([1,2,3], cupy.float32)
y = x * x
s = cupy.sum(y)
print(s)
32. MN-1: an in-house supercomputer
NVIDIA Tesla P100 × 1024
8 GPUs per node, 128 nodes in total
Inter-connected by InfiniBand FDR
2 HCAs per node, tree-like topology
スパコンランキング、産業領域で国内1位(世界12位)
32
33. ResNet-50のImageNetによる学習が15分
Team Hardware Software Batchsize Time Accuracy
He et al. P100 × 8 Caffe 256 29 hr 75.3 %
Goyal et al. P100 × 256 Caffe2 8,192 1 hr 76.3 %
Codreanu
et al.
KNL 7250 ×
720
Intel Caffe 11,520 62 min 75.0 %
You et al.
Xeon 8160 ×
1600
Intel Caffe 16,000 31 min 75.3 %
Akiba et al. P100 × 1024 Chainer 32,768 15 min 74.9 %
33