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
RustとWebGPUで実現するアバター描画システムの刷新とコスト削減
Search
gree_tech
PRO
October 16, 2026
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RustとWebGPUで実現するアバター描画システムの刷新とコスト削減
GREE Tech Conference 2026で発表された資料です。
https://techcon.gree.jp/2026/session/Short-Session-3
gree_tech
PRO
October 16, 2026
Transcript
14 slides
RustとWebGPUで実現する アバター描画システムの 刷新とコスト削減 株式会社グリー シニアリードエンジニア 橋本順之
橋本順之 株式会社グリー シニアリードエンジニア 2013年3月にグリー株式会社(現:グリーホールディングス株式会 社)に入社、前職は画像処理のハードウェアエンジニア。現在に至 るまでインフラストラクチャ部に所属し、NoSQL・KVSのサーバー の開発や運用を専門とする。 社内KVSであるFlareの開発を経て、Webゲーム開発を経験。 『アナザーエデン 時空を超える猫』のDynamoDBの調整に機械学習
を導入後、機械学習のOSSやプロジェクトに参加。 2
目次 • 背景 ◦ プロダクト:モンプラ ◦ WebGPUに置き換えたアバターシステム • 課題 ◦
なぜGPUインスタンスをやめたい? ◦ WebGPUに置き換え? • CPU化 ◦ 従来型のリファクタリング ◦ AIでのリファクタリング:失敗と成功 • まとめ 3
背景 • • • • 『モンスタープラネット』(通称:モンプラ) ◦ 2010年リリース 3Dアバターをサポート MascotCapsule(2001〜)をベース(独自システム)
C++/Cg言語:GPUレンダリング Rust + WebGPUのシステムで置換 CPUレンダリングでコスト削減 (GeminiとClaude Codeで2026/03に開発) 4
どうやってアバターをレンダリング? ポリゴン テクスチャ 座標変換 アニメ化 影作成 画像 GIF 画像 ボーン
C++ / Cg(シェーダー) OpenGL XWindow Linux サーバー 5
なんでRustとWebGPU? : 開発の容易性 C++ / Cg OpenGL XWindow Linux サーバー
動作確認が面倒 MacやWindowsで 動かない。 VMでも動かない。 OpenGL・C++はデバッグ難 Rust / WGSL WebGPU Mac/Windows/Linux/ブラウザ 動作確認が簡単 ブラウザでの動作保証 エラーチェック ⭕ ※WebGPUはVulkan, Metal, Direct3Dを基盤とするGPUのAPI 6
課題:高いし、動かなくなってきた • GPUレンダリング ◦ NVIDIAのCgというシェーダー言語(古い技術) ▪ 2012年のバージョンが最後 • 課題 ◦
◦ 最新のGPUインスタンスは割高。 ▪ CPUインスタンス • m6a.2xlarge(8vCPU, 32GB ) • 0.44$/h ▪ GPUインスタンス • g5.2xlarge(8vCPU, 32GB, VRAM 24GB ) • 1.75$/h 最新のGPU(RTX [234]0xx やT4)では動かない ▪ A100やH100では動くが。 GPUインスタンスは 4倍高い サービスの継続性に支障 7
CPU化:従来型のリファクタリングの失敗 • 従来型のリファクタリング(生成AI以前) ◦ リファクタリング対象のコード:テストがない。 動く状態を保ちながら少しずつ改変<ー失敗 ◦ ◦ Cg言語とGLSL言語を同居<ー失敗 固定シェーダー的なグローバルの状態のあるOpenGL<ー古い
◦ • 置き換えは ことごとく失敗 失敗例 ◦ ◦ ◦ OSMesa:(CPUで動かすヘッドレスのOpenGL) ▪ Cgのランタイムがうごかない。 ▪ Cgのランタイムはソースコードがない。 Cg言語をGLSL言語に変換して動作 ▪ CgのランタイムはGLSLをサポートとあるが動かない。 CgのランタイムをOpenGLのフレームワークに置換 ▪ セグフォがでるがエラーメッセージが不十分(デバッグできない。) ▪ OpenGL:mesaのソースコードレベルの解析が必要。 8
CPU化:生成AI丸投げによる失敗 • 生成AI(Claude Code)に丸投げ ◦ ◦ • 生成AI ▪ ソースコードを読ませて、アーキテクチャ分析
▪ Cg言語からGLSLやWebGPUへの置き換え うまくいかない原因 ▪ 一気にコードを生成しすぎ。(認知的過負荷) • AIは適当な四角形を出し始める。 ▪ デバッグできない。 ▪ 検証するポイントを指定できてない。 中身がわかっていそうでも 一括生成は失敗 デバッグできない 失敗例 ◦ ◦ C++/Cgのコードを分析して、C++/WebGPUに変更せよ! ▪ セグフォ多発、単色の画像の出力。 ▪ GDBデバッグできない。(もともと生成AI以前もデバッグできなかった。) C++/Cgのコードを分析して、Rust/WebGPUに変更せよ! ▪ 単色の画像がでたり、四角い箱がでてきた。 9
CPU化:生成AIによるレビューの壁打、開発計画作成 • 開発計画の立案:生成AI(Gemini)と壁打ち ◦ ◦ ◦ AI(Gemini)と壁打ち:自分の開発計画に自信がない 段階的な開発 ▪ AIが開発の方法のレビュー
TDDが鍵 ▪ じっくり計画 段階的開発&TDD ▪ 数学的な座標変換、アセットのパーサー、WGSLのコード ▪ ゲートキーパーを置く(モジュールごとにデバッグ) ▪ タスクを分割:開発精度が向上 Rustで開発:セグフォ対策 • 開発(Claude Code) ◦ ◦ ◦ Claude Codeで開発、キャラの輪郭がでた。(画像でデバッグ) 人間が画像をみて、AIにフィードバック ▪ キャラが後ろ向いている(座標軸の向きの問題) ▪ 黄色い肌のいろが濁っている(透過処理の問題) ▪ パーツがキャラの本体から離れている。(ボーンの処理の問題) 本番環境から画像を収集してフィードバック 10
その後:本番導入へ • サポートセンター(入稿)やStaging環境での評価 ◦ ◦ ◦ ◦ 背景の透過処理の問題 モーションファイルがない場合のスキップ処理の問題 リクエストを落とす(リクエストハンドラとワーカー分離)
長時間稼働の問題:アセットのキャッシュがFULLでデッドロック • 本番導入 ◦ ◦ GPUインスタンスをCPUインスタンスにできた。 ▪ メモリも削減できた。 費用は5分の1になった ▪ GPU(1.75$/h)ー>CPU(0.38$/h) • 旧:g5.2xlarge(8vCPU, Memory 32GB ) • 新:c6a.2xlarge(8vCPU, Memory 16GB ) 11
まとめ • 生成AI活用によるシステムの置き換え ◦ ◦ ◦ レガシーシステム(C++/Cg/OpenGL・GPUレンダリング) 現代的なシステム(Rust/WebGPU・CPUレンダリング) 費用は5分の1 •
従来型のリファクタリングの失敗 • AI開発失敗パターン ◦ 生成AIに分析から実装まで丸投げ、デバッグできない。 • AI開発成功パターン ◦ ◦ ◦ ◦ 認知負荷をさげるために開発計画をAIと立案 ▪ 開発計画(Gemini)と実際の開発(Claude)のAIを分離 一気に開発させず、タスクを分離 デバッグ可能なマイルストーン デバッグしやすい言語(Rust)を選択 ▪ C++・OpenGLのセグフォのデバッグは困難 12
ご清聴ありがとうございました 13
None
More Decks by gree_tech
See All by gree_tech
多彩なデータに負けないデータ分析パイプライン構築
gree_tech
PRO
0
150
AI駆動で挑むプロダクト刷新 ── アーキテクチャ設計とワークフロー最適化の実践事例 ──
gree_tech
PRO
0
140
『ヘブンバーンズレッド』のリグレッションテストにおけるストーリーの自動プレイ
gree_tech
PRO
0
150
REALITYにTAチームができるまでの軌跡〜ミッション:ガチャ本数5倍に対応せよ!〜
gree_tech
PRO
0
94
イベント続きでもミスらないライブサービスゲーム公式サイト運用システム開発
gree_tech
PRO
0
110
20年間 SNS サービス「GREE」 を支えた技術の刷新と、長期運用サービスの Kubernetes へのリアーキテクト
gree_tech
PRO
0
210
グラフ基盤ワークフローで実現するLLMによる自動ゲームプレイ
gree_tech
PRO
0
160
AIエージェントに脆弱性診断の仕事を奪われかけた ークローリングからコード全診断までの限界突破ー
gree_tech
PRO
0
140
アバター使っておもろいものを作り続けたい
gree_tech
PRO
0
130
Other Decks in Technology
See All in Technology
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
410
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.7k
思考過程から秘密が漏れる:Amazon Bedrock上のKimi K3を5つの方法で攻めたら、25回中22回漏洩した話
yama3133
1
140
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
470
Kiro を使うコツ (頼み方、覚えさせ方、任せ方) | 目指せ Kiro マスター 09
inariku
PRO
3
140
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
180
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.2k
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
270
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
1
170
Bots in Kiro Crew (One point of contact for ongoing work) | Kiro: Zero to Hero 12
inariku
PRO
1
130
大江戸Ruby会議でデータベース クライアントの話をするのは 間違っているだろうか
yahonda
1
120
うちなーぐちが認識できるなら、秋田弁もいけるはず!? Amazon Transcribe方言チューニング検証
ryouto715
1
160
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
3
800
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
530
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Everyday Curiosity
cassininazir
0
400
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
430
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
2
520
Rebuilding a faster, lazier Slack
samanthasiow
85
9.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k