DiFfRG
|
GPU integrator for the integration of a 4D function with two angles with CUDA. Calculates. More...
#include <integrator_4D_2ang_gpu.hh>
Public Types | |
using | ctype = typename get_type::ctype<NT> |
Numerical type to be used for integration tasks e.g. the argument or possible jacobians. | |
Public Member Functions | |
Integrator4D2AngGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 3 > grid_sizes, const ctype x_extent, const JSONValue &json) | |
Integrator4D2AngGPU (QuadratureProvider &quadrature_provider, std::array< uint, 3 > grid_sizes, const ctype x_extent, const uint max_block_size=256) | |
Integrator4D2AngGPU (const Integrator4D2AngGPU &other) | |
template<typename... T> | |
NT | get (const ctype k, const T &...t) const |
Get the integral of the kernel. | |
template<typename... T> | |
std::future< NT > | request (const ctype k, const T &...t) const |
Request a future for the integral of the kernel. | |
Private Types | |
using | PoolMR = rmm::mr::pool_memory_resource<rmm::mr::device_memory_resource> |
Private Attributes | |
QuadratureProvider & | quadrature_provider |
const std::array< uint, 3 > | grid_sizes |
std::array< uint, 3 > | block_sizes |
const uint | device_data_size |
const ctype * | ptr_x_quadrature_p |
const ctype * | ptr_x_quadrature_w |
const ctype * | ptr_ang_quadrature_p |
const ctype * | ptr_ang_quadrature_w |
const ctype | x_extent |
dim3 | num_blocks |
dim3 | threads_per_block |
int | n_devices |
std::vector< std::shared_ptr< PoolMR > > | pool |
const rmm::cuda_stream_pool | cuda_stream_pool |
std::atomic_ullong | evaluations |
GPU integrator for the integration of a 4D function with two angles with CUDA. Calculates.
\[ 2\pi\,\int dp\, d\text{cos}_1\, d\text{cos}_2\, \frac{1}{(2\pi)^4} \sqrt{1-\text{cos}_1^2} f(p, \text{cos}_1, \text{cos}_2, ...) + c \]
with \( p^2 \) bounded by \( \text{x_extent} * k^2 \).
NT | The numerical type of the result. |
KERNEL | The kernel to integrate. |
using DiFfRG::Integrator4D2AngGPU< NT, KERNEL >::ctype = typename get_type::ctype<NT> |
Numerical type to be used for integration tasks e.g. the argument or possible jacobians.
|
private |
|
inline |
|
inline |
|
inline |
|
inline |
Get the integral of the kernel.
T | Types of the parameters for the kernel. |
k | RG-scale. |
t | Parameters forwarded to the kernel. |
|
inline |
Request a future for the integral of the kernel.
T | Types of the parameters for the kernel. |
k | RG-scale. |
t | Parameters forwarded to the kernel. |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |