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 5.3 kB

5 years ago
5 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
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. set(PROTO_LIST
  2. "${METADEF_DIR}/proto/om.proto"
  3. "${METADEF_DIR}/proto/ge_ir.proto"
  4. "${METADEF_DIR}/proto/insert_op.proto"
  5. "${METADEF_DIR}/proto/task.proto"
  6. )
  7. protobuf_generate(ge PROTO_SRCS PROTO_HDRS ${PROTO_LIST})
  8. set(SRC_LIST
  9. "main.cc"
  10. "single_op_parser.cc"
  11. "keep_dtype_option.cc"
  12. "../session/omg.cc"
  13. "../ir_build/atc_ir_common.cc"
  14. )
  15. ############ atc ############
  16. add_executable(atc ${SRC_LIST} ${PROTO_HDRS})
  17. target_compile_options(atc PRIVATE
  18. -Werror
  19. -O2
  20. -Wno-deprecated-declarations
  21. -fno-common
  22. )
  23. target_compile_definitions(atc PRIVATE
  24. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  25. COMPILE_OMG_PACKAGE
  26. google=ascend_private
  27. LOG_CPP
  28. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  29. )
  30. target_include_directories(atc PRIVATE
  31. ${CMAKE_CURRENT_LIST_DIR}
  32. ${GE_CODE_DIR}
  33. ${GE_CODE_DIR}/ge
  34. ${GE_CODE_DIR}/inc/external
  35. ${GE_CODE_DIR}/common/inc/external
  36. ${GE_CODE_DIR}/common/inc/external/graph
  37. ${GE_CODE_DIR}/inc
  38. ${GE_CODE_DIR}/inc/framework
  39. ${METADEF_DIR}/inc
  40. ${METADEF_DIR}/inc/graph
  41. ${METADEF_DIR}/inc/register
  42. ${METADEF_DIR}/inc/external
  43. ${METADEF_DIR}/inc/external/graph
  44. ${METADEF_DIR}/inc/external/register
  45. ${PARSER_DIR}
  46. ${CMAKE_BINARY_DIR}
  47. ${CMAKE_BINARY_DIR}/proto/ge
  48. #### yellow zone ####
  49. ${GE_CODE_DIR}/../inc
  50. ${GE_CODE_DIR}/../inc/common
  51. #### blue zone ####
  52. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  53. ${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain
  54. )
  55. target_link_libraries(atc PRIVATE
  56. $<BUILD_INTERFACE:intf_pub>
  57. ascend_protobuf
  58. ge_common
  59. register
  60. c_sec
  61. graph
  62. error_manager
  63. ge_compiler
  64. parser_common
  65. gflags
  66. json
  67. runtime_compile
  68. slog
  69. static_mmpa
  70. -lrt
  71. -ldl
  72. )
  73. ############ atc_atc.bin ############
  74. add_executable(atc_atc.bin ${SRC_LIST} ${PROTO_HDRS})
  75. target_compile_options(atc_atc.bin PRIVATE
  76. -Werror
  77. -O2
  78. -Wno-deprecated-declarations
  79. -fno-common
  80. )
  81. target_compile_definitions(atc_atc.bin PRIVATE
  82. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  83. COMPILE_OMG_PACKAGE
  84. google=ascend_private
  85. LOG_CPP
  86. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  87. )
  88. target_include_directories(atc_atc.bin PRIVATE
  89. ${CMAKE_CURRENT_LIST_DIR}
  90. ${GE_CODE_DIR}
  91. ${GE_CODE_DIR}/ge
  92. ${GE_CODE_DIR}/inc/external
  93. ${GE_CODE_DIR}/common/inc/external
  94. ${GE_CODE_DIR}/common/inc/external/graph
  95. ${GE_CODE_DIR}/inc
  96. ${GE_CODE_DIR}/inc/framework
  97. ${METADEF_DIR}/inc
  98. ${METADEF_DIR}/inc/graph
  99. ${METADEF_DIR}/inc/register
  100. ${METADEF_DIR}/inc/external
  101. ${METADEF_DIR}/inc/external/graph
  102. ${METADEF_DIR}/inc/external/register
  103. ${PARSER_DIR}
  104. ${CMAKE_BINARY_DIR}
  105. ${CMAKE_BINARY_DIR}/proto/ge
  106. #### yellow zone ####
  107. ${GE_CODE_DIR}/../inc
  108. ${GE_CODE_DIR}/../inc/common
  109. #### blue zone ####
  110. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  111. ${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain
  112. )
  113. target_link_libraries(atc_atc.bin PRIVATE
  114. $<BUILD_INTERFACE:intf_pub>
  115. ascend_protobuf
  116. ge_common
  117. register
  118. c_sec
  119. graph
  120. error_manager
  121. ge_compiler
  122. parser_common
  123. gflags
  124. json
  125. runtime_compile
  126. slog
  127. static_mmpa
  128. -lrt
  129. -ldl
  130. )
  131. set_target_properties(atc_atc.bin PROPERTIES
  132. OUTPUT_NAME atc.bin
  133. RUNTIME_OUTPUT_DIRECTORY atclib
  134. )
  135. ############ fwk_atc.bin ############
  136. add_executable(fwk_atc.bin ${SRC_LIST} ${PROTO_HDRS})
  137. target_compile_options(fwk_atc.bin PRIVATE
  138. -Werror
  139. -O2
  140. -Wno-deprecated-declarations
  141. -fno-common
  142. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  143. )
  144. target_compile_definitions(fwk_atc.bin PRIVATE
  145. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  146. COMPILE_OMG_PACKAGE
  147. google=ascend_private
  148. LOG_CPP
  149. )
  150. target_include_directories(fwk_atc.bin PRIVATE
  151. ${CMAKE_CURRENT_LIST_DIR}
  152. ${GE_CODE_DIR}
  153. ${GE_CODE_DIR}/ge
  154. ${GE_CODE_DIR}/inc/external
  155. ${GE_CODE_DIR}/common/inc/external
  156. ${GE_CODE_DIR}/common/inc/external/graph
  157. ${GE_CODE_DIR}/inc
  158. ${GE_CODE_DIR}/inc/framework
  159. ${METADEF_DIR}/inc
  160. ${METADEF_DIR}/inc/graph
  161. ${METADEF_DIR}/inc/register
  162. ${METADEF_DIR}/inc/external
  163. ${METADEF_DIR}/inc/external/graph
  164. ${METADEF_DIR}/inc/external/register
  165. ${PARSER_DIR}
  166. ${CMAKE_BINARY_DIR}
  167. ${CMAKE_BINARY_DIR}/proto/ge
  168. #### yellow zone ####
  169. ${GE_CODE_DIR}/../inc
  170. ${GE_CODE_DIR}/../inc/common
  171. #### blue zone ####
  172. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  173. ${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain
  174. )
  175. target_link_libraries(fwk_atc.bin PRIVATE
  176. $<BUILD_INTERFACE:intf_pub>
  177. ascend_protobuf
  178. ge_common
  179. register
  180. c_sec
  181. graph
  182. error_manager
  183. ge_runner
  184. parser_common
  185. gflags
  186. json
  187. runtime
  188. slog
  189. static_mmpa
  190. -lrt
  191. -ldl
  192. )
  193. set_target_properties(fwk_atc.bin PROPERTIES
  194. OUTPUT_NAME atc.bin
  195. RUNTIME_OUTPUT_DIRECTORY fwkacl
  196. )
  197. ############ install ############
  198. set(INSTALL_BASE_DIR "")
  199. set(INSTALL_LIBRARY_DIR lib)
  200. install(TARGETS atc OPTIONAL
  201. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}
  202. )
  203. install(TARGETS atc_atc.bin OPTIONAL
  204. RUNTIME DESTINATION ${INSTALL_LIBRARY_DIR}/atclib
  205. )
  206. install(TARGETS fwk_atc.bin OPTIONAL
  207. RUNTIME DESTINATION ${INSTALL_LIBRARY_DIR}/fwkacl
  208. )

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