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

5 years ago
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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. "../session/omg.cc"
  12. "../ir_build/option_utils.cc"
  13. )
  14. ############ atc_atc.bin ############
  15. add_executable(atc_atc.bin ${SRC_LIST} ${PROTO_HDRS})
  16. target_compile_options(atc_atc.bin PRIVATE
  17. -Werror
  18. -O2
  19. -Wno-deprecated-declarations
  20. -fno-common
  21. -fvisibility=hidden
  22. )
  23. target_compile_definitions(atc_atc.bin PRIVATE
  24. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  25. COMPILE_OMG_PACKAGE
  26. google=ascend_private
  27. LOG_CPP
  28. FUNC_VISIBILITY
  29. )
  30. target_include_directories(atc_atc.bin 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_options(atc_atc.bin PRIVATE
  56. -Wl,-Bsymbolic
  57. )
  58. target_link_libraries(atc_atc.bin PRIVATE
  59. $<BUILD_INTERFACE:intf_pub>
  60. ascend_protobuf
  61. ge_common
  62. register
  63. c_sec
  64. graph
  65. error_manager
  66. ge_compiler
  67. parser_common
  68. gflags
  69. json
  70. runtime_compile
  71. slog
  72. static_mmpa
  73. -lrt
  74. -ldl
  75. )
  76. set_target_properties(atc_atc.bin PROPERTIES
  77. OUTPUT_NAME atc.bin
  78. RUNTIME_OUTPUT_DIRECTORY atclib
  79. )
  80. ############ fwk_atc.bin ############
  81. add_executable(fwk_atc.bin ${SRC_LIST} ${PROTO_HDRS})
  82. target_compile_options(fwk_atc.bin PRIVATE
  83. -Werror
  84. -O2
  85. -Wno-deprecated-declarations
  86. -fno-common
  87. -fvisibility=hidden
  88. )
  89. target_compile_definitions(fwk_atc.bin PRIVATE
  90. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  91. COMPILE_OMG_PACKAGE
  92. google=ascend_private
  93. LOG_CPP
  94. FUNC_VISIBILITY
  95. )
  96. target_include_directories(fwk_atc.bin PRIVATE
  97. ${CMAKE_CURRENT_LIST_DIR}
  98. ${GE_CODE_DIR}
  99. ${GE_CODE_DIR}/ge
  100. ${GE_CODE_DIR}/inc/external
  101. ${GE_CODE_DIR}/common/inc/external
  102. ${GE_CODE_DIR}/common/inc/external/graph
  103. ${GE_CODE_DIR}/inc
  104. ${GE_CODE_DIR}/inc/framework
  105. ${METADEF_DIR}/inc
  106. ${METADEF_DIR}/inc/graph
  107. ${METADEF_DIR}/inc/register
  108. ${METADEF_DIR}/inc/external
  109. ${METADEF_DIR}/inc/external/graph
  110. ${METADEF_DIR}/inc/external/register
  111. ${PARSER_DIR}
  112. ${CMAKE_BINARY_DIR}
  113. ${CMAKE_BINARY_DIR}/proto/ge
  114. #### yellow zone ####
  115. ${GE_CODE_DIR}/../inc
  116. ${GE_CODE_DIR}/../inc/common
  117. #### blue zone ####
  118. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  119. ${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain
  120. )
  121. target_link_options(fwk_atc.bin PRIVATE
  122. -Wl,-Bsymbolic
  123. )
  124. target_link_libraries(fwk_atc.bin PRIVATE
  125. $<BUILD_INTERFACE:intf_pub>
  126. ascend_protobuf
  127. ge_common
  128. register
  129. c_sec
  130. graph
  131. error_manager
  132. ge_runner
  133. parser_common
  134. gflags
  135. json
  136. runtime
  137. slog
  138. static_mmpa
  139. -lrt
  140. -ldl
  141. )
  142. set_target_properties(fwk_atc.bin PROPERTIES
  143. OUTPUT_NAME atc.bin
  144. RUNTIME_OUTPUT_DIRECTORY fwkacl
  145. )
  146. ############ install ############
  147. set(INSTALL_BASE_DIR "")
  148. set(INSTALL_LIBRARY_DIR lib)
  149. install(TARGETS atc_atc.bin OPTIONAL
  150. RUNTIME DESTINATION ${INSTALL_LIBRARY_DIR}/atclib
  151. )
  152. install(TARGETS fwk_atc.bin OPTIONAL
  153. RUNTIME DESTINATION ${INSTALL_LIBRARY_DIR}/fwkacl
  154. )

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