123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- //========================================================================================================================================================================================================200
- // DEFINE / INCLUDE
- //========================================================================================================================================================================================================200
- #define fp float
- #ifdef RD_WG_SIZE_0_0
- #define NUMBER_THREADS RD_WG_SIZE_0_0
- #elif defined(RD_WG_SIZE_0)
- #define NUMBER_THREADS RD_WG_SIZE_0
- #elif defined(RD_WG_SIZE)
- #define NUMBER_THREADS RD_WG_SIZE
- #else
- #define NUMBER_THREADS 128
- #endif
- #define CHECK 37
- // #define TEST_CHECKSUM
- // #define TEST_OUTPUT
- // #define INIT
- // need to define these for static allocation of constant memory in GPU, because it cannot be allocated dynamically
- #define ENDO_POINTS 20
- #define EPI_POINTS 31
- #define ALL_POINTS 51
- //========================================================================================================================================================================================================200
- // PARAMS_COMMON STRUCTURE
- //========================================================================================================================================================================================================200
- typedef struct params_common{
- //======================================================================================================================================================150
- // HARDCODED INPUTS FROM MATLAB
- //======================================================================================================================================================150
- //====================================================================================================100
- // UNIQUE PARAMETER STRUCTURE MEMORY SIZE
- //====================================================================================================100
- int common_change_mem;
- int common_mem;
- int unique_mem;
- //====================================================================================================100
- // USER INPUT
- //====================================================================================================100
- int frames_processed;
- //====================================================================================================100
- // CONSTANTS
- //====================================================================================================100
- int sSize;
- int tSize;
- int maxMove;
- fp alpha;
- //====================================================================================================100
- // FRAME
- //====================================================================================================100
- int no_frames;
- int frame_rows;
- int frame_cols;
- int frame_elem;
- int frame_mem;
- //====================================================================================================100
- // ENDO POINTS
- //====================================================================================================100
- int endoPoints;
- int endo_mem;
- //====================================================================================================100
- // EPI POINTS
- //====================================================================================================100
- int epiPoints;
- int epi_mem;
- //====================================================================================================100
- // ALL POINTS
- //====================================================================================================100
- int allPoints;
- //====================================================================================================100
- // End
- //====================================================================================================100
- //======================================================================================================================================================150
- // RIGHT TEMPLATE FROM TEMPLATE ARRAY
- //======================================================================================================================================================150
- int in_rows;
- int in_cols;
- int in_elem;
- int in_mem;
- //======================================================================================================================================================150
- // IN_POINTER
- //======================================================================================================================================================150
- int in_pointer_mem;
- //======================================================================================================================================================150
- // AREA AROUND POINT FROM FRAME
- //======================================================================================================================================================150
- int in2_rows;
- int in2_cols;
- int in2_elem;
- int in2_mem;
- //======================================================================================================================================================150
- // CONVOLUTION
- //======================================================================================================================================================150
- int conv_rows;
- int conv_cols;
- int conv_elem;
- int conv_mem;
- int ioffset;
- int joffset;
- //======================================================================================================================================================150
- // CUMULATIVE SUM 1
- //======================================================================================================================================================150
- //====================================================================================================100
- // PAD ARRAY, VERTICAL CUMULATIVE SUM
- //====================================================================================================100
- int in2_pad_add_rows;
- int in2_pad_add_cols;
- int in2_pad_cumv_rows;
- int in2_pad_cumv_cols;
- int in2_pad_cumv_elem;
- int in2_pad_cumv_mem;
- //====================================================================================================100
- // SELECTION
- //====================================================================================================100
- int in2_pad_cumv_sel_rows;
- int in2_pad_cumv_sel_cols;
- int in2_pad_cumv_sel_elem;
- int in2_pad_cumv_sel_mem;
- int in2_pad_cumv_sel_rowlow;
- int in2_pad_cumv_sel_rowhig;
- int in2_pad_cumv_sel_collow;
- int in2_pad_cumv_sel_colhig;
- //====================================================================================================100
- // SELECTION 2, SUBTRACTION, HORIZONTAL CUMULATIVE SUM
- //====================================================================================================100
- int in2_pad_cumv_sel2_rowlow;
- int in2_pad_cumv_sel2_rowhig;
- int in2_pad_cumv_sel2_collow;
- int in2_pad_cumv_sel2_colhig;
- int in2_sub_cumh_rows;
- int in2_sub_cumh_cols;
- int in2_sub_cumh_elem;
- int in2_sub_cumh_mem;
- //====================================================================================================100
- // SELECTION
- //====================================================================================================100
- int in2_sub_cumh_sel_rows;
- int in2_sub_cumh_sel_cols;
- int in2_sub_cumh_sel_elem;
- int in2_sub_cumh_sel_mem;
- int in2_sub_cumh_sel_rowlow;
- int in2_sub_cumh_sel_rowhig;
- int in2_sub_cumh_sel_collow;
- int in2_sub_cumh_sel_colhig;
- //====================================================================================================100
- // SELECTION 2, SUBTRACTION
- //====================================================================================================100
- int in2_sub_cumh_sel2_rowlow;
- int in2_sub_cumh_sel2_rowhig;
- int in2_sub_cumh_sel2_collow;
- int in2_sub_cumh_sel2_colhig;
- int in2_sub2_rows;
- int in2_sub2_cols;
- int in2_sub2_elem;
- int in2_sub2_mem;
- //====================================================================================================100
- // End
- //====================================================================================================100
- //======================================================================================================================================================150
- // CUMULATIVE SUM 2
- //======================================================================================================================================================150
- //====================================================================================================100
- // MULTIPLICATION
- //====================================================================================================100
- int in2_sqr_rows;
- int in2_sqr_cols;
- int in2_sqr_elem;
- int in2_sqr_mem;
- //====================================================================================================100
- // SELECTION 2, SUBTRACTION
- //====================================================================================================100
- int in2_sqr_sub2_rows;
- int in2_sqr_sub2_cols;
- int in2_sqr_sub2_elem;
- int in2_sqr_sub2_mem;
- //====================================================================================================100
- // End
- //====================================================================================================100
- //======================================================================================================================================================150
- // FINAL
- //======================================================================================================================================================150
- int in_sqr_rows;
- int in_sqr_cols;
- int in_sqr_elem;
- int in_sqr_mem;
- //======================================================================================================================================================150
- // TEMPLATE MASK CREATE
- //======================================================================================================================================================150
- int tMask_rows;
- int tMask_cols;
- int tMask_elem;
- int tMask_mem;
- //======================================================================================================================================================150
- // POINT MASK INITIALIZE
- //======================================================================================================================================================150
- int mask_rows;
- int mask_cols;
- int mask_elem;
- int mask_mem;
- //======================================================================================================================================================150
- // MASK CONVOLUTION
- //======================================================================================================================================================150
- int mask_conv_rows;
- int mask_conv_cols;
- int mask_conv_elem;
- int mask_conv_mem;
- int mask_conv_ioffset;
- int mask_conv_joffset;
- //======================================================================================================================================================150
- // End
- //======================================================================================================================================================150
- } params_common;
- //========================================================================================================================================================================================================200
- // END OF STRUCTURE
- //========================================================================================================================================================================================================200
|