Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GPUを計算資源として使おう!
Search
prime number
July 11, 2025
Programming
1
500
GPUを計算資源として使おう!
@エンジニア作業飲み集会LT 2025/07/11
prime number
July 11, 2025
Tweet
Share
More Decks by prime number
See All by prime number
Ray Tracing In One Hour
primenumber
0
180
プログラムを高速化する話Ⅱ ~GPGPU編~
primenumber
1
1k
プログラムを高速化する話
primenumber
0
710
オセロを速く解く話/solveothello
primenumber
2
2.7k
コンピュータで問題をサッと解きたい!
primenumber
0
330
Other Decks in Programming
See All in Programming
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
350
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
390
Implementation Patterns
denyspoltorak
0
270
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5.8k
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.7k
Patterns of Patterns
denyspoltorak
0
1.3k
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
260
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
700
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
170
Grafana:建立系統全知視角的捷徑
blueswen
0
310
Data-Centric Kaggle
isax1015
2
710
CSC307 Lecture 01
javiergs
PRO
0
680
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.5k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
120
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Facilitating Awesome Meetings
lara
57
6.7k
Done Done
chrislema
186
16k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
YesSQL, Process and Tooling at Scale
rocio
174
15k
GitHub's CSS Performance
jonrohan
1032
470k
Practical Orchestrator
shlominoach
191
11k
Odyssey Design
rkendrick25
PRO
0
470
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Transcript
@エンジニア集会2025/07/11 GPUを計算資源 として使おう! 発表者:そすうぽよ
主にデジタル画像処理や、コンピューターグラフィックスの処理を ⾏う専⽤の装置 GrahpicProccessingUnitの略 GPUとは
CPUと同じチップ 上に組み込まれたGPU ※ ノートPCやスマートフォン、スタンドアロンのHMDなどに よく搭載されている 統合GPU(Integrated GPU, iGPU) 個別GPU(Discrete GPU,
dGPU) GPUの種類 独立したチップを持つGPU デスクトップPC、ノートPCのうちでもゲーミングPCと呼ばれるものなどに よく搭載されている iGPUとdGPUが両方搭載されていることもある
突然ですが、アンケートです! 当てはまる人は挙手 ✋・ジャンプ
GPUを使ったことは ありますか?
GPUを使ったことはある? VRChatで100人に聞いた(大嘘)! ある 99% ない(脳にLANケーブルを接続) 1% 圧倒的利用率! VRChatのシステム要件の一つ
GPUをグラフィック処理以外の計算にも使う悪だくみ技術 GPGPU: General Purpose GPU GPUはCPUに比べて高い演算性能と、広いメモリ帯域を持っているため、 うまくいけば何倍も性能が向上する GPUを計算に使うモチベーション GPUを計算に使おう
完全に同じ内容を実⾏したら意味がないので、 各スレッドは⾃分のIDをもとに動作を変える SPMD:SingleProgramMultipleData たくさんのスレッドが同じプログラムを実⾏する SPMDモデルの利点 GPGPUのプログラミング 各スレッドに対してそれぞれプログラムを書く必要がないため、 ⼤きな並列度のプログラムを実装するのが楽 GPUで効率的に実⾏しやすい
ハードウェアの構造等がCPUと⼤きく異なるため、 性能を出すためにある程度の知識が必要 そもそもGPGPUが向いていないタスクも多い ⼤変なところ GPUを計算に使おう
ハードウェアの構造等がCPUと⼤きく異なるため、 性能を出すためにある程度の知識が必要 そもそもGPGPUが向いていないタスクも多い ⼤変なところ GPUを計算に使おう あるある GPUを使ったら10倍になった!!!
ハードウェアの構造等がCPUと⼤きく異なるため、 性能を出すためにある程度の知識が必要 そもそもGPGPUが向いていないタスクも多い ⼤変なところ GPUを計算に使おう あるある GPUを使ったら10倍になった!!!実⾏時間が…
ハードウェアの構造等がCPUと⼤きく異なるため、 性能を出すためにある程度の知識が必要 そもそもGPGPUが向いていないタスクも多い ⼤変なところ GPUを計算に使おう あるある GPUを使ったら10倍になった!!!実⾏時間が… まずはGPUの特性・構造を知ろう!
たくさんのタスクを同時に処理するのに向いている 全タスクを終えるまでの時間が短ければ、 それぞれのタスクにかかる時間はあまり気にしない GPU:並列度⼤・スループット重視 並列度は⼩さめだが⼀つのタスクを⾼速に処理することに向いている CPU:並列度⼩・低レイテンシ重視 GPUとCPUの⽐較
GPUの大まかな構造 GPU CU PE CU CU GPU メモリ (VRAM) ホスト
CPU
実際に計算を⾏うユニット PE(Processing Element, NVIDIA用語: CUDAコア) PEを複数まとめて、演算内容を指⽰したりするCPUのコアに相当 CU(Compute Unit, NVIDIA用語: SM,
Streaming Multiprocessor) CUが複数集まってできている。メモリやホストCPUと接続されている。 GPU GPUの⼤まかな構造
SIMT:SingleInstructionMultipleThreadの略 各スレッドは特定のPEに紐づけられる 複数(8〜64程度)のPEで同⼀の命令を実⾏する 両⽅のパスを実⾏するが、 それぞれのスレッドで関係ない命令の結果を無視 →スレッドごとに全然違うことをしようとすると、効率が落ちる 条件分岐を避けるか、隣接するPEでは同じ⽅向に分岐するようなプログラムを書く 各スレッドで異なるパスを実⾏したいとき SIMTアーキテクチャ if
me.has_money? { go_shopping(); } else { stay_home(); }
CUDA,Vulkan,DirectCompute,OpenCL,SYCL,WebGPU,OpenMPOffload... いっぱいある GPGPUの開発環境
CUDA,Vulkan,DirectCompute,OpenCL,SYCL,WebGPU,OpenMPOffload... いっぱいある GPGPUの開発環境 今⽇ご紹介するのは…
CUDA,Vulkan,DirectCompute,OpenCL,SYCL,WebGPU,OpenMPOffload... いっぱいある GPGPUの開発環境 今⽇ご紹介するのは… VRChat
シェーダーの中で計算することでGPGPUが可能! ⼊⼒としてテクスチャやマテリアルパラメータを取ることができる 出⼒はレンダリング結果 VRChatではカスタムシェーダーが書けます 状態の保持はどうやるの? VRChatでGPGPU CustomRenderTextureを⽤いることで、 前フレームの出⼒をテクスチャとして受け取ることができる (他にもCameraとRenderTextureを使う⽅法もある)
ConwayʼsGameofLifeのシミュレーションを⾏う シミュレーション⽤の CustomRenderTexture・シェーダーと、 描画⽤のシェーダーの2つを使⽤ 実例:ライフゲーム VRChatでGPGPU
おわり