2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

簡単!マルチスレッドとGPGPUを非プログラマ向けに説明する

Posted at

「プログラマじゃない人にもわかりやすい解説」を目標にしています。
分かりやすさとイメージを重視するため、正確じゃないことを書いています。ご理解ください。

#マルチスレッドとGPGPU
character_program_fast (1).png速い2.png

どちらもプログラムを高速に動かすための方法です。

今回は話題になった「AIプログラムが手塚治虫の漫画を描く」というのを元に説明しようと思います。

#マルチスレッドとは

マルチスレッドとは、プログラム処理を分散させることを言います。

例えばAIがマンガを3ページ描くのに12時間かかるとします。
internet_screenshot_computer - コピー.png12時間.png

これではかなり時間がかかってしまいます。
そこで3台のPCを用意して、1台に1ページ描かせることにしました。
internet_screenshot_computer - コピー.pnginternet_screenshot_computer - コピー.pnginternet_screenshot_computer - コピー.png4時間.png

合計で12時間ですが、実際にかかる時間は4時間になります。
マンガを描く処理を分散させた分、PC1台で処理をするよりもかなり早くなりました。

ただし実際にはPCを3台用意する必要はありません。
PCには**「CPU」**と呼ばれる機械があり、1台のPCで処理を分散させることが可能です。

internet_screenshot_computer - コピー.pngcomputer_cpu_.pngcomputer_cpu_.pngcomputer_cpu_.png4時間.png

「CPU」を3つ用意することでPC3台と同じ性能にすることができます。
こういった分散処理のことを**「マルチスレッド」**と言います。

#CPUの弱点
マンガのページをたくさん、高速に描くためには、たくさんのCPUに処理を分散させれば良いように見えます。
しかし1台のPCにあるCPUは、多くても10個や20個しかありません。

そのため、一気に1000ページを描くための方法はないか?
ということで編み出されたのが「GPGPU」という方法です。

#GPGPU
PCには**「GPU」**という機械があります。
このGPUはなんと、1つで1000個の処理を分散することができる凄い機械なんです!
computer_graphic_card.png1000個の分散処理.png

1000個に分散できるので、一気に1000ページも作れてしまいます!
それどころか、1000個も分散できるなら、1コマずつ描く描くことも可能ですね。

1ページに10コマあった場合、1ページ4時間かかっていた処理が24分で完了します!

24分.png

元々が12時間だったことを考えると、マルチスレッドやGPGPUって凄く高速になりますよね。

#終わりに
マルチスレッドとGPGPU、どちらも便利さが伝わったでしょうか。

どちらも凄く便利なのですが、現状では弱点もあります。

・専門性が高い(扱える人材が少ない)
・分散しやすいものにしか使えない

特にGPGPUは3Dプログラムのコアな知識が必要で、
まだまだ世に広まっていないと感じます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?