RubyKaigi 2018 で Ruby Association の助成を受けて開発していた(そして、現在も開発を継続している) Cumo という Ruby 用の CUDA を用いた行列演算ライブラリの話をしてきたので資料をおいておきます。
Ruby 界隈では Python 界隈ほど数値演算をしている人たちはいないので、なぜそもそも GPU が必要なのか、から CUDA プログラミングの基礎も含めて説明しているので、CUDA プログラミングをやったことがない人でも安心してご参照いただけます。
大きな成果としては Chainer の Ruby port 実装である red-chainer の mnist example において、Numo (Cumo の元となった CPUを使う行列演算ライブラリ)を使う場合と比較して75倍の速度向上が見られました。 Ruby 3 は3倍の速度を謳っていますが、Cumoは75倍でした。75倍でした。
Cumo の開発は個人で趣味の時間で行っており、まだまだ道半ばです。開発に興味がある人は自分にお声がけしてくれれば Contributor を増やしたいので開発方法から伝授します。また援助も募集しています。具体的には GPU の CI サーバ代金が欲しい。。。 よろしくお願いいたします。
https://github.com/sonots/cumo