ポアソン方程式 56倍の高速化


CUDA FFTを利用することで、大規模なサイズの二次元ポアソン方程式を
56倍の速度で解くことに成功しました。
ポアソン方程式 Uxx + Uyy = r を解くひとつの方法は、フーリエ変換を使用する方法です。
この解法をCPU上で数値的に解くとき、フーリエ変換はFFTWのような高速フーリエ変換ライブラリを使用して
行われます。 我々のプログラムでは、GPUを使用してポアソン方程式を解きます。FFTはCUDA FFTを使用します。
CUDAカーネル上でフーリエ空間上の解を得ることができます。
例えば、2048×2048のメッシュサイズのとき、FFTのみでは174倍のスピードアップとなり、
CPU-GPU間のメモリー転送を含んだ合計でも56倍のスピードアップとなりました。
下のグラフは、いろいろなメッシュサイズの場合の比較結果です。
poisson.jpg
二次元ポアソン方程式をGPUで解いた場合の対CPU倍率です。
(CPU1コアで解いた場合の数値を1とした場合の倍率)
横軸はメッシュ数、縦軸は倍率です。
爆発研究所通信 Vol.3 2010 Nov. より抜粋
  • ※業務を円滑に進めるため弊社社員との電話は録音しております。予めご了承ください。


  • 爆発災害、数値計算、可視化などに関するご質問やご相談はこちらまで。
     
    ※業務を円滑に進めるため弊社社員との電話は録音しております。予めご了承ください。
pagetop.png