High-performance numerical integration on the GPU with PyTorch.
This is a brief example of setting up torchquad.
We recommend using conda, especially if you want to utilize the GPU. It will automatically set up CUDA and the cudatoolkit for you in that case.
Note that torchquad also works on the CPU. However, it is optimized for GPU usage.
- conda, which will take care of all requirements for you. For a detailed list of required packages, please refer to the conda environment file.
- Get miniconda or similar
- Clone the repo
git clone https://github.com/esa/torchquad.git
- Setup the environment. This will create a conda environment called
conda env create -f environment.yml
Alternatively you can use
pip install torchquad
This is a brief example how torchquad can be used to compute a simple integral. For a more thorough introduction please refer to the example notebook.
The full documentation can be found on readthedocs.
# To avoid copying things to GPU memory, # ideally allocate everything in torch on the GPU # and avoid non-torch function calls import torch from torchquad import MonteCarlo # The function we want to integrate, in this example f(x,y) = sin(x) + e^y def some_function(x): return torch.sin(x) + torch.exp(x) # Declare an integrator, here we use the simple, stochastic Monte Carlo integration method mc = MonteCarlo() # Compute the function integral by sampling 10000 points over domain integral_value = mc.integrate(some_function,dim=2,N=10000,integration_domain = [[0,1],[-1,1]])