Xmipp
v3.23.11-Nereus
|
Classes | |
struct | FRecBufferDataGPUWrapper |
Functions | |
void | allocateWrapper (RecFourierBufferData *buffer, int streamIndex) |
void | releaseWrapper (int streamIndex) |
void | createStreams (int count) |
void | deleteStreams (int count) |
float * | allocateTempVolumeGPU (float *&ptr, int size, int typeSize) |
void | releaseTempVolumeGPU (float *&ptr) |
void | copyTempVolumes (std::complex< float > ***tempVol, float ***tempWeights, float *tempVolGPU, float *tempWeightsGPU, int size) |
void | waitForGPU () |
void | copyBlobTable (float *blobTableSqrt, int size) |
void | releaseBlobTable () |
void | pinMemory (RecFourierBufferData *buffer) |
void | unpinMemory (RecFourierBufferData *buffer) |
void | copyConstants (int maxVolIndexX, int maxVolIndexYZ, float blobRadius, float blobAlpha, float iDeltaSqrt, float iw0, float oneOverBessiOrderAlpha) |
void | processBufferGPU (float *tempVolumeGPU, float *tempWeightsGPU, RecFourierBufferData *buffer, float blobRadius, int maxVolIndexYZ, bool useFast, float maxResolutionSqr, int stream, int blobOrder, float blobAlpha) |
float* allocateTempVolumeGPU | ( | float *& | ptr, |
int | size, | ||
int | typeSize | ||
) |
Method to allocate 3D array (continuous) of given size^3 Allocated array is cleared (to 0 zero) Blocking operation
Definition at line 347 of file cuda_gpu_reconstruct_fourier.cpp.
void allocateWrapper | ( | RecFourierBufferData * | buffer, |
int | streamIndex | ||
) |
Method will allocate buffer wrapper for given stream 'buffer' is used for size references, i.e. it has to have the same sizes that will be used later, during calculation Blocking operation
Definition at line 1093 of file cuda_gpu_reconstruct_fourier.cpp.
void copyBlobTable | ( | float * | blobTableSqrt, |
int | size | ||
) |
Method will allocate space at GPU and copy there content of the table Blocking operation
Definition at line 1098 of file cuda_gpu_reconstruct_fourier.cpp.
void copyConstants | ( | int | maxVolIndexX, |
int | maxVolIndexYZ, | ||
float | blobRadius, | ||
float | blobAlpha, | ||
float | iDeltaSqrt, | ||
float | iw0, | ||
float | oneOverBessiOrderAlpha | ||
) |
Method will copy constants used for calculation to GPU memory Blocking operation
Definition at line 1113 of file cuda_gpu_reconstruct_fourier.cpp.
void copyTempVolumes | ( | std::complex< float > *** | tempVol, |
float *** | tempWeights, | ||
float * | tempVolGPU, | ||
float * | tempWeightsGPU, | ||
int | size | ||
) |
Method will copy continuous 3D arrays (with side of size) from GPU to non-continuous arrays on CPU Blocking operation
Definition at line 356 of file cuda_gpu_reconstruct_fourier.cpp.
void createStreams | ( | int | count | ) |
Allocate 'count' streams on default GPU Blocking operation
Definition at line 1047 of file cuda_gpu_reconstruct_fourier.cpp.
void deleteStreams | ( | int | count | ) |
Delete streams allocated on default GPU Blocking operation
Definition at line 1055 of file cuda_gpu_reconstruct_fourier.cpp.
void pinMemory | ( | RecFourierBufferData * | buffer | ) |
Definition at line 1064 of file cuda_gpu_reconstruct_fourier.cpp.
void processBufferGPU | ( | float * | tempVolumeGPU, |
float * | tempWeightsGPU, | ||
RecFourierBufferData * | buffer, | ||
float | blobRadius, | ||
int | maxVolIndexYZ, | ||
bool | useFast, | ||
float | maxResolutionSqr, | ||
int | stream, | ||
int | blobOrder, | ||
float | blobAlpha | ||
) |
Method will copy content of the 'buffer' to GPU and runs the calculation (asynchronously on given stream). Once it returns, 'buffer' object can be reused. See also createStreams(int)
Definition at line 1198 of file cuda_gpu_reconstruct_fourier.cpp.
void releaseBlobTable | ( | ) |
Method will release all resources allocated for the blob table at GPU Blocking operation
Definition at line 1104 of file cuda_gpu_reconstruct_fourier.cpp.
void releaseTempVolumeGPU | ( | float *& | ptr | ) |
Release memory at GPU Blocking operation
Definition at line 369 of file cuda_gpu_reconstruct_fourier.cpp.
void releaseWrapper | ( | int | streamIndex | ) |
Release all resources allocated with the buffer wrapper, for given stream Blocking operation
Definition at line 1109 of file cuda_gpu_reconstruct_fourier.cpp.
void unpinMemory | ( | RecFourierBufferData * | buffer | ) |
Definition at line 1078 of file cuda_gpu_reconstruct_fourier.cpp.
void waitForGPU | ( | ) |
Blocking method. Once returns, all operation on default GPU are done
Definition at line 1042 of file cuda_gpu_reconstruct_fourier.cpp.