■目的
■実験環境
■準備
■実験内容
■結果
| 1億まで合計する所要時間 合計値:5000000050000000 |
10億まで合計する所要時間 合計値:500000000500000000 |
|
|---|---|---|
| CPU | 0.04 秒 | 0.4秒 |
| GPU | 0.00001秒 | 0.00003秒 |
※100億はGPUのメモリ不足で実行できず。
■所感
cudaはほぼC言語だった。
実行順序を問わないお題であればGPUのメリットが活かせる。ものによっては1000分の1くらいの時間で済む。
GPUのグリッド、ブロック、スレッドといった基本構造を知ることができた。
スレッドを使った並列処理がどれくらい強力であるか実感できた。
pyCUDAを使えば、pythonからcudaを実行できるので選択肢が広がった。cudaを知れて、世界が広がった気がする。
複数マシンかつ複数GPU環境での分散並列処理も実現可能。 Tensorflowなら「MultiWorkerMirroredStrategy」 Pytorchなら「DistributedDataParallel」 が用意されている。
■追加実験