Slide 5
Slide 5 text
Numo::NArray Benchmark
• numpy's BroadCast(b),(c) is fast,
[python 2.7 + numpy loop=10000]
x = np.ones([1000,784], dtype=np.float32)
y = np.ones([1000,784], dtype=np.float32)
z = np.ones([1000,1], dtype=np.float32)
(a) x += y 5.1500
(b) x += z 4.1600
(c) x += 1.0 2.2600
(a) x -= y 5.1200
(b) x -= z 4.0700
(c) x -= 1.0 2.1000
(a) x *= y 5.1400
(b) x *= z 3.9200
(c) x *= 1.0 2.0500
(a) x /= y 5.6300
(b) x /= z 6.4200
(c) x /= 1.0 5.1400
[sec]
GBTU
GBTUFS
Z
B
Y
[
C
Y
D
Y
TDBMBS
º
×
º
×
º
×
GBTU
[ruby 2.5.1 + Numo::NArray 0.9.1.2 loop=10000]
x = Numo::SFloat.ones([1000,784])
y = Numo::SFloat.ones([1000,784])
z = Numo::SFloat.ones([1000,1])
(a) x.inplace + y 7.131974
(b) x.inplace + z 7.193444
(c) x.inplace + 1.0 6.813332
(a) x.inplace - y 7.172393
(b) x.inplace - z 7.689382
(c) x.inplace - 1.0 7.161590
(a) x.inplace * y 7.312234
(b) x.inplace * z 7.630061
(c) x.inplace * 1.0 7.427569
(a) x.inplace / y 21.111190
(b) x.inplace / z 20.350092
(c) x.inplace / 1.0 20.636417
[sec]
TBNF
YTMPXFS
but Numo::NArray’s BroadCast is not fast.
YTMPXFS
• The division of Numo::NArray is x3-4 times slower than numpy.
6.480560
3.696468
3.070180
6.197381
3.499792
3.383020
6.105243
3.560802
3.301580
6.609833
5.425440
5.449255
[sec]
JNQSPWFE
CZNZ13
GBTU
Y
GBTUFS
YGBTUFS