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

4 years ago
5 years ago
4 years ago
5 years ago
4 years ago
4 years ago
4 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
4 years ago
4 years ago
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. "${METADEF_DIR}/proto/op_mapping_info.proto"
  7. "${METADEF_DIR}/proto/dump_task.proto"
  8. )
  9. protobuf_generate(ge PROTO_SRCS PROTO_HDRS ${PROTO_LIST})
  10. set(SRC_LIST
  11. "ge_executor.cc"
  12. "../common/profiling/profiling_manager.cc"
  13. "../common/ge/plugin_manager.cc"
  14. "../common/ge/op_tiling_manager.cc"
  15. "../common/dump/dump_properties.cc"
  16. "../common/dump/dump_manager.cc"
  17. "../common/dump/dump_op.cc"
  18. "../graph/load/graph_loader.cc"
  19. "../graph/execute/graph_execute.cc"
  20. "../omm/csa_interact.cc"
  21. "../graph/manager/graph_manager_utils.cc"
  22. "../graph/manager/graph_var_manager.cc"
  23. "../graph/manager/graph_mem_allocator.cc"
  24. "../graph/manager/graph_caching_allocator.cc"
  25. "../graph/manager/trans_var_data_utils.cc"
  26. "../graph/manager/util/debug.cc"
  27. "../graph/manager/rdma_pool_allocator.cc"
  28. "../hybrid/node_executor/aicpu/aicpu_ext_info.cc"
  29. "../model/ge_model.cc"
  30. "../model/ge_root_model.cc"
  31. "../graph/load/new_model_manager/davinci_model.cc"
  32. "../graph/load/new_model_manager/davinci_model_parser.cc"
  33. "../graph/load/new_model_manager/model_manager.cc"
  34. "../graph/load/new_model_manager/tbe_handle_store.cc"
  35. "../graph/load/new_model_manager/cpu_queue_schedule.cc"
  36. "../graph/load/new_model_manager/model_utils.cc"
  37. "../graph/load/new_model_manager/aipp_utils.cc"
  38. "../graph/load/new_model_manager/data_inputer.cc"
  39. "../graph/load/new_model_manager/data_dumper.cc"
  40. "../graph/load/new_model_manager/zero_copy_task.cc"
  41. "../graph/load/new_model_manager/zero_copy_offset.cc"
  42. "../graph/load/new_model_manager/task_info/task_info.cc"
  43. "../graph/load/new_model_manager/task_info/event_record_task_info.cc"
  44. "../graph/load/new_model_manager/task_info/event_wait_task_info.cc"
  45. "../graph/load/new_model_manager/task_info/fusion_start_task_info.cc"
  46. "../graph/load/new_model_manager/task_info/fusion_stop_task_info.cc"
  47. "../graph/load/new_model_manager/task_info/kernel_ex_task_info.cc"
  48. "../graph/load/new_model_manager/task_info/kernel_task_info.cc"
  49. "../graph/load/new_model_manager/task_info/label_set_task_info.cc"
  50. "../graph/load/new_model_manager/task_info/label_switch_by_index_task_info.cc"
  51. "../graph/load/new_model_manager/task_info/label_goto_ex_task_info.cc"
  52. "../graph/load/new_model_manager/task_info/memcpy_async_task_info.cc"
  53. "../graph/load/new_model_manager/task_info/memcpy_addr_async_task_info.cc"
  54. "../graph/load/new_model_manager/task_info/profiler_trace_task_info.cc"
  55. "../graph/load/new_model_manager/task_info/stream_active_task_info.cc"
  56. "../graph/load/new_model_manager/task_info/stream_switch_task_info.cc"
  57. "../graph/load/new_model_manager/task_info/stream_switchn_task_info.cc"
  58. "../graph/load/new_model_manager/task_info/end_graph_task_info.cc"
  59. "../graph/load/new_model_manager/task_info/model_exit_task_info.cc"
  60. "../graph/load/new_model_manager/task_info/super_kernel/super_kernel_factory.cc"
  61. "../graph/load/new_model_manager/task_info/super_kernel/super_kernel.cc"
  62. "../opskernel_manager/ops_kernel_builder_manager.cc"
  63. "../single_op/single_op_manager.cc"
  64. "../single_op/single_op_model.cc"
  65. "../single_op/single_op.cc"
  66. "../single_op/stream_resource.cc"
  67. "../single_op/task/op_task.cc"
  68. "../single_op/task/build_task_utils.cc"
  69. "../single_op/task/tbe_task_builder.cc"
  70. "../single_op/task/aicpu_task_builder.cc"
  71. "../single_op/task/aicpu_kernel_task_builder.cc"
  72. "../hybrid/hybrid_davinci_model_stub.cc"
  73. )
  74. ######## libge_executor.a ########
  75. add_library(ge_executor STATIC ${SRC_LIST} ${PROTO_HDRS})
  76. target_compile_options(ge_executor PRIVATE
  77. -Werror
  78. -O2
  79. )
  80. target_compile_definitions(ge_executor PRIVATE
  81. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  82. DAVINCI_SUPPORT_PROFILING
  83. google=ascend_private
  84. )
  85. target_include_directories(ge_executor PRIVATE
  86. ${GE_CODE_DIR}/ge
  87. ${GE_CODE_DIR}/inc
  88. ${GE_CODE_DIR}/inc/external
  89. ${GE_CODE_DIR}/inc/framework
  90. ${METADEF_DIR}/inc
  91. ${METADEF_DIR}/inc/external
  92. ${METADEF_DIR}/inc/external/graph
  93. ${METADEF_DIR}/inc/graph
  94. ${CMAKE_BINARY_DIR}
  95. ${CMAKE_BINARY_DIR}/proto/ge
  96. #### yellow zone ####
  97. ${GE_CODE_DIR}/../inc
  98. ${GE_CODE_DIR}/../inc/cce
  99. #### blue zone ####
  100. ${GE_CODE_DIR}/third_party/fwkacllib/inc
  101. )
  102. target_link_libraries(ge_executor PRIVATE
  103. $<BUILD_INTERFACE:intf_pub>
  104. json
  105. ascend_protobuf
  106. c_sec
  107. $<$<NOT:$<STREQUAL:${TARGET_SYSTEM_NAME},Android>>:-lrt>
  108. -ldl
  109. )

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