🟦
torchquad で GPU 多次元数値積分のメモ
背景
- 多少時間かかってもいいので, python でぺろっと Ground truth 的な GPU で漢の naiive 数値積分したい
- そのあとは許容誤差の範囲内で monte carlo 積分とかしたい
torchquad がありました!
しかしライセンスは GPL 3.0 です. したがって torchquad を利用する python コードは非開示にすることができません.
使う
特に難しいものではないでしょう.
生真面目な漢の数値積分では, Trapezoid あたり利用でしょうかね.
サンプル数は総数なので, たとえば 2 次元積分で 1024 x 1024 で積分したい場合は N = 1024 * 1024
と指定します.
backend で GPU 利用は torch がよろしくやってくれるはず...
AMD GPU なら ROCm 経由で使ってくれるかも?
おまけ.
C++17 で CUDA 対応の monte carlo integration library があります.
ただライセンスが不明です. また, GSL(GPL ライセンス)に依存しています.
また, qmc がとりこまれた pySecDec がありますが,
pySecDec もライブラリは GPL です.
(なんか数値積分系は GPL 系がおおいネ. Eigen も MPL でちょい微妙なライセンスだし)
Discussion