STIR 6.5.0
Items relating to CUDA and STIR buildblock objects.
Collaboration diagram for Items relating to CUDA and STIR buildblock objects.:

Files

file  /home/kris/devel/STIRdistrib/STIR/src/include/stir/cuda_utilities.h
 some utilities for STIR and CUDA
file  /home/kris/devel/STIRdistrib/STIR/src/include/stir/recon_buildblock/CUDA/CudaGibbsPenalty.h
 Declaration of the stir::CudaGibbsPenalty class.
file  /home/kris/devel/STIRdistrib/STIR/src/include/stir/recon_buildblock/CUDA/CudaRelativeDifferencePrior.h
 implementation of the stir::CudaRelativeDifferencePrior class
file  /home/kris/devel/STIRdistrib/STIR/src/include/stir/recon_buildblock/GibbsQuadraticPenalty.h
 Declaration of class stir::GibbsQuadraticPenalty, stir::CudaGibbsQuadraticPenalty and the potential function stir::QuadraticPotential.
file  /home/kris/devel/STIRdistrib/STIR/src/include/stir/recon_buildblock/GibbsRelativeDifferencePenalty.h
 Declaration of class stir::CudaRelativeDifferencePenalty, stir::CudaGibbsRelativeDifferencePenalty and the potential function stir::RelativeDifferencePotential.
file  /home/kris/devel/STIRdistrib/STIR/src/test/test_cuda_utilities_from_cxx.cxx
 tests for the cuda_utilities in .cxx

Classes

class  stir::CudaGibbsPenalty< elemT, PotentialT >
 A base class with CUDA-accelerated implementation of the GibbsPenalty class. More...
class  stir::CudaRelativeDifferencePrior< elemT >
 CUDA implementation of the Relative Difference prior. More...

Functions

template<int num_dimensions, typename elemT>
void stir::array_to_device (elemT *dev_data, const Array< num_dimensions, elemT > &stir_array)
 copy an Array to pre-allocated device memory
template<int num_dimensions, typename elemT>
void stir::array_to_device (CuVec< elemT > &dev_data, const Array< num_dimensions, elemT > &stir_array)
 copy an Array to pre-allocated CuVec
template<int num_dimensions, typename elemT>
void stir::array_to_host (Array< num_dimensions, elemT > &stir_array, const elemT *dev_data, bool=true)
 copy CUDA pointer to Array
template<int num_dimensions, typename elemT>
void stir::array_to_host (Array< num_dimensions, elemT > &stir_array, const CuVec< elemT > &dev_data, bool sync=true)
 copy CuVec to Array

Detailed Description

Function Documentation

◆ array_to_device() [1/2]

template<int num_dimensions, typename elemT>
void stir::array_to_device ( elemT * dev_data,
const Array< num_dimensions, elemT > & stir_array )

copy an Array to pre-allocated device memory

References array_to_device().

Referenced by array_to_device(), and array_to_device().

◆ array_to_device() [2/2]

template<int num_dimensions, typename elemT>
void stir::array_to_device ( CuVec< elemT > & dev_data,
const Array< num_dimensions, elemT > & stir_array )

copy an Array to pre-allocated CuVec

References array_to_device().

◆ array_to_host() [1/2]

template<int num_dimensions, typename elemT>
void stir::array_to_host ( Array< num_dimensions, elemT > & stir_array,
const elemT * dev_data,
bool = true )

copy CUDA pointer to Array

The third argument is ignored, as cudaMemcpy always syncs device and host.

References array_to_host().

Referenced by array_to_host(), and array_to_host().

◆ array_to_host() [2/2]

template<int num_dimensions, typename elemT>
void stir::array_to_host ( Array< num_dimensions, elemT > & stir_array,
const CuVec< elemT > & dev_data,
bool sync = true )

copy CuVec to Array

If sync = true, the function will call cudaDeviceSynchronize() before copying.

References array_to_host().