2019-01-16 19:40:08 +00:00
|
|
|
/**
|
2020-11-18 07:22:37 +00:00
|
|
|
* @file cuAmpcorController.h
|
|
|
|
* @brief The controller for running cuAmcor
|
2019-01-16 19:40:08 +00:00
|
|
|
*
|
2020-11-18 07:22:37 +00:00
|
|
|
* cuAmpController is the main processor, also interface to python
|
|
|
|
* It determines the total number of windows, the starting pixels for each window.
|
|
|
|
* It then divides windows into chunks (batches), and creates cuAmpcorChunk instances
|
|
|
|
* to process each chunk.
|
|
|
|
* A chunk includes multiple windows, to maximize the use of GPU cores.
|
|
|
|
* Different cuAmpcorChunk processors use different cuda streams, to overlap
|
|
|
|
* the kernel execution with data copying.
|
2019-01-16 19:40:08 +00:00
|
|
|
*/
|
|
|
|
|
2020-11-18 07:22:37 +00:00
|
|
|
// code guard
|
2019-01-16 19:40:08 +00:00
|
|
|
#ifndef CU_AMPCOR_CONTROLLER_H
|
|
|
|
#define CU_AMPCOR_CONTROLLER_H
|
|
|
|
|
2020-11-18 07:22:37 +00:00
|
|
|
// dependencies
|
2019-01-16 19:40:08 +00:00
|
|
|
#include "cuAmpcorParameter.h"
|
|
|
|
|
|
|
|
class cuAmpcorController {
|
|
|
|
public:
|
2020-11-18 07:22:37 +00:00
|
|
|
cuAmpcorParameter *param; ///< the parameter set
|
|
|
|
// constructor
|
|
|
|
cuAmpcorController();
|
|
|
|
// destructor
|
|
|
|
~cuAmpcorController();
|
|
|
|
// run interface
|
2019-01-16 19:40:08 +00:00
|
|
|
void runAmpcor();
|
2020-11-18 07:22:37 +00:00
|
|
|
// output gross offsets
|
2019-01-16 19:40:08 +00:00
|
|
|
void outputGrossOffsets();
|
|
|
|
};
|
|
|
|
#endif
|
2020-11-18 07:22:37 +00:00
|
|
|
|
|
|
|
// end of file
|