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.6 kB

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

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