Progress of Ruby/Numo: Numerical Computing for Ruby

0
どみにをん525 @Dominion525

メリットは、数値演算を簡潔に書けることとスピード。#RubyKaigiB

2017-09-19 16:51:31
PIXTA Engineering | ピクスタ開発部 @pixta_tech

NArrayのメリットは簡潔であることと、速度が速いこと #rubykaigi #rubykaigiB

2017-09-19 16:51:49
そのっつ (Naotoshi Seo) @sonots

あー、a[2,3,4] とかって ruby 書けないから a[[2,3,4]] になってしまうのか #rubykaigib

2017-09-19 16:52:19
黒曜@Leaner Technologies @kokuyouwind

Numoを使うと、2つの配列の各要素足し合わせをzipを使わず書ける。またNativeCodeになるのでベンチマークでは230倍高速だった。 #rubykaigi #rubykaigiB

2017-09-19 16:52:28
Shigeru @e4geru

#rubykaigib NArrayとPycallでnumpyを呼び出した場合どうなるんだろう

2017-09-19 16:53:35
黒曜@Leaner Technologies @kokuyouwind

Sliceをviewにできる。sliceは単なる参照になるので、書き込むとslice元が変わる。これによりメモリ領域やコピーコストを節約できる。 #rubykaigi #rubykaigiB

2017-09-19 16:54:28
PIXTA Engineering | ピクスタ開発部 @pixta_tech

a配列の特定部分を切り出した配列bをviewと呼ぶ。b配列(view)はa配列の特定の部分を参照している #rubykaigi #rubykaigiB

2017-09-19 16:54:46
黒曜@Leaner Technologies @kokuyouwind

broadcasting。次元ごとに要素を取り出して演算を行う感じ。[[a, b]] * [[x], [y]] が[[a*x, a*y], [b*x, b*y]]みたいになる。 #rubykaigi #rubykaigiB

2017-09-19 16:56:18
PIXTA Engineering | ピクスタ開発部 @pixta_tech

Maskingを使用して、ある条件がtrueとなる値のみ処理することが簡単にできる #rubykaigi #rubykaigiB

2017-09-19 16:57:00
Kazuhiro Serizawa @seri_k

a = Numo::Dfloat[-1, 1, -3, 4]; a < 0 #=> [1, 0, 1, 0]みたいにできるの、ステップ関数実装するのに便利そう #rubykaigiB

2017-09-19 16:57:14
斎藤ただし, Tadashi Saito @_tad_

Comparable じゃなければ > とかもbool返すんじゃじゃなくていい、か。なるほど。 #rubykaigi #rubykaigiB

2017-09-19 16:58:04
PIXTA Engineering | ピクスタ開発部 @pixta_tech

NMatrixはNumPyに代替できない。Broadcasting, Maskingとcoerceが使用できないため。 #rubykaigi #rubykaigiB

2017-09-19 16:58:17
黒曜@Leaner Technologies @kokuyouwind

Maskingのところ聞きそびれた。NArrayと同様のライブラリにNMatrixがあるが、View on Slice以外の機能がなく開発も終了している。 #rubykaigi #rubykaigiB

2017-09-19 16:58:40
mexelout @mexelout

1万倍遅いってそれ終わらない奴 #rubykaigi #rubykaigiB

2017-09-19 16:59:47
黒曜@Leaner Technologies @kokuyouwind

加算性能などで見てもNMatrixはNArrayより3桁~5桁レベルで遅い。 #rubykaigi #rubykaigiB

2017-09-19 17:00:17
PIXTA Engineering | ピクスタ開発部 @pixta_tech

Numo::Linalgは線形代数のModuleだが、実態はBLAS/LAPACKのラッパーである #rubykaigi #rubykaigiB

2017-09-19 17:00:35
斎藤ただし, Tadashi Saito @_tad_

パフォチューせずにNumPyと2倍くらいの差なら、十分戦えそう #rubykaigi

2017-09-19 17:00:55
黒曜@Leaner Technologies @kokuyouwind

Numo::Linalgは背景知識が足りてないから理解しきれなかった。Numo::GSLは既にRuby/GSLがあるが、手書きのラッパでメンテナンスが大変そうなので別に作った。 #rubykaigi #rubykaigiB

2017-09-19 17:03:32
Kyohei Shimada @kyohei_shimada

筑波大の高橋先生の名前が(高速フーリエ変換実装の話) #rubykaigib #rubykaigi

2017-09-19 17:06:12