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
クーダでハニワ / MIERUNE BBQ #12
Search
MIERUNE
PRO
October 23, 2024
Technology
0
430
クーダでハニワ / MIERUNE BBQ #12
MIERUNE BBQ #12 -
https://mierune.connpass.com/event/333853/
Takami Hidekazu
MIERUNE
PRO
October 23, 2024
Tweet
Share
More Decks by MIERUNE
See All by MIERUNE
連続的な到達圏を表示する QGISプラグインを作ってみた
mierune
PRO
0
520
Facade Patternで磨く、コードの可読性と分解力 / MIERUNE BBQ #13
mierune
PRO
0
380
ハザードマップゲームの作り方〜ハザード情報をゲームのパラメーターに落とし込む〜 / FOSS4G 2024 Japan
mierune
PRO
0
580
MIERUNEとQGIS、そしてQGIS事業のご紹介 / FOSS4G 2024 Japan
mierune
PRO
0
540
QGISで実現するもっと分かりやすい森林ゾーニング / FOSS4G 2024 Japan
mierune
PRO
0
580
君はこの色の違いを見ることができるか / MIERUNE BBQ #12
mierune
PRO
0
480
位置情報とオープンソースがやりたくてMIERUNEに転職した話 〜経歴、事例紹介、GISへのいざない〜 / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
1.4k
クロージング / MIERUNE JCT - Tokyo 2024
mierune
PRO
0
1.1k
オープニング / MIERUNE JCT - Tokyo 2024
mierune
PRO
1
1.2k
Other Decks in Technology
See All in Technology
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
470
OpenTelemetryセマンティック規約の恩恵とMackerel APMにおける活用例 / SRE NEXT 2025
mackerelio
3
2k
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
120
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
6.9k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
39k
“日本一のM&A企業”を支える、少人数SREの効率化戦略 / SRE NEXT 2025
genda
1
270
ビジネス職が分析も担う事業部制組織でのデータ活用の仕組みづくり / Enabling Data Analytics in Business-Led Divisional Organizations
zaimy
1
400
Four Keysから始める信頼性の改善 - SRE NEXT 2025
ozakikota
0
420
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
18
7.6k
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
290
american aa airlines®️ USA Contact Numbers: Complete 2025 Support Guide
aaguide
0
500
[SRE NEXT] ARR150億円_エンジニア140名_27チーム_17プロダクトから始めるSLO.pdf
satos
5
3k
Featured
See All Featured
A better future with KSS
kneath
238
17k
Bash Introduction
62gerente
613
210k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
4 Signs Your Business is Dying
shpigford
184
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
A designer walks into a library…
pauljervisheath
207
24k
Code Review Best Practice
trishagee
69
19k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Transcript
©OpenStreetMap contributors Hidekazu Takami クーダでハニワ 1
©Project PLATEAU / MLIT Japan へっぽこ プログラマーの悩み 2
©Project PLATEAU / MLIT Japan 3 PCで を描きたい!!
©Project PLATEAU / MLIT Japan 4 をめちゃ高速で!!
©Project PLATEAU / MLIT Japan 5 のであれば
©Project PLATEAU / MLIT Japan 自己紹介 6 で
©Project PLATEAU / MLIT Japan 7 格闘家[ミルコ・クロコップ
©Project PLATEAU / MLIT Japan = 8 Compute Unified Device
Architecture NVIDIA CEO ジェンスン・フアン⽒
©Project PLATEAU / MLIT Japan 9 = マンデルブロ集合
©Project PLATEAU / MLIT Japan 自己紹介 10 で
©OpenStreetMap contributors へっぽこプログラマ NVIDIAのGPUを使ってCUDAを利用し、マンデルブロ集合を描くとめちゃくちゃ早く作成できるよ でもNVIDIAのGPUお値段高いけどね、革ジャンさん安く売ってよ、おねがい!! 11
©Project PLATEAU / MLIT Japan 高見 英和 自己紹介 Takami Hidekazu
• おもにバックエンド担当することがおおい • 動的型付け言語(Pythonなど)はやや苦手 • ロードバイクとバイオリンが趣味かな~ 12
©Project PLATEAU / MLIT Japan 自己紹介 13 マンデルブロ集合(ハニワ)
©Project PLATEAU / MLIT Japan 14 わからん!!
©Project PLATEAU / MLIT Japan 15 複素数
©Project PLATEAU / MLIT Japan 16 実数(実部)+虚数(虚部) 1+1i
©Project PLATEAU / MLIT Japan 17 0 1 ▼ 2
-2 √2 ▼ 実数
©Project PLATEAU / MLIT Japan 18 0 2i -2i 1+1i
虚数
©Project PLATEAU / MLIT Japan 19 0 2i -2i 1+1i
-2 2
©Project PLATEAU / MLIT Japan 20 漸化式 (ぜんかしき)
©Project PLATEAU / MLIT Japan 21 Z0 =0 Zn+1 =Zn
+C 2 ここに複素数の値をいれる (描画位置の値) 1+1i
©Project PLATEAU / MLIT Japan 22 Z0 =0 Z2 =(1+1i)+(1+1i)
2 Z1 =0+(1+1i) 2
©Project PLATEAU / MLIT Japan 23 1000回繰り返して Zの値の絶対値が2を超えると黒 それ以外は白とする 1+1i
0.4+0.6i
©Project PLATEAU / MLIT Japan 24 つまり
©Project PLATEAU / MLIT Japan 25 1000X1000画像を作るには 1000x1000x1000回(十億回)の計算が必要になる
©Project PLATEAU / MLIT Japan 26 0 2i -2i 1+1i
-2 2 0.0 0.1000 1000.0 1000.1000
©Project PLATEAU / MLIT Japan 27 マンデルブロ集合はフラクタルな図形なので どこまでも拡大できる 10万倍 縦横幅2
縦横幅0.00002
©Project PLATEAU / MLIT Japan 28 色の付け方 HSV色空間 • 色相
(Hue) • 彩度 (Saturation, Chroma) • 明度 (Value, Brightness) 漸化式で2を超えるまでの 回数(n)を360度で表現する 色が決定する
©Project PLATEAU / MLIT Japan 29 サンプルコード C++ X軸ループ、Y軸ループ、漸化式ループの3重ループ
©Project PLATEAU / MLIT Japan 30 サンプルコード C++
©Project PLATEAU / MLIT Japan 31 高速にするにはGPU(CUDA)を使う
©Project PLATEAU / MLIT Japan 32 GPUで三角形ばっかり描くのはもったいない。 そのスーパーな並列処理をなんにでも 使えるようにしたら?
©Project PLATEAU / MLIT Japan 33 CUDAコアを作って▲もかけるが、 いろいろな計算もできるようにした! しかもライブラリーも作ったよ! (cuda
toolkit)
©Project PLATEAU / MLIT Japan 34 CUDAコア SM
©Project PLATEAU / MLIT Japan 35
©Project PLATEAU / MLIT Japan 36 GPUのプログラムって難しいイメージ?
©Project PLATEAU / MLIT Japan 37 実はそんなに難しくない
©Project PLATEAU / MLIT Japan 38 CPUで利用されるメモリとGPUで利用されるメモリは別の場所にあるため ホスト側のメモリ情報をデバイス側へ転送する カーネルを使って同時並行処理する デバイス側のメモリ情報をホスト側に戻す
©Project PLATEAU / MLIT Japan 39 カーネルとは各CUDAコアで実行する関数みたいなもの カーネルがCUDAコアで同時に実行される ブロックとスレッドの指定でカーネルが処理するピクセルが決まる (今回の場合)
©Project PLATEAU / MLIT Japan 40 サンプルコード(cuda)
©Project PLATEAU / MLIT Japan 41 サンプルコード(cuda)
©Project PLATEAU / MLIT Japan 42 速度比較 使用PC CPU:Intel i5
12400 6コア 12スレッド GPU:NVIDIA GTX1070 CUDAコア 1920基 フ ル
©Project PLATEAU / MLIT Japan 43 RTX4090 10/20日現在 CUDAコア 16,384基!!
GTX1070 CUDAコア 1929基
©Project PLATEAU / MLIT Japan 44 • スケール: ◦ 0.00002
縦横 • 中心位置: ◦ 0.743643135 X ◦ 0.131825963i Y
©Project PLATEAU / MLIT Japan 45 速度比較 CPUシングルスレッド:10070.4 ms(10s) GPU(CUDA)
:75.90 ms (0.8s) CPUマルチスレッド :1352.06 ms (1s) Intel i5 (12スレッド) (GTX1070 1920コア)
©Project PLATEAU / MLIT Japan 46 ms 132倍 18倍
©OpenStreetMap contributors まとめ 47
©OpenStreetMap contributors • PCでハニワ(マンデルブロ集合) を描きたい • CUDAを使うとマンデルブロ集合は高速に描ける • CUDAのプログラミングは意外と簡単 •
CPU側とGPU側のメモリは別なのでデータの受け渡しが必要 • NVIDIAさんもっとGPU安く売ってくれないですかね? 48
©OpenStreetMap contributors • Rust de ハニワ • https://github.com/Guarneri009/rust-mandelbrot • Haskell
de ハニワ • https://github.com/Guarneri009/haskell-mandelbrot 49
©OpenStreetMap contributors 終わり ます 50