背景
numpy 便利よね. Python(e.g. pytorch, jax, cupy) で fft とか svd とかやっている...
しかし GPU 処理しても, いまいち性能でなかったり, 大きめデータだとメモリ不足(メモリを無駄につかう)になってつらい...
GPU + C++ でやりたいけどコード書くのめんどい...
いつの間にか MatX が出てました.
fft や svd など俺得関数対応していてよい!
(CPU 実行もあるよ)
ビルド
Ubuntu 20.04 あたり使っていれば compiler は特には問題ないですが, cmake が 3.18 or later を必要とします.
Ubuntu 20.04 ですと snap で cmake 入れるとよいでしょう.
CUDA は 11 or later のみ対応です. CUDA 10 は対応していませんので注意です!
ユニットテスト
Unit test では python 環境に numpy, scipy, cupy が入っている必要があります.
自前アプリに組み込む
cmake add_subdirectory でいけるようになっています.
TODO
- cuew を使い, SDK 不要でビルドできるようにする
- 著者の cuew fork の
cudart
branch で cuFFT など対応中: https://github.com/syoyo/cuew/tree/cudart/sandbox/cudart
- 著者の cuew fork の