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
330
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
150
プログラムを高速化する話Ⅱ ~GPGPU編~
primenumber
1
830
プログラムを高速化する話
primenumber
0
600
オセロを速く解く話/solveothello
primenumber
2
2.5k
コンピュータで問題をサッと解きたい!
primenumber
0
300
Other Decks in Programming
See All in Programming
0から始めるモジュラーモノリス-クリーンなモノリスを目指して
sushi0120
1
310
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
530
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
380
A Gopher's Guide to Vibe Coding
danicat
0
170
エンジニアのための”最低限いい感じ”デザイン入門
shunshobon
0
120
自作OSでDOOMを動かしてみた
zakki0925224
1
1.4k
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
120
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
980
Langfuseと歩む生成AI活用推進
licux
3
270
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.1k
Honoアップデート 2025年夏
yusukebe
1
790
コンテキストエンジニアリング Cursor編
kinopeee
1
600
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
GitHub's CSS Performance
jonrohan
1031
460k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Side Projects
sachag
455
43k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
Typedesign – Prime Four
hannesfritz
42
2.8k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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
おわり