cuda-tutorial

1.6 質問と回答

Q1. 1.4節にて、CUDAのThread数が1024あるとのことですが、Block数はどれくらいありますか?SMの数でいいのですか?Tesla V100の場合80個ですか?

大まかにはGPUのSMがCUDAからみるGPUのBlock、SM1つあたりのCUDACoreがCUDAからみるGPUのThreadに対応していますが、GPUとCUDAから見るGPUは基本的に分けて考えるべきです。

CUDAから見るGPUについて言えば、Block数は2^31-1まで指定できます。 一方GPUについて言えば、1SMにint型・float32型のプロセッサ(演算器)が64個、float64型のプロセッサが32個あり、そのSMが80個集まることで最大5120並列まで実現できます。

CUDAはGPUとCUDAから見るGPUの間を1.5節のAutomatic Scalabilityによって結びつけています。(我々が普段コーディングする時に自身の所有するCPUの性質の詳細を知る必要がないのと同じです。) なので我々は基本的にはCUDAの書き方にのみ気を配って書くことが出来ます。 ただ、隠蔽するとは言っても実際のGPUの性能まで隠蔽できるわけではないです。

Q2. CUDAコア数というのがよく分かりません。

GPUで言うところのプロセッサ(演算器)の数です。V100の場合最大5120です。