|
DiFfRG
|
Integrator for 2+1D integrals over p, x0 and an angle using the GPU. Calculates. More...
#include <integrator_2Dpx0_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 | |
| Integrator2Dpx0GPU (QuadratureProvider &quadrature_provider, const std::array< uint, 3 > grid_sizes, const ctype x_extent, const ctype x0_extent, const JSONValue &json) | |
| Construct a new Integrator2Dpx0GPU object. | |
| Integrator2Dpx0GPU (QuadratureProvider &quadrature_provider, std::array< uint, 3 > grid_sizes, const ctype x_extent, const ctype x0_extent, const uint max_block_size=256) | |
| Construct a new Integrator2Dpx0GPU object. | |
| Integrator2Dpx0GPU (const Integrator2Dpx0GPU &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 | |
| 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 * | ptr_x0_quadrature_p |
| const ctype * | ptr_x0_quadrature_w |
| const ctype | x_extent |
| const ctype | x0_extent |
| dim3 | num_blocks |
| dim3 | threads_per_block |
| PoolMR | pool |
| const rmm::cuda_stream_pool | cuda_stream_pool |
Integrator for 2+1D integrals over p, x0 and an angle using the GPU. Calculates.
\[ \int dp dcos dx0 f(p, cos, x0) + c \]
| NT | Numerical type. |
| KERNEL | Kernel to integrate. Must have a static constant member function constant which supplies c and a static member function kernel which supplies the integrand. |
| using DiFfRG::Integrator2Dpx0GPU< 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 |
Construct a new Integrator2Dpx0GPU object.
| quadrature_provider | QuadratureProvider object. |
| grid_sizes | Grid sizes for the integrator. |
| x_extent | Extent of the x-quadrature. |
| x0_extent | Extent of the x0-quadrature. |
| json | JSON object. |
|
inline |
Construct a new Integrator2Dpx0GPU object.
| quadrature_provider | QuadratureProvider object. |
| grid_sizes | Grid sizes for the integrator. |
| x_extent | Extent of the x-quadrature. |
| x0_extent | Extent of the x0-quadrature. |
| max_block_size | Maximum block size for CUDA computation. |
|
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 |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |