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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
prime number
July 11, 2025
Programming
580
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GPUを計算資源として使おう!
@エンジニア作業飲み集会LT 2025/07/11
prime number
July 11, 2025
More Decks by prime number
See All by prime number
Ray Tracing In One Hour
primenumber
0
250
プログラムを高速化する話Ⅱ ~GPGPU編~
primenumber
1
1.2k
プログラムを高速化する話
primenumber
0
830
オセロを速く解く話/solveothello
primenumber
2
2.8k
コンピュータで問題をサッと解きたい!
primenumber
0
390
Other Decks in Programming
See All in Programming
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
MySQLとPostgreSQLって何が違うの?
akagami
0
150
Press start. Python's next generation.
willingc
PRO
3
250
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
550
Dockerfile CMD for Node.js
grazie1999
0
140
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
0
360
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
120
AIの中の人になってみる
htkym
0
140
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
2
450
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
310
高専キャリア LT 発表内容
crysta1221
3
4k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
420
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
360
Building a Scalable Design System with Sketch
lauravandoore
463
34k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Docker and Python
trallard
47
4.2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
220
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Bash Introduction
62gerente
615
220k
We Are The Robots
honzajavorek
0
310
Writing Fast Ruby
sferik
630
63k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
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
おわり