You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 6.3 kB

5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. set(PROTO_LIST
  2. "${METADEF_DIR}/proto/task.proto"
  3. )
  4. protobuf_generate(ge PROTO_SRCS PROTO_HDRS ${PROTO_LIST})
  5. set(SRC_LIST
  6. "engine/host_cpu_engine.cc"
  7. "ops_kernel_store/host_cpu_ops_kernel_info.cc"
  8. "ops_kernel_store/op/op_factory.cc"
  9. "ops_kernel_store/op/host_op.cc"
  10. )
  11. set(CPU_OPS_KERNEL_LIST
  12. "ops_kernel_store/host_cpu_ops_kernel_builder.cc"
  13. )
  14. ############ libhost_cpu_engine.so ############
  15. add_library(host_cpu_engine SHARED ${SRC_LIST} ${PROTO_HDRS})
  16. target_compile_options(host_cpu_engine PRIVATE
  17. -Werror
  18. -fno-common
  19. -fvisibility=hidden
  20. )
  21. target_compile_definitions(host_cpu_engine PRIVATE
  22. google=ascend_private
  23. FUNC_VISIBILITY
  24. )
  25. target_include_directories(host_cpu_engine PRIVATE
  26. ${CMAKE_CURRENT_LIST_DIR}
  27. ${GE_CODE_DIR}/ge
  28. ${GE_CODE_DIR}/inc
  29. ${GE_CODE_DIR}/inc/external
  30. ${GE_CODE_DIR}/inc/framework
  31. ${METADEF_DIR}/inc
  32. ${METADEF_DIR}/inc/external
  33. ${METADEF_DIR}/inc/external/graph
  34. ${CMAKE_BINARY_DIR}
  35. ${CMAKE_BINARY_DIR}/proto/ge
  36. #### yellow zone ####
  37. ${GE_CODE_DIR}/../inc
  38. #### blue zone ####
  39. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  40. )
  41. target_link_options(host_cpu_engine PRIVATE
  42. -Wl,-Bsymbolic
  43. )
  44. target_link_libraries(host_cpu_engine PRIVATE
  45. $<BUILD_INTERFACE:intf_pub>
  46. -Wl,--no-as-needed
  47. ascend_protobuf
  48. c_sec
  49. graph
  50. slog
  51. -Wl,--as-needed
  52. )
  53. ############ atcstub/libhost_cpu_engine.so ############
  54. add_library(atc_host_cpu_engine SHARED ${SRC_LIST} ${PROTO_HDRS})
  55. target_compile_options(atc_host_cpu_engine PRIVATE
  56. -Werror
  57. -fno-common
  58. -fvisibility=hidden
  59. )
  60. target_compile_definitions(atc_host_cpu_engine PRIVATE
  61. google=ascend_private
  62. FUNC_VISIBILITY
  63. )
  64. target_include_directories(atc_host_cpu_engine PRIVATE
  65. ${CMAKE_CURRENT_LIST_DIR}
  66. ${GE_CODE_DIR}/ge
  67. ${GE_CODE_DIR}/inc
  68. ${GE_CODE_DIR}/inc/external
  69. ${GE_CODE_DIR}/inc/framework
  70. ${METADEF_DIR}/inc
  71. ${METADEF_DIR}/inc/external
  72. ${METADEF_DIR}/inc/external/graph
  73. ${CMAKE_BINARY_DIR}
  74. ${CMAKE_BINARY_DIR}/proto/ge
  75. #### yellow zone ####
  76. ${GE_CODE_DIR}/../inc
  77. #### blue zone ####
  78. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  79. )
  80. target_link_options(atc_host_cpu_engine PRIVATE
  81. -Wl,-Bsymbolic
  82. )
  83. target_link_libraries(atc_host_cpu_engine PRIVATE
  84. $<BUILD_INTERFACE:intf_pub>
  85. -Wl,--no-as-needed
  86. ascend_protobuf
  87. c_sec
  88. graph
  89. slog
  90. -Wl,--as-needed
  91. )
  92. set_target_properties(atc_host_cpu_engine PROPERTIES
  93. OUTPUT_NAME host_cpu_engine
  94. LIBRARY_OUTPUT_DIRECTORY atclib
  95. )
  96. ############ libhost_cpu_opskernel_builder.so ############
  97. add_library(host_cpu_opskernel_builder SHARED ${CPU_OPS_KERNEL_LIST})
  98. target_compile_options(host_cpu_opskernel_builder PRIVATE
  99. -Werror
  100. -fno-common
  101. -fvisibility=hidden
  102. )
  103. target_compile_definitions(host_cpu_opskernel_builder PRIVATE
  104. google=ascend_private
  105. FUNC_VISIBILITY
  106. )
  107. target_include_directories(host_cpu_opskernel_builder PRIVATE
  108. ${CMAKE_CURRENT_LIST_DIR}
  109. ${GE_CODE_DIR}/ge
  110. ${GE_CODE_DIR}/inc
  111. ${GE_CODE_DIR}/inc/external
  112. ${GE_CODE_DIR}/inc/framework
  113. ${METADEF_DIR}/inc
  114. ${METADEF_DIR}/inc/external
  115. ${METADEF_DIR}/inc/external/graph
  116. ${CMAKE_BINARY_DIR}
  117. ${CMAKE_BINARY_DIR}/proto/ge
  118. #### yellow zone ####
  119. ${GE_CODE_DIR}/../inc
  120. #### blue zone ####
  121. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  122. )
  123. target_link_options(host_cpu_opskernel_builder PRIVATE
  124. -Wl,-Bsymbolic
  125. )
  126. target_link_libraries(host_cpu_opskernel_builder PRIVATE
  127. $<BUILD_INTERFACE:intf_pub>
  128. -Wl,--no-as-needed
  129. ascend_protobuf
  130. c_sec
  131. slog
  132. graph
  133. register
  134. -Wl,--as-needed
  135. )
  136. ############ atclib/libhost_cpu_opskernel_builder.so ############
  137. add_library(atc_host_cpu_opskernel_builder SHARED ${CPU_OPS_KERNEL_LIST})
  138. target_compile_options(atc_host_cpu_opskernel_builder PRIVATE
  139. -Werror
  140. -fno-common
  141. -fvisibility=hidden
  142. )
  143. target_compile_definitions(atc_host_cpu_opskernel_builder PRIVATE
  144. google=ascend_private
  145. FUNC_VISIBILITY
  146. )
  147. target_include_directories(atc_host_cpu_opskernel_builder PRIVATE
  148. ${CMAKE_CURRENT_LIST_DIR}
  149. ${GE_CODE_DIR}/ge
  150. ${GE_CODE_DIR}/inc
  151. ${GE_CODE_DIR}/inc/external
  152. ${GE_CODE_DIR}/inc/framework
  153. ${METADEF_DIR}/inc
  154. ${METADEF_DIR}/inc/external
  155. ${METADEF_DIR}/inc/external/graph
  156. ${CMAKE_BINARY_DIR}
  157. ${CMAKE_BINARY_DIR}/proto/ge
  158. #### yellow zone ####
  159. ${GE_CODE_DIR}/../inc
  160. #### blue zone ####
  161. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  162. )
  163. target_link_options(atc_host_cpu_opskernel_builder PRIVATE
  164. -Wl,-Bsymbolic
  165. )
  166. target_link_libraries(atc_host_cpu_opskernel_builder PRIVATE
  167. $<BUILD_INTERFACE:intf_pub>
  168. -Wl,--no-as-needed
  169. ascend_protobuf
  170. c_sec
  171. slog
  172. graph
  173. register
  174. -Wl,--as-needed
  175. )
  176. set_target_properties(atc_host_cpu_opskernel_builder PROPERTIES
  177. OUTPUT_NAME host_cpu_opskernel_builder
  178. LIBRARY_OUTPUT_DIRECTORY atclib
  179. )
  180. ############ libhost_cpu_opskernel_builder.a ############
  181. add_library(host_cpu_opskernel_builder_static STATIC ${CPU_OPS_KERNEL_LIST})
  182. target_compile_options(host_cpu_opskernel_builder_static PRIVATE
  183. -Werror
  184. -fno-common
  185. -fvisibility=hidden
  186. )
  187. target_compile_definitions(host_cpu_opskernel_builder_static PRIVATE
  188. google=ascend_private
  189. LOG_CPP
  190. FUNC_VISIBILITY
  191. )
  192. target_include_directories(host_cpu_opskernel_builder_static PRIVATE
  193. ${CMAKE_CURRENT_LIST_DIR}
  194. ${GE_CODE_DIR}/ge
  195. ${GE_CODE_DIR}/inc
  196. ${GE_CODE_DIR}/inc/external
  197. ${GE_CODE_DIR}/inc/framework
  198. ${METADEF_DIR}/inc
  199. ${METADEF_DIR}/inc/external
  200. ${METADEF_DIR}/inc/external/graph
  201. ${CMAKE_BINARY_DIR}
  202. ${CMAKE_BINARY_DIR}/proto/ge
  203. #### yellow zone ####
  204. ${GE_CODE_DIR}/../inc
  205. #### blue zone ####
  206. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  207. )
  208. target_link_libraries(host_cpu_opskernel_builder_static PRIVATE
  209. $<BUILD_INTERFACE:intf_pub>
  210. ascend_protobuf
  211. c_sec
  212. )
  213. ############ install ############
  214. set(INSTALL_BASE_DIR "")
  215. set(INSTALL_LIBRARY_DIR lib)
  216. install(TARGETS host_cpu_engine host_cpu_opskernel_builder OPTIONAL
  217. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}
  218. )
  219. install(TARGETS atc_host_cpu_engine atc_host_cpu_opskernel_builder OPTIONAL
  220. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}/atclib
  221. )

图引擎模块(GE)是MindSpore的一个子模块,其代码由C++实现,位于前端模块ME和底层硬件之间,起到承接作用。图引擎模块以ME下发的图作为输入,然后进行一系列的深度图优化操作,最后输出一张可以在底层硬件上高效运行的图。GE针对昇腾AI处理器的硬件结构特点,做了特定的优化工作,以此来充分发挥出昇腾AI处理器的强大算力。在进行模型训练/推理时,GE会被自动调用而用户并不感知。GE主要由GE API和GE Core两部分组成,详细的架构图如下所示