MatX FFT
NVIDIAのC++数値計算ライブラリMatXのFFTを評価する機会がありました.
これに伴い, C++以外からも利用できるように共有ライブラリを作成しました. 評価環境は下記の通りです.
- Xeon W-2133 3.6GHz 6コア 12スレッド 16GB
- NVIDIA RTX A2000
- Ubuntu 22.04.4 LTS
- CUDA 12.4.131
MatXのサポートはLinuxのみのためUbuntuで実施, テストデータは下記の通りです.
- 2次元データ: 4096x4096, 複素数(単精度)
2次元FFTの実行時間は下記の通りでした.
- 2次元FFTの実行時間: 12[ms]
- 2次元FFTの実行時間 + CPU->GPU/ GPU->CPUの転送時間: 70[ms]
FFTの実行時間よりもデータ転送の時間が問題になるという結果でした. なお, 70[ms]はPythonのCuPyとほぼ
同速でした.
- Python 3.11.8
- CuPy 13.0.0
興味を持たれた方は作成した共有ライブラリ(libMatxFft.so)とサンプルプログラム(C/C++, C#, Python)を下記より
ダウンロードできます.
MatxFftLibSample[Ubuntu, zip-1.0MB]をダウンロード