cuda Namespace Reference#

DiFfRG: integrators::core::cuda Namespace Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
integrators::core::cuda Namespace Reference

Namespaces

namespace  detail
 

Functions

template<U M, typename T , typename D , typename I >
__global__ void compute_kernel (const U work_offset, const U work_this_iteration, const U total_work_packages, const U *z, const D *d, T *r, const U d_r_size_over_m, const U n, const U m, I *func)
 
template<U M, typename T , typename D , typename I >
__global__ void generate_samples_kernel (const U work_offset, const U work_this_iteration, const U *z, const D *d, T *r, const U n, I *func)
 
template<U M, typename I , typename T , typename D , typename Q >
void compute (const Q &qmc, const U i, const U work_this_iteration, const U total_work_packages, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &d_z, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &d_d, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &d_r, const U d_r_size_over_m, const U n, const U m, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &d_func, const int device)
 
template<U M, typename I , typename T , typename D , typename Q >
void generate_samples (const Q &qmc, const U i_start, const U work_this_iteration, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &d_z, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &d_d, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &d_r, const U n, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &d_func, const int device)
 
template<typename I , typename T , typename D >
void setup_sample (std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &d_z, const std::vector< U > &z, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &d_d, const std::vector< D > &d, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &d_r, const U d_r_size_over_m, const T *r_element, const U r_size_over_m, const U m, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &d_func, I &func, const int device, const U verbosity, const Logger &logger)
 
template<typename I , typename T , typename D >
void setup_evaluate (std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &d_z, const std::vector< U > &z, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &d_d, const std::vector< D > &d, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &d_r, const U d_r_size, std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &d_func, I &func, const int device, const U verbosity, const Logger &logger)
 
template<typename T >
void teardown_sample (const std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &d_r, const U d_r_size_over_m, T *r_element, const U r_size_over_m, const U m, const int device, const U verbosity, const Logger &logger)
 
template<typename T >
void copy_back (const std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &d_r, const U d_r_size, T *r_element, const int device, const U verbosity, const Logger &logger)
 
int get_device_count ()
 

Function Documentation

◆ compute()

template<U M, typename I , typename T , typename D , typename Q >
void integrators::core::cuda::compute ( const Q &  qmc,
const U  i,
const U  work_this_iteration,
const U  total_work_packages,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &  d_z,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &  d_d,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &  d_r,
const U  d_r_size_over_m,
const U  n,
const U  m,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &  d_func,
const int  device 
)

◆ compute_kernel()

template<U M, typename T , typename D , typename I >
__global__ void integrators::core::cuda::compute_kernel ( const U  work_offset,
const U  work_this_iteration,
const U  total_work_packages,
const U z,
const D *  d,
T *  r,
const U  d_r_size_over_m,
const U  n,
const U  m,
I *  func 
)

◆ copy_back()

template<typename T >
void integrators::core::cuda::copy_back ( const std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &  d_r,
const U  d_r_size,
T *  r_element,
const int  device,
const U  verbosity,
const Logger logger 
)

◆ generate_samples()

template<U M, typename I , typename T , typename D , typename Q >
void integrators::core::cuda::generate_samples ( const Q &  qmc,
const U  i_start,
const U  work_this_iteration,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &  d_z,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &  d_d,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &  d_r,
const U  n,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &  d_func,
const int  device 
)

◆ generate_samples_kernel()

template<U M, typename T , typename D , typename I >
__global__ void integrators::core::cuda::generate_samples_kernel ( const U  work_offset,
const U  work_this_iteration,
const U z,
const D *  d,
T *  r,
const U  n,
I *  func 
)

◆ get_device_count()

int integrators::core::cuda::get_device_count ( )
inline

◆ setup_evaluate()

template<typename I , typename T , typename D >
void integrators::core::cuda::setup_evaluate ( std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &  d_z,
const std::vector< U > &  z,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &  d_d,
const std::vector< D > &  d,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &  d_r,
const U  d_r_size,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &  d_func,
I &  func,
const int  device,
const U  verbosity,
const Logger logger 
)

◆ setup_sample()

template<typename I , typename T , typename D >
void integrators::core::cuda::setup_sample ( std::unique_ptr< integrators::core::cuda::detail::cuda_memory< U > > &  d_z,
const std::vector< U > &  z,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< D > > &  d_d,
const std::vector< D > &  d,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &  d_r,
const U  d_r_size_over_m,
const T *  r_element,
const U  r_size_over_m,
const U  m,
std::unique_ptr< integrators::core::cuda::detail::cuda_memory< I > > &  d_func,
I &  func,
const int  device,
const U  verbosity,
const Logger logger 
)

◆ teardown_sample()

template<typename T >
void integrators::core::cuda::teardown_sample ( const std::unique_ptr< integrators::core::cuda::detail::cuda_memory< T > > &  d_r,
const U  d_r_size_over_m,
T *  r_element,
const U  r_size_over_m,
const U  m,
const int  device,
const U  verbosity,
const Logger logger 
)