GPUを用いたシミュ​レーションをしたいが​,計算がかなり遅い

조회 수: 48 (최근 30일)
翔 池田
翔 池田 2021년 4월 19일
댓글: Shunichi Kusano 2021년 4월 19일
現在,GPUを導入し数値シミュレーションを行っております.
GPUようにgpuArrayなどを用いて実行すると,計算が異様に遅く,CPUで実行した方が圧倒的に速いです.
この問題として,GPU内にあるコアすべてを使っていない可能性が考えられます.
しかし,実際GPUのコアがどのくらい使われているのかなどを調べる方法が分かりません.
教えていただけますでしょうか.
また,CUDAとなにか関係があるのでしょうか.
PCのスペックは以下の通りです.
MATLAB R2020a , Windows10 OS , Intel corei7 , NVIDIA Geforce FTX 1650

답변 (1개)

Shunichi Kusano
Shunichi Kusano 2021년 4월 19일
GPU使った方が遅くなるケースもあります。
for文の中でgpuArrayとgatherを繰り返していて、CPU⇔GPU間のやり取りのオーバーヘッドの方が支配的になってしまっている、とかが真っ先に思い浮かびます。
  • そもそもGPU(並列計算)の恩恵を受けにくいアルゴリズム
  • 小さ目のデータに適用
とかですと条件が悪いかなと思います。
こんなページもありますので、もしご覧になっていなければご一読をおすすめいたします。
  댓글 수: 2
翔 池田
翔 池田 2021년 4월 19일
早急のご返信ありがとうございます.
parforを使って問題なく計算できるため,並列アルゴリズムは問題ないと思われます.
大胆にfor文内のほとんどの変数をgpuArrayにしてfor文から出てからgatherを使うのは,計算速度としては遅くなるのでしょうか.
また,CUDAのドライバーのインストールなどはいらないのでしょうか.
Shunichi Kusano
Shunichi Kusano 2021년 4월 19일
gpuArrayを実行したときに特にエラーが出ていないのでしたらドライバ周りは問題ないかと思います。必要なら最新のものにアップデートはしてみてください(劇的にパフォーマンスが変わることはないかと思いますが)。
ほとんどの変数をgpuArray化している、とのことですがそれらすべてGPU対応の関数で処理出来ていますでしょうか。GPU計算の恩恵にあずかれるのは、GPUメモリに展開(gpuArray)→GPU対応関数で計算→CPUメモリに戻す(gather)の一連の処理時間がCPUだけで処理するよりも短い時、ということになります。パフォーマンスを解析(コードのプロファイリング)して、一番ネックになっている部分だけをまずはGPU化してみるというのはいかがでしょうか。
可能でしたら関連する部分の具体的なコードを示していただければ、より具体的なコメントがつくかもしれません。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 GPU 計算에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!