Help us understand the problem. What is going on with this article?

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

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

マルチスレッドと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プログラムのコアな知識が必要で、
まだまだ世に広まっていないと感じます。

yamataroVoid
ゲーム → 一般企業をさすらってます。 WebGLなど。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした