Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
6 年寝ていた Cumo を AI と 3 か月で 叩き起こした話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Watson
November 07, 2026
Technology
66
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
6 年寝ていた Cumo を AI と 3 か月で 叩き起こした話
Watson
November 07, 2026
More Decks by Watson
See All by Watson
クラウドネイティブ時代に 進化し続けるFluentd
watson
0
42
RMagick, migrate to ImageMagick 7 #RubyKaigi #RubyKaigi2019
watson
0
10k
Magick
watson
0
12k
Improve JSON Performance
watson
2
1.1k
fastlane 奮闘記
watson
0
110
How to optimize Ruby internal.
watson
3
3.1k
iOS、AndroidアプリをRubyで
watson
1
520
RubyMotion 2.0
watson
6
2.9k
Differences CRuby/MacRuby/RubyMotion
watson
5
5.8k
Other Decks in Technology
See All in Technology
2026 Apache Flink Community Checkpoint
rmetzger
0
210
AWS構成から考えるWebセキュリティ ― WordPressの構築経験から考える公開範囲と更新運用【JAWS FESTA 2026 in AKITA】
cscengineer
PRO
2
390
eBPF 簡介 2026 版
shunghsiyu
0
190
AI時代に求められる優秀なTechLeadの振る舞い
pospome
11
16k
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
2
420
Metadata - Section 3 : Dublin Core Standard · DC
mohab1
0
120
BALLAS Technology Deck
ballas_inc
0
380
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
220
Bots in Kiro Crew (One point of contact for ongoing work) | Kiro: Zero to Hero 12
inariku
PRO
1
100
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
110
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
310
超⼩型・多⾔語検索モデル Bekko Embedding
hotchpotch
1
140
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
980
Documentation Writing (for coders)
carmenintech
77
5.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Marketing to machines
jonoalderson
1
6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
520
Amusing Abliteration
ianozsvald
1
380
The Invisible Side of Design
smashingmag
301
52k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
370
Transcript
大江戸Ruby会議11 / 大江戸フリートークス / 2026-11-08 6 年寝ていた Cumo を AI
と 3 か月で 叩き起こした話 Shizuo Fujita(@watson1978) 株式会社クリアコード Signed-off-by: @watson1978 Co-authored-by: Claude
自己紹介 @watson1978 Shizuo Fujita 株式会社クリアコード Ruby コミッター RMagick メンテナー Fluentd
コミッター oj メンテナー 2025 年 8 月から sonots さんの Cumo を引き 継いでメンテ
Cumo = GPU で動く Numo::NArray sonots さんが 2017 年に作った、CUDA 対応の多次元配列ライブラリ
Numo を Cumo に置き換えるだけで、だいたいそのまま GPU で動く require "cumo/narray" a = Cumo::SFloat.new(4096, 4096).rand b = a.dot(a.transpose) # cuBLAS GPU Float(b.sum) # で 実行 ここで結果を待つ
でも、6 年寝ていた 2017-11 2019-06 2025-08 2025-11 sonots さんが開発を始める v0.4.3 で止まる。その後
6 年間のコミットは 2 件だけ 引き継ぐ。まずは GCC 15・CUDA 12・Ruby 3.3 でビルドを通すところから v0.5.0 をリリース
2026 年 8 月、アクセルを踏んだ 緑の 3 か月= Claude との共著コミットが始まってから (2026
年 7 月までは共著 0 件) 201 237 75 25 8月 2025 30 19 15 9 7 9月 10月 11月 12月 1月 0 2月 0 3月 10 4月 2026 Shizuo Fujita の cumo へのコミット数(月別)。2026 年 11 月は 6 日まで 22 5月 2 6月 4 7月 8月 6 9月 10月 11月
2026-08-01 〜 11-06(約 3 か月)で 482 17 +61,594 88% 本の
PR をマージ 行を追加(削除は 13,646 行) 回リリース(v0.5.6 → v0.15.0) のコミットが Claude との共著 (519 件中 458 件)
なぜアクセルを踏めたか numo-narray Ruby・CPU 互換を保つ cumo Ruby・GPU 目指す目標が決まっている PyTorch や CuPy
にできることを、Cumo でもできるように する ……わかってはいても、自分では実装できなかったけど ここを目指す CuPy Python・GPU 正解はすでにわかっている PyTorch Python・GPU 計算式もアルゴリズムも決まっている。あとは Ruby として の書き味と、numo-narray とのインターフェース互換を保て ばいい
クロどん(Claude)とのやりとり 🤖 CuPy 参考にして実装しました せっかく GPU 使うんで LLM 推論やりたいぉ わい
クロどん いまどのへんにいるのかわからんので、GPT-2 をとっかかりに 自前の推論エンジンのベンチマーク作ってよ 🤖 実装しました。(すげーおそい・・・) クロどん わい
測ると出てくる「えっ」 見つかったこと 直した結果 PR 累積系の縮約と mulsum が GPU の 1
スレッドで動いて 複数スレッドで実行 #243 #244 いた 非連続ビューは 1 行ごとにカーネルを起動していた 列スライスへの store が 9.36 → 703 GB/s #245 Float(a.sum) のたびに managed memory がページフ 0.885 → 0.012 ms #528 ォルト メモリプールが断片化して、すべての確保が遅くなる GPT-2(fp16, 256 トークン)が 11.9 → #474 3.2 秒
narray-llm で見る、最初と今 GPT-2 の生成:約 7 倍(参考値) tokens/sec(KV キャッシュ有り、64 トークン) 824
1 トークンあたりのカーネル起動数 ▪ 最初 ▪ 今 (短いほど良い) GPT-2 Llama 2 Mamba Switch 117 最初 github.com/Watson1978/narray-llm 640 234 891 366 1115 557 2637 1533 今 出典: narray-llm の README と docs/results。「最初」の tokens/sec はヘッドごとのループで書いた版で、計測手順も違うので目安。「今」は cumo 0.15.0
GPT-2 124M で比べると 推論(1 トークンずつ生成):Cumo が CuPy の 3.6 倍、PyTorch
の 1.05 倍 824.0 Cumo 787.0 PyTorch 228.4 tokens/sec CuPy 学習:Cumo が CuPy の 1.25 倍、PyTorch(既定の AdamW)の 1.12 倍 24.4 Cumo 21.8 PyTorch 19.6 steps/sec CuPy narray-llm より。推論は KV キャッシュ有り・64 トークン生成。cumo 0.15.0、RTX 5070 Ti Laptop、10 ラウンドの中央値
再掲 2026-08-01 〜 11-06(約 3 か月)で 482 17 +61,594 88%
本の PR をマージ 行を追加(削除は 13,646 行) 回リリース(v0.5.6 → v0.15.0) のコミットが Claude との共著 (519 件中 458 件)
増えたもの(numo / CuPy にそろえて) Cumo::Linalg cuSOLVER で。numo-linalg-alt 互換 の solve・eig・svd・expm
など → narray-linalg-bench ・ Stream Event PinnedMemory 非同期コピーとストリームの並行実 行 Cumo::FFT cuFFT で。numpy.fft と同じ関数一 式 → narray-fft-bench ・ HFloat BFloat fp16 と bf16 の型 ElementwiseKernel ReductionKernel CuPy と同じ書き方で自前カーネル 融合カーネル softmax・layer_norm・ rms_norm・gelu・silu を 1 カーネ ルで(以前は 5〜6 本) まだ無いもの AMD GPU(ROCm)・疎行列(cuSPARSE)・cuTENSOR・cuSPARSELt・cuFFT のコールバック…… CuPy の examples も 34 本中 11 本はまだ動かない
AI と組んでみて効いたこと 1 合否は機械に決めさせる 2 「速くなりました」は測り直す 3 AI の助言も外れる 参照実装(llm.c
など)とトークン列が完全一致しなければ不合格 計測の作法を AGENTS.md に書いて、毎回守らせる もっともらしい説明でも、測って合わなければ捨てる
Ruby で GPU、 けっこう速いです $ gem install cumo github.com/sonots/cumo github.com/Watson1978/narray-llm
github.com/Watson1978/narray-linalg-bench github.com/Watson1978/narray-fft-bench 壊れたら issue ください ※ このスライドも Claude に作ってもらいました