main.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. //========================================================================================================================================================================================================200
  2. // DEFINE / INCLUDE
  3. //========================================================================================================================================================================================================200
  4. #define fp float
  5. #ifdef RD_WG_SIZE_0_0
  6. #define NUMBER_THREADS RD_WG_SIZE_0_0
  7. #elif defined(RD_WG_SIZE_0)
  8. #define NUMBER_THREADS RD_WG_SIZE_0
  9. #elif defined(RD_WG_SIZE)
  10. #define NUMBER_THREADS RD_WG_SIZE
  11. #else
  12. #define NUMBER_THREADS 128
  13. #endif
  14. #define CHECK 37
  15. // #define TEST_CHECKSUM
  16. // #define TEST_OUTPUT
  17. // #define INIT
  18. // need to define these for static allocation of constant memory in GPU, because it cannot be allocated dynamically
  19. #define ENDO_POINTS 20
  20. #define EPI_POINTS 31
  21. #define ALL_POINTS 51
  22. //========================================================================================================================================================================================================200
  23. // PARAMS_COMMON STRUCTURE
  24. //========================================================================================================================================================================================================200
  25. typedef struct params_common{
  26. //======================================================================================================================================================150
  27. // HARDCODED INPUTS FROM MATLAB
  28. //======================================================================================================================================================150
  29. //====================================================================================================100
  30. // UNIQUE PARAMETER STRUCTURE MEMORY SIZE
  31. //====================================================================================================100
  32. int common_change_mem;
  33. int common_mem;
  34. int unique_mem;
  35. //====================================================================================================100
  36. // USER INPUT
  37. //====================================================================================================100
  38. int frames_processed;
  39. //====================================================================================================100
  40. // CONSTANTS
  41. //====================================================================================================100
  42. int sSize;
  43. int tSize;
  44. int maxMove;
  45. fp alpha;
  46. //====================================================================================================100
  47. // FRAME
  48. //====================================================================================================100
  49. int no_frames;
  50. int frame_rows;
  51. int frame_cols;
  52. int frame_elem;
  53. int frame_mem;
  54. //====================================================================================================100
  55. // ENDO POINTS
  56. //====================================================================================================100
  57. int endoPoints;
  58. int endo_mem;
  59. //====================================================================================================100
  60. // EPI POINTS
  61. //====================================================================================================100
  62. int epiPoints;
  63. int epi_mem;
  64. //====================================================================================================100
  65. // ALL POINTS
  66. //====================================================================================================100
  67. int allPoints;
  68. //====================================================================================================100
  69. // End
  70. //====================================================================================================100
  71. //======================================================================================================================================================150
  72. // RIGHT TEMPLATE FROM TEMPLATE ARRAY
  73. //======================================================================================================================================================150
  74. int in_rows;
  75. int in_cols;
  76. int in_elem;
  77. int in_mem;
  78. //======================================================================================================================================================150
  79. // IN_POINTER
  80. //======================================================================================================================================================150
  81. int in_pointer_mem;
  82. //======================================================================================================================================================150
  83. // AREA AROUND POINT FROM FRAME
  84. //======================================================================================================================================================150
  85. int in2_rows;
  86. int in2_cols;
  87. int in2_elem;
  88. int in2_mem;
  89. //======================================================================================================================================================150
  90. // CONVOLUTION
  91. //======================================================================================================================================================150
  92. int conv_rows;
  93. int conv_cols;
  94. int conv_elem;
  95. int conv_mem;
  96. int ioffset;
  97. int joffset;
  98. //======================================================================================================================================================150
  99. // CUMULATIVE SUM 1
  100. //======================================================================================================================================================150
  101. //====================================================================================================100
  102. // PAD ARRAY, VERTICAL CUMULATIVE SUM
  103. //====================================================================================================100
  104. int in2_pad_add_rows;
  105. int in2_pad_add_cols;
  106. int in2_pad_cumv_rows;
  107. int in2_pad_cumv_cols;
  108. int in2_pad_cumv_elem;
  109. int in2_pad_cumv_mem;
  110. //====================================================================================================100
  111. // SELECTION
  112. //====================================================================================================100
  113. int in2_pad_cumv_sel_rows;
  114. int in2_pad_cumv_sel_cols;
  115. int in2_pad_cumv_sel_elem;
  116. int in2_pad_cumv_sel_mem;
  117. int in2_pad_cumv_sel_rowlow;
  118. int in2_pad_cumv_sel_rowhig;
  119. int in2_pad_cumv_sel_collow;
  120. int in2_pad_cumv_sel_colhig;
  121. //====================================================================================================100
  122. // SELECTION 2, SUBTRACTION, HORIZONTAL CUMULATIVE SUM
  123. //====================================================================================================100
  124. int in2_pad_cumv_sel2_rowlow;
  125. int in2_pad_cumv_sel2_rowhig;
  126. int in2_pad_cumv_sel2_collow;
  127. int in2_pad_cumv_sel2_colhig;
  128. int in2_sub_cumh_rows;
  129. int in2_sub_cumh_cols;
  130. int in2_sub_cumh_elem;
  131. int in2_sub_cumh_mem;
  132. //====================================================================================================100
  133. // SELECTION
  134. //====================================================================================================100
  135. int in2_sub_cumh_sel_rows;
  136. int in2_sub_cumh_sel_cols;
  137. int in2_sub_cumh_sel_elem;
  138. int in2_sub_cumh_sel_mem;
  139. int in2_sub_cumh_sel_rowlow;
  140. int in2_sub_cumh_sel_rowhig;
  141. int in2_sub_cumh_sel_collow;
  142. int in2_sub_cumh_sel_colhig;
  143. //====================================================================================================100
  144. // SELECTION 2, SUBTRACTION
  145. //====================================================================================================100
  146. int in2_sub_cumh_sel2_rowlow;
  147. int in2_sub_cumh_sel2_rowhig;
  148. int in2_sub_cumh_sel2_collow;
  149. int in2_sub_cumh_sel2_colhig;
  150. int in2_sub2_rows;
  151. int in2_sub2_cols;
  152. int in2_sub2_elem;
  153. int in2_sub2_mem;
  154. //====================================================================================================100
  155. // End
  156. //====================================================================================================100
  157. //======================================================================================================================================================150
  158. // CUMULATIVE SUM 2
  159. //======================================================================================================================================================150
  160. //====================================================================================================100
  161. // MULTIPLICATION
  162. //====================================================================================================100
  163. int in2_sqr_rows;
  164. int in2_sqr_cols;
  165. int in2_sqr_elem;
  166. int in2_sqr_mem;
  167. //====================================================================================================100
  168. // SELECTION 2, SUBTRACTION
  169. //====================================================================================================100
  170. int in2_sqr_sub2_rows;
  171. int in2_sqr_sub2_cols;
  172. int in2_sqr_sub2_elem;
  173. int in2_sqr_sub2_mem;
  174. //====================================================================================================100
  175. // End
  176. //====================================================================================================100
  177. //======================================================================================================================================================150
  178. // FINAL
  179. //======================================================================================================================================================150
  180. int in_sqr_rows;
  181. int in_sqr_cols;
  182. int in_sqr_elem;
  183. int in_sqr_mem;
  184. //======================================================================================================================================================150
  185. // TEMPLATE MASK CREATE
  186. //======================================================================================================================================================150
  187. int tMask_rows;
  188. int tMask_cols;
  189. int tMask_elem;
  190. int tMask_mem;
  191. //======================================================================================================================================================150
  192. // POINT MASK INITIALIZE
  193. //======================================================================================================================================================150
  194. int mask_rows;
  195. int mask_cols;
  196. int mask_elem;
  197. int mask_mem;
  198. //======================================================================================================================================================150
  199. // MASK CONVOLUTION
  200. //======================================================================================================================================================150
  201. int mask_conv_rows;
  202. int mask_conv_cols;
  203. int mask_conv_elem;
  204. int mask_conv_mem;
  205. int mask_conv_ioffset;
  206. int mask_conv_joffset;
  207. //======================================================================================================================================================150
  208. // End
  209. //======================================================================================================================================================150
  210. } params_common;
  211. //========================================================================================================================================================================================================200
  212. // END OF STRUCTURE
  213. //========================================================================================================================================================================================================200