🟦

torchquad で GPU 多次元数値積分のメモ

2023/02/19に公開

背景

  • 多少時間かかってもいいので, python でぺろっと Ground truth 的な GPU で漢の naiive 数値積分したい
  • そのあとは許容誤差の範囲内で monte carlo 積分とかしたい

torchquad がありました!

https://github.com/esa/torchquad

しかしライセンスは GPL 3.0 です. したがって torchquad を利用する python コードは非開示にすることができません.

使う

特に難しいものではないでしょう.

https://torchquad.readthedocs.io/en/main/tutorial.html

生真面目な漢の数値積分では, Trapezoid あたり利用でしょうかね.

サンプル数は総数なので, たとえば 2 次元積分で 1024 x 1024 で積分したい場合は N = 1024 * 1024 と指定します.

backend で GPU 利用は torch がよろしくやってくれるはず...
AMD GPU なら ROCm 経由で使ってくれるかも?

おまけ.

C++17 で CUDA 対応の monte carlo integration library があります.

https://github.com/mppmu/qmc

ただライセンスが不明です. また, GSL(GPL ライセンス)に依存しています.

また, qmc がとりこまれた pySecDec がありますが,
pySecDec もライブラリは GPL です.
(なんか数値積分系は GPL 系がおおいネ. Eigen も MPL でちょい微妙なライセンスだし)

Discussion