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

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 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
5 years ago
5 years ago
5 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
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 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
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954
  1. if (NOT ENABLE_D AND NOT ENABLE_ACL AND NOT ENABLE_MS_TESTCASES)
  2. add_subdirectory(common)
  3. add_subdirectory(plugin/engine)
  4. add_subdirectory(ge_local_engine)
  5. add_subdirectory(offline)
  6. elseif (ENABLE_D)
  7. add_subdirectory(common)
  8. add_subdirectory(ge_runtime)
  9. endif ()
  10. set(GRAPHENGINE_PROTO_LIST
  11. "${METADEF_DIR}/proto/om.proto"
  12. "${METADEF_DIR}/proto/task.proto"
  13. "${METADEF_DIR}/proto/insert_op.proto"
  14. "${METADEF_DIR}/proto/ge_ir.proto"
  15. "${METADEF_DIR}/proto/ge_api.proto"
  16. "${METADEF_DIR}/proto/fusion_model.proto"
  17. "${METADEF_DIR}/proto/optimizer_priority.proto"
  18. "${METADEF_DIR}/proto/fwk_adapter.proto"
  19. "${METADEF_DIR}/proto/op_mapping.proto"
  20. "${METADEF_DIR}/proto/dump_task.proto"
  21. "${METADEF_DIR}/proto/tensorflow/graph_library.proto"
  22. "${METADEF_DIR}/proto/tensorflow/graph.proto"
  23. "${METADEF_DIR}/proto/tensorflow/node_def.proto"
  24. "${METADEF_DIR}/proto/tensorflow/function.proto"
  25. "${METADEF_DIR}/proto/tensorflow/versions.proto"
  26. "${METADEF_DIR}/proto/tensorflow/attr_value.proto"
  27. "${METADEF_DIR}/proto/tensorflow/op_def.proto"
  28. "${METADEF_DIR}/proto/tensorflow/tensor.proto"
  29. "${METADEF_DIR}/proto/tensorflow/tensor_shape.proto"
  30. "${METADEF_DIR}/proto/tensorflow/types.proto"
  31. "${METADEF_DIR}/proto/tensorflow/resource_handle.proto"
  32. )
  33. protobuf_generate(graphengine_protos GRAPHENGINE_PROTO_SRCS GRAPHENGINE_PROTO_HDRS ${GRAPHENGINE_PROTO_LIST} TARGET)
  34. set(GE_FUSION_MODEL_PROTO_SRCS
  35. "${CMAKE_BINARY_DIR}/proto/graphengine_protos/proto/fusion_model.pb.cc"
  36. "${CMAKE_BINARY_DIR}/proto/graphengine_protos/proto/optimizer_priority.pb.cc"
  37. )
  38. add_library(ge_fusion_model_protos_obj OBJECT ${GE_FUSION_MODEL_PROTO_SRCS})
  39. add_dependencies(ge_fusion_model_protos_obj graphengine_protos)
  40. target_include_directories(ge_fusion_model_protos_obj PRIVATE
  41. #### blue zone ####
  42. ${PROTOBUF_SHARED_PKG_DIR}/include
  43. #### yellow zone ####
  44. ${ASCEND_PROTOBUF_SHARED_PKG_DIR}/include
  45. )
  46. target_compile_definitions(ge_fusion_model_protos_obj PRIVATE
  47. google=ascend_private
  48. )
  49. target_link_libraries(ge_fusion_model_protos_obj PRIVATE ascend_protobuf $<BUILD_INTERFACE:intf_pub>)
  50. target_compile_options(ge_fusion_model_protos_obj PRIVATE
  51. $<$<STREQUAL:${TARGET_SYSTEM_NAME},Linux>:-O2 -fPIC>
  52. $<$<OR:$<STREQUAL:${PRODUCT_SIDE},host>,$<STREQUAL:${ENABLE_OPEN_SRC},True>>:-fexceptions>
  53. $<$<OR:$<STREQUAL:${TARGET_SYSTEM_NAME},Linux>,$<STREQUAL:${TARGET_SYSTEM_NAME},Android>>: -Wno-deprecated-declarations -fno-common>
  54. $<$<AND:$<STREQUAL:${TARGET_SYSTEM_NAME},Windows>,$<STREQUAL:${CMAKE_CONFIGURATION_TYPES},Debug>>:/MTd>
  55. $<$<AND:$<STREQUAL:${TARGET_SYSTEM_NAME},Windows>,$<STREQUAL:${CMAKE_CONFIGURATION_TYPES},Release>>:/MT>
  56. )
  57. if (NOT ENABLE_D AND NOT ENABLE_ACL AND NOT ENABLE_MS_TESTCASES)
  58. ############ libge_proto_common.a ############
  59. add_library(ge_proto_common STATIC
  60. $<TARGET_OBJECTS:ge_fusion_model_protos_obj>
  61. )
  62. target_compile_definitions(ge_proto_common PRIVATE
  63. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  64. google=ascend_private
  65. )
  66. target_compile_options(ge_proto_common PRIVATE
  67. -O2
  68. -fno-common
  69. )
  70. target_link_libraries(ge_proto_common PRIVATE
  71. $<BUILD_INTERFACE:intf_pub>
  72. ascend_protobuf
  73. )
  74. ############ libge_proto_client.a ############
  75. add_library(ge_proto_client STATIC
  76. $<TARGET_OBJECTS:ge_fusion_model_protos_obj>
  77. )
  78. target_compile_definitions(ge_proto_client PRIVATE
  79. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  80. google=ascend_private
  81. )
  82. target_include_directories(ge_proto_client PRIVATE
  83. ${CMAKE_BINARY_DIR}/proto/graphengine_protos
  84. ${CMAKE_BINARY_DIR}/proto/graphengine_protos/proto
  85. )
  86. target_compile_options(ge_proto_client PRIVATE
  87. -O2
  88. -fno-common
  89. )
  90. target_link_libraries(ge_proto_client PRIVATE
  91. $<BUILD_INTERFACE:intf_pub>
  92. ascend_protobuf
  93. )
  94. endif ()
  95. ##################################################################
  96. set(EXECUTOR_SRC_LIST
  97. "common/dump/dump_op.cc"
  98. "common/dump/exception_dumper.cc"
  99. "common/dump/opdebug_register.cc"
  100. "common/ge/op_tiling_manager.cc"
  101. "common/ge/plugin_manager.cc"
  102. "common/profiling/ge_profiling.cc"
  103. "common/profiling/profiling_manager.cc"
  104. "executor/ge_executor.cc"
  105. "ge_local_engine/engine/host_cpu_engine.cc"
  106. "graph/execute/graph_execute.cc"
  107. "graph/execute/model_executor.cc"
  108. "graph/load/graph_loader.cc"
  109. "graph/load/model_manager/aipp_utils.cc"
  110. "graph/load/model_manager/cpu_queue_schedule.cc"
  111. "graph/load/model_manager/data_dumper.cc"
  112. "graph/load/model_manager/data_inputer.cc"
  113. "graph/load/model_manager/davinci_model.cc"
  114. "graph/load/model_manager/model_manager.cc"
  115. "graph/load/model_manager/model_utils.cc"
  116. "graph/load/model_manager/task_info/end_graph_task_info.cc"
  117. "graph/load/model_manager/task_info/event_record_task_info.cc"
  118. "graph/load/model_manager/task_info/event_wait_task_info.cc"
  119. "graph/load/model_manager/task_info/ffts_task_info.cc"
  120. "graph/load/model_manager/task_info/fusion_start_task_info.cc"
  121. "graph/load/model_manager/task_info/fusion_stop_task_info.cc"
  122. #"graph/load/model_manager/task_info/hccl_task_info.cc" # Just for runner.
  123. "graph/load/model_manager/task_info/kernel_ex_task_info.cc"
  124. "graph/load/model_manager/task_info/kernel_task_info.cc"
  125. "graph/load/model_manager/task_info/label_goto_ex_task_info.cc"
  126. "graph/load/model_manager/task_info/label_set_task_info.cc"
  127. "graph/load/model_manager/task_info/label_switch_by_index_task_info.cc"
  128. "graph/load/model_manager/task_info/memcpy_addr_async_task_info.cc"
  129. "graph/load/model_manager/task_info/memcpy_async_task_info.cc"
  130. "graph/load/model_manager/task_info/model_exit_task_info.cc"
  131. "graph/load/model_manager/task_info/profiler_trace_task_info.cc"
  132. "graph/load/model_manager/task_info/stream_active_task_info.cc"
  133. "graph/load/model_manager/task_info/stream_switch_task_info.cc"
  134. "graph/load/model_manager/task_info/stream_switchn_task_info.cc"
  135. "graph/load/model_manager/task_info/super_kernel/super_kernel.cc"
  136. "graph/load/model_manager/task_info/super_kernel/super_kernel_factory.cc"
  137. "graph/load/model_manager/task_info/task_info.cc"
  138. "graph/load/model_manager/tbe_handle_store.cc"
  139. "graph/load/model_manager/zero_copy_offset.cc"
  140. "graph/load/model_manager/zero_copy_task.cc"
  141. "graph/manager/graph_caching_allocator.cc"
  142. "graph/manager/graph_mem_allocator.cc"
  143. "graph/manager/graph_mem_manager.cc"
  144. "graph/manager/host_mem_allocator.cc"
  145. "graph/manager/host_mem_manager.cc"
  146. #"graph/manager/memory_api.cc" # Just for runner.
  147. "graph/manager/rdma_pool_allocator.cc"
  148. "graph/manager/session_scope_mem_allocator.cc"
  149. "graph/manager/trans_var_data_utils.cc"
  150. "graph/manager/util/debug.cc"
  151. #"graph/manager/util/hcom_util.cc" # Just for runner.
  152. "graph/passes/pass_utils.cc"
  153. "host_kernels/kernel_utils.cc"
  154. "host_kernels/rank_kernel.cc"
  155. "host_kernels/shape_kernel.cc"
  156. "host_kernels/shape_n_kernel.cc"
  157. "host_kernels/size_kernel.cc"
  158. "hybrid/common/npu_memory_allocator.cc"
  159. "hybrid/common/tensor_value.cc"
  160. "hybrid/executor/hybrid_execution_context.cc"
  161. "hybrid/executor/hybrid_model_async_executor.cc"
  162. "hybrid/executor/hybrid_model_executor.cc"
  163. "hybrid/executor/hybrid_model_pipeline_executor.cc"
  164. "hybrid/executor/hybrid_profiler.cc"
  165. "hybrid/executor/node_done_manager.cc"
  166. "hybrid/executor/node_state.cc"
  167. "hybrid/executor/rt_callback_manager.cc"
  168. "hybrid/executor/subgraph_context.cc"
  169. "hybrid/executor/subgraph_executor.cc"
  170. "hybrid/executor/worker/execution_engine.cc"
  171. "hybrid/executor/worker/shape_inference_engine.cc"
  172. "hybrid/executor/worker/task_compile_engine.cc"
  173. "hybrid/hybrid_davinci_model.cc"
  174. "hybrid/model/graph_item.cc"
  175. "hybrid/model/hybrid_model.cc"
  176. "hybrid/model/hybrid_model_builder.cc"
  177. "hybrid/model/node_item.cc"
  178. "hybrid/node_executor/aicore/aicore_node_executor.cc"
  179. "hybrid/node_executor/aicore/aicore_op_task.cc"
  180. "hybrid/node_executor/aicore/aicore_task_builder.cc"
  181. "hybrid/node_executor/aicpu/aicpu_ext_info.cc"
  182. "hybrid/node_executor/aicpu/aicpu_node_executor.cc"
  183. "hybrid/node_executor/compiledsubgraph/known_node_executor.cc"
  184. "hybrid/node_executor/controlop/control_op_executor.cc"
  185. "hybrid/node_executor/ge_local/ge_local_node_executor.cc"
  186. #"hybrid/node_executor/hccl/hccl_node_executor.cc" # Just for runner.
  187. "hybrid/node_executor/host_cpu/host_cpu_node_executor.cc"
  188. "hybrid/node_executor/node_executor.cc"
  189. "hybrid/node_executor/partitioned_call/partitioned_call_node_executor.cc"
  190. "hybrid/node_executor/rts/rts_node_executor.cc"
  191. "hybrid/node_executor/rts/rts_node_task.cc"
  192. "hybrid/node_executor/rts/rts_task_factory.cc"
  193. "hybrid/node_executor/task_context.cc"
  194. "opskernel_manager/ops_kernel_builder_manager.cc"
  195. "single_op/single_op.cc"
  196. "single_op/single_op_manager.cc"
  197. "single_op/single_op_model.cc"
  198. "single_op/stream_resource.cc"
  199. "single_op/task/aicpu_kernel_task_builder.cc"
  200. "single_op/task/aicpu_task_builder.cc"
  201. "single_op/task/build_task_utils.cc"
  202. "single_op/task/op_task.cc"
  203. "single_op/task/rts_kernel_task_builder.cc"
  204. "single_op/task/tbe_task_builder.cc"
  205. )
  206. ##################################################################
  207. set(COMPILER_SRC_LIST
  208. "analyzer/analyzer.cc"
  209. "common/dump/dump_op.cc"
  210. "common/ge/op_tiling_manager.cc"
  211. "common/ge/plugin_manager.cc"
  212. "engine_manager/dnnengine_manager.cc"
  213. "ge_local_engine/engine/host_cpu_engine.cc"
  214. "ge_opt_info/ge_opt_info.cc"
  215. "generator/ge_generator.cc"
  216. "generator/generator_api.cc"
  217. "graph/build/graph_builder.cc"
  218. "graph/build/label_allocator.cc"
  219. "graph/build/logical_stream_allocator.cc"
  220. "graph/build/memory/binary_block_mem_assigner.cc"
  221. "graph/build/memory/block_mem_assigner.cc"
  222. "graph/build/memory/buffer_pool_mem_assigner.cc"
  223. "graph/build/memory/graph_mem_assigner.cc"
  224. "graph/build/memory/hybrid_mem_assigner.cc"
  225. "graph/build/memory/max_block_mem_assigner.cc"
  226. "graph/build/memory/memory_assigner.cc"
  227. "graph/build/model_builder.cc"
  228. "graph/build/run_context.cc"
  229. "graph/build/stream_allocator.cc"
  230. "graph/build/stream_graph_optimizer.cc"
  231. "graph/build/task_generator.cc"
  232. "graph/label/case_label_maker.cc"
  233. "graph/label/if_label_maker.cc"
  234. "graph/label/label_maker.cc"
  235. "graph/label/partitioned_call_label_maker.cc"
  236. "graph/label/while_label_maker.cc"
  237. "graph/manager/graph_context.cc"
  238. "graph/manager/graph_manager.cc"
  239. "graph/manager/util/rt_context_util.cc"
  240. "graph/manager/util/variable_accelerate_ctrl.cc"
  241. "graph/optimize/graph_optimize.cc"
  242. "graph/optimize/mem_rw_conflict_optimize.cc"
  243. "graph/optimize/summary_optimize.cc"
  244. "graph/partition/dynamic_shape_partition.cc"
  245. "graph/partition/engine_place.cc"
  246. "graph/partition/graph_partition.cc"
  247. "graph/partition/stage_partition.cc"
  248. "graph/passes/addn_pass.cc"
  249. "graph/passes/aicpu_constant_folding_pass.cc"
  250. "graph/passes/assert_pass.cc"
  251. "graph/passes/assign_remove_pass.cc"
  252. "graph/passes/atomic_addr_clean_pass.cc"
  253. "graph/passes/attach_stream_label_pass.cc"
  254. "graph/passes/base_pass.cc"
  255. "graph/passes/bitcast_pass.cc"
  256. "graph/passes/buffer_pool_memory_pass.cc"
  257. "graph/passes/cast_remove_pass.cc"
  258. "graph/passes/cast_translate_pass.cc"
  259. "graph/passes/common_subexpression_elimination_pass.cc"
  260. "graph/passes/compile_nodes_pass.cc"
  261. "graph/passes/cond_pass.cc"
  262. "graph/passes/cond_remove_pass.cc"
  263. "graph/passes/constant_folding_pass.cc"
  264. "graph/passes/constant_fuse_same_pass.cc"
  265. "graph/passes/control_trigger_pass.cc"
  266. "graph/passes/ctrl_edge_transfer_pass.cc"
  267. "graph/passes/data_pass.cc"
  268. "graph/passes/dimension_adjust_pass.cc"
  269. "graph/passes/dimension_compute_pass.cc"
  270. "graph/passes/dropout_pass.cc"
  271. "graph/passes/end_of_sequence_add_control_pass.cc"
  272. "graph/passes/enter_pass.cc"
  273. "graph/passes/flow_ctrl_pass.cc"
  274. "graph/passes/folding_pass.cc"
  275. "graph/passes/for_pass.cc"
  276. "graph/passes/fuse_data_nodes_with_common_input_pass.cc"
  277. "graph/passes/get_original_format_pass.cc"
  278. "graph/passes/global_step_insert_pass.cc"
  279. "graph/passes/guarantee_const_pass.cc"
  280. "graph/passes/hccl_continuous_memcpy_pass.cc"
  281. "graph/passes/hccl_group_pass.cc"
  282. "graph/passes/hccl_memcpy_pass.cc"
  283. "graph/passes/hccl_tailing_optimization_pass.cc"
  284. "graph/passes/identity_pass.cc"
  285. "graph/passes/infer_base_pass.cc"
  286. "graph/passes/infer_value_range_pass.cc"
  287. "graph/passes/infershape_pass.cc"
  288. "graph/passes/inplace_support_check_pass.cc"
  289. "graph/passes/input_output_connection_identify_pass.cc"
  290. "graph/passes/iterator_op_pass.cc"
  291. "graph/passes/link_gen_mask_nodes_pass.cc"
  292. "graph/passes/mark_agnostic_pass.cc"
  293. "graph/passes/mark_force_unknown_for_cond_pass.cc"
  294. "graph/passes/mark_graph_unknown_status_pass.cc"
  295. "graph/passes/mark_node_unknown_shape_pass.cc"
  296. "graph/passes/mark_same_addr_pass.cc"
  297. "graph/passes/memcpy_addr_async_pass.cc"
  298. "graph/passes/merge_input_memcpy_pass.cc"
  299. "graph/passes/merge_pass.cc"
  300. "graph/passes/merge_to_stream_merge_pass.cc"
  301. "graph/passes/multi_batch_clone_pass.cc"
  302. "graph/passes/multi_batch_pass.cc"
  303. "graph/passes/net_output_pass.cc"
  304. "graph/passes/next_iteration_pass.cc"
  305. "graph/passes/no_use_reshape_remove_pass.cc"
  306. "graph/passes/parallel_concat_start_op_pass.cc"
  307. "graph/passes/parallel_group_pass.cc"
  308. "graph/passes/pass_manager.cc"
  309. "graph/passes/pass_utils.cc"
  310. "graph/passes/permute_pass.cc"
  311. "graph/passes/placeholder_with_default_pass.cc"
  312. "graph/passes/prevent_gradient_pass.cc"
  313. "graph/passes/print_op_pass.cc"
  314. "graph/passes/prune_pass.cc"
  315. "graph/passes/ref_identity_delete_op_pass.cc"
  316. "graph/passes/remove_same_const_pass.cc"
  317. "graph/passes/replace_transshape_pass.cc"
  318. "graph/passes/replace_with_empty_const_pass.cc"
  319. "graph/passes/reshape_recovery_pass.cc"
  320. "graph/passes/reshape_remove_pass.cc"
  321. "graph/passes/resource_pair_add_control_pass.cc"
  322. "graph/passes/resource_pair_remove_control_pass.cc"
  323. "graph/passes/same_transdata_breadth_fusion_pass.cc"
  324. "graph/passes/save_pass.cc"
  325. "graph/passes/set_input_output_offset_pass.cc"
  326. "graph/passes/shape_operate_op_remove_pass.cc"
  327. "graph/passes/snapshot_pass.cc"
  328. "graph/passes/stop_gradient_pass.cc"
  329. "graph/passes/subexpression_migration_pass.cc"
  330. "graph/passes/subgraph_const_migration_pass.cc"
  331. "graph/passes/subgraph_pass.cc"
  332. "graph/passes/switch_data_edges_bypass.cc"
  333. "graph/passes/switch_dead_branch_elimination.cc"
  334. "graph/passes/switch_logic_remove_pass.cc"
  335. "graph/passes/switch_to_stream_switch_pass.cc"
  336. "graph/passes/transop_breadth_fusion_pass.cc"
  337. "graph/passes/transop_depth_fusion_pass.cc"
  338. "graph/passes/transop_nearby_allreduce_fusion_pass.cc"
  339. "graph/passes/transop_symmetry_elimination_pass.cc"
  340. "graph/passes/transop_without_reshape_fusion_pass.cc"
  341. "graph/passes/transpose_transdata_pass.cc"
  342. "graph/passes/unused_args_clean_pass.cc"
  343. "graph/passes/unused_const_pass.cc"
  344. "graph/passes/useless_control_out_remove_pass.cc"
  345. "graph/passes/var_is_initialized_op_pass.cc"
  346. "graph/passes/variable_op_pass.cc"
  347. "graph/passes/variable_prepare_op_pass.cc"
  348. "graph/passes/variable_ref_delete_op_pass.cc"
  349. "graph/passes/variable_ref_useless_control_out_delete_pass.cc"
  350. "graph/preprocess/graph_preprocess.cc"
  351. "graph/preprocess/insert_op/ge_aipp_op.cc"
  352. "graph/preprocess/insert_op/util_insert_aipp_op.cc"
  353. "graph/preprocess/multi_batch_copy_graph.cc"
  354. "graph/preprocess/multi_batch_options.cc"
  355. "host_kernels/add_kernel.cc"
  356. "host_kernels/broadcast_args_kernel.cc"
  357. "host_kernels/broadcast_gradient_args_kernel.cc"
  358. "host_kernels/cast_kernel.cc"
  359. "host_kernels/concat_offset_kernel.cc"
  360. "host_kernels/concat_v2_kernel.cc"
  361. "host_kernels/dynamic_stitch_kernel.cc"
  362. "host_kernels/empty_kernel.cc"
  363. "host_kernels/expanddims_kernel.cc"
  364. "host_kernels/fill_kernel.cc"
  365. "host_kernels/floordiv_kernel.cc"
  366. "host_kernels/floormod_kernel.cc"
  367. "host_kernels/gather_v2_kernel.cc"
  368. "host_kernels/greater_kernel.cc"
  369. "host_kernels/identity_kernel.cc"
  370. "host_kernels/kernel_utils.cc"
  371. "host_kernels/maximum_kernel.cc"
  372. "host_kernels/mul_kernel.cc"
  373. "host_kernels/pack_kernel.cc"
  374. "host_kernels/permute_kernel.cc"
  375. "host_kernels/range_kernel.cc"
  376. "host_kernels/rank_kernel.cc"
  377. "host_kernels/reduce_prod_kernel.cc"
  378. "host_kernels/reformat_kernel.cc"
  379. "host_kernels/reshape_kernel.cc"
  380. "host_kernels/rsqrt_kernel.cc"
  381. "host_kernels/shape_kernel.cc"
  382. "host_kernels/shape_n_kernel.cc"
  383. "host_kernels/size_kernel.cc"
  384. "host_kernels/slice_d_kernel.cc"
  385. "host_kernels/slice_kernel.cc"
  386. "host_kernels/squeeze_kernel.cc"
  387. "host_kernels/ssd_prior_box_kernel.cc"
  388. "host_kernels/strided_slice_kernel.cc"
  389. "host_kernels/sub_kernel.cc"
  390. "host_kernels/transdata_kernel.cc"
  391. "host_kernels/transpose_kernel.cc"
  392. "host_kernels/unpack_kernel.cc"
  393. "host_kernels/unsqueeze_kernel.cc"
  394. "init/gelib.cc"
  395. "ir_build/attr_options/keep_dtype_option.cc"
  396. "ir_build/attr_options/utils.cc"
  397. "ir_build/attr_options/weight_compress_option.cc"
  398. "ir_build/ge_ir_build.cc"
  399. "ir_build/option_utils.cc"
  400. "opskernel_manager/ops_kernel_builder_manager.cc"
  401. "opskernel_manager/ops_kernel_manager.cc"
  402. )
  403. set(RUNNER_SRC_LIST
  404. "client/ge_api.cc"
  405. "session/inner_session.cc"
  406. "session/session_manager.cc"
  407. "common/profiling/ge_runner_profiling.cc"
  408. "graph/manager/memory_api.cc"
  409. "graph/manager/util/hcom_util.cc"
  410. "graph/load/model_manager/task_info/hccl_task_info.cc"
  411. "hybrid/node_executor/hccl/hccl_node_executor.cc"
  412. "hybrid/node_executor/aicore/aicore_task_compiler.cc"
  413. )
  414. if (NOT ENABLE_D AND NOT ENABLE_ACL AND NOT ENABLE_MS_TESTCASES)
  415. message("CMAKE_CXX_COMPILER_VERSION = ${CMAKE_CXX_COMPILER_VERSION}")
  416. ############ libge_runner.so ############
  417. add_library(ge_runner SHARED
  418. ${RUNNER_SRC_LIST}
  419. $<TARGET_OBJECTS:$<IF:$<TARGET_EXISTS:msprofiler_fwk>,msprofiler_fwk,msprofiler_fwk_object>>
  420. )
  421. add_library(msprofiler_fwk_object OBJECT IMPORTED GLOBAL)
  422. if (msprofiler_fwk_ext_LIBRARY_DIR)
  423. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/msprofiler_fwk_object)
  424. execute_process(
  425. COMMAND ar x ${msprofiler_fwk_ext_LIBRARY_DIR}
  426. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/msprofiler_fwk_object
  427. )
  428. file(GLOB MSPROFILER_FWK_OBJECT_LIST ${CMAKE_CURRENT_BINARY_DIR}/msprofiler_fwk_object/*.o)
  429. set_property(TARGET msprofiler_fwk_object PROPERTY IMPORTED_OBJECTS ${MSPROFILER_FWK_OBJECT_LIST})
  430. endif()
  431. target_compile_definitions(ge_runner PRIVATE
  432. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  433. DAVINCI_SUPPORT_PROFILING
  434. REUSE_MEMORY=1
  435. FMK_SUPPORT_DUMP
  436. DAVINCI_CLOUD
  437. google=ascend_private
  438. FUNC_VISIBILITY
  439. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  440. )
  441. target_compile_options(ge_runner PRIVATE
  442. -O2
  443. -fno-common
  444. -fvisibility=hidden
  445. $<$<STREQUAL:${CMAKE_CXX_COMPILER_VERSION},7.3.0>:-Werror=unused-variable>
  446. $<$<STREQUAL:${CMAKE_CXX_COMPILER_VERSION},7.3.0>:-Werror=unused-const-variable -Werror=format>
  447. )
  448. target_include_directories(ge_runner SYSTEM PRIVATE
  449. ${GE_CODE_DIR}/ge
  450. ${GE_CODE_DIR}/inc
  451. ${GE_CODE_DIR}/inc/external
  452. ${GE_CODE_DIR}/inc/framework
  453. ${METADEF_DIR}/inc
  454. ${METADEF_DIR}/inc/external
  455. ${CMAKE_BINARY_DIR}
  456. ${CMAKE_BINARY_DIR}/proto/graphengine_protos
  457. #### yellow zone ####
  458. ${GE_CODE_DIR}/../inc
  459. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  460. ${GE_CODE_DIR}/../abl/adump/external
  461. ${GE_CODE_DIR}/../abl/licctrl
  462. ${GE_CODE_DIR}/../ace/comop/inc
  463. ${GE_CODE_DIR}/../ace/comop/inc/external
  464. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:${GE_DEPEND_DIR}/inc>
  465. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<TARGET_PROPERTY:runtime_headers,INTERFACE_INCLUDE_DIRECTORIES>>
  466. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<TARGET_PROPERTY:cce_headers,INTERFACE_INCLUDE_DIRECTORIES>>
  467. #### blue zone ####
  468. ${ASCEND_DIR}/driver/include
  469. ${ASCEND_DIR}/fwkacllib/include
  470. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc>
  471. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain>
  472. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc/opt_info>
  473. )
  474. target_link_options(ge_runner PRIVATE
  475. -Wl,-Bsymbolic
  476. )
  477. target_link_libraries(ge_runner PRIVATE
  478. $<BUILD_INTERFACE:intf_pub>
  479. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:slog_headers>>
  480. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:msprof_headers>>
  481. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:mmpa_headers>>
  482. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:runtime_headers>>
  483. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:cce_headers>>
  484. adump_server
  485. static_mmpa
  486. ge_compiler
  487. #ge_proto_common
  488. ge_executor_shared
  489. ge_proto_client
  490. -Wl,--no-as-needed
  491. graph
  492. ge_common
  493. ascend_protobuf
  494. register
  495. c_sec
  496. slog
  497. runtime
  498. error_manager
  499. ascend_hal_stub
  500. opt_feature
  501. -Wl,--as-needed
  502. json
  503. -lrt
  504. -ldl
  505. )
  506. ############ libge_compiler.so ############
  507. add_library(ge_compiler SHARED
  508. ${COMPILER_SRC_LIST}
  509. )
  510. add_dependencies(ge_compiler
  511. graphengine_protos
  512. )
  513. target_compile_definitions(ge_compiler PRIVATE
  514. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  515. REUSE_MEMORY=1
  516. FMK_SUPPORT_DUMP
  517. google=ascend_private
  518. FUNC_VISIBILITY
  519. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  520. )
  521. target_compile_options(ge_compiler PRIVATE
  522. -O2
  523. -fno-common
  524. -fvisibility=default
  525. $<$<STREQUAL:${CMAKE_CXX_COMPILER_VERSION},7.3.0>:-Werror=unused-variable>
  526. $<$<STREQUAL:${CMAKE_CXX_COMPILER_VERSION},7.3.0>:-Werror=unused-const-variable -Werror=format>
  527. )
  528. target_include_directories(ge_compiler SYSTEM PRIVATE
  529. ${GE_CODE_DIR}/ge
  530. ${GE_CODE_DIR}/inc
  531. ${GE_CODE_DIR}/inc/external
  532. ${GE_CODE_DIR}/inc/framework
  533. ${METADEF_DIR}/inc
  534. ${METADEF_DIR}/inc/external
  535. ${CMAKE_BINARY_DIR}
  536. ${CMAKE_BINARY_DIR}/proto/graphengine_protos
  537. #### yellow zone ####
  538. ${GE_CODE_DIR}/../inc
  539. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  540. ${GE_CODE_DIR}/../abl/adump/external
  541. ${GE_CODE_DIR}/../abl/licctrl
  542. ${GE_CODE_DIR}/../ace/comop/inc
  543. ${GE_CODE_DIR}/../ace/comop/inc/external
  544. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:${GE_DEPEND_DIR}/inc>
  545. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<TARGET_PROPERTY:runtime_headers,INTERFACE_INCLUDE_DIRECTORIES>>
  546. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<TARGET_PROPERTY:cce_headers,INTERFACE_INCLUDE_DIRECTORIES>>
  547. #### blue zone ####
  548. ${ASCEND_DIR}/driver/include
  549. ${ASCEND_DIR}/fwkacllib/include
  550. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc>
  551. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain>
  552. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc/opt_info>
  553. )
  554. target_link_options(ge_compiler PRIVATE
  555. -Wl,-Bsymbolic
  556. )
  557. target_link_libraries(ge_compiler PRIVATE
  558. $<BUILD_INTERFACE:intf_pub>
  559. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:slog_headers>>
  560. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:msprof_headers>>
  561. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:mmpa_headers>>
  562. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:runtime_headers>>
  563. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:cce_headers>>
  564. static_mmpa
  565. ge_proto_common
  566. -Wl,--no-as-needed
  567. graph
  568. ge_common
  569. ascend_protobuf
  570. register
  571. c_sec
  572. error_manager
  573. slog
  574. runtime
  575. opt_feature
  576. -Wl,--as-needed
  577. json
  578. -lrt
  579. -ldl
  580. )
  581. ######## libge_executor.a ########
  582. add_library(ge_executor STATIC
  583. ${EXECUTOR_SRC_LIST}
  584. )
  585. add_dependencies(ge_executor
  586. graphengine_protos
  587. )
  588. target_compile_options(ge_executor PRIVATE
  589. $<$<OR:$<STREQUAL:${TARGET_SYSTEM_NAME},Linux>,$<STREQUAL:${TARGET_SYSTEM_NAME},Android>>:-fvisibility=hidden -O2 -Werror -Wno-deprecated-declarations -fno-common>
  590. $<$<AND:$<STREQUAL:${TARGET_SYSTEM_NAME},Windows>,$<STREQUAL:${CMAKE_CONFIGURATION_TYPES},Debug>>:/MTd>
  591. $<$<AND:$<STREQUAL:${TARGET_SYSTEM_NAME},Windows>,$<STREQUAL:${CMAKE_CONFIGURATION_TYPES},Release>>:/MT>
  592. $<$<STREQUAL:${CMAKE_CXX_COMPILER_VERSION},7.3.0>:-Werror=unused-variable>
  593. $<$<STREQUAL:${CMAKE_CXX_COMPILER_VERSION},7.3.0>:-Werror=unused-const-variable -Werror=format>
  594. )
  595. target_compile_definitions(ge_executor PRIVATE
  596. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  597. DAVINCI_SUPPORT_PROFILING
  598. google=ascend_private
  599. $<IF:$<STREQUAL:${TARGET_SYSTEM_NAME},Windows>,OS_TYPE=WIN,OS_TYPE=0>
  600. $<$<STREQUAL:${TARGET_SYSTEM_NAME},Windows>:SECUREC_USING_STD_SECURE_LIB=0 NOMINMAX>
  601. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  602. LOG_CPP
  603. )
  604. target_include_directories(ge_executor SYSTEM PRIVATE
  605. ${GE_CODE_DIR}/ge
  606. ${GE_CODE_DIR}/inc
  607. ${GE_CODE_DIR}/inc/external
  608. ${GE_CODE_DIR}/inc/framework
  609. ${METADEF_DIR}/inc
  610. ${METADEF_DIR}/inc/external
  611. ${CMAKE_BINARY_DIR}
  612. ${CMAKE_BINARY_DIR}/proto/graphengine_protos
  613. #### yellow zone ####
  614. ${GE_CODE_DIR}/../ace/comop/inc
  615. ${GE_CODE_DIR}/../ace/comop/inc/external
  616. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:${GE_DEPEND_DIR}/inc>
  617. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<TARGET_PROPERTY:runtime_headers,INTERFACE_INCLUDE_DIRECTORIES>>
  618. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<TARGET_PROPERTY:cce_headers,INTERFACE_INCLUDE_DIRECTORIES>>
  619. #### blue zone ####
  620. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc>
  621. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc/toolchain>
  622. )
  623. target_link_libraries(ge_executor PRIVATE
  624. $<BUILD_INTERFACE:intf_pub>
  625. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:slog_headers>>
  626. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:msprof_headers>>
  627. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:mmpa_headers>>
  628. json
  629. ascend_protobuf_static
  630. c_sec
  631. $<$<NOT:$<STREQUAL:${TARGET_SYSTEM_NAME},Android>>:-lrt>
  632. -ldl
  633. )
  634. ######## libge_executor.so ########
  635. add_library(ge_executor_shared SHARED
  636. ${EXECUTOR_SRC_LIST}
  637. )
  638. add_dependencies(ge_executor_shared
  639. graphengine_protos
  640. )
  641. target_compile_options(ge_executor_shared PRIVATE
  642. -fno-common
  643. -Werror
  644. -O2
  645. -Wno-deprecated-declarations
  646. -fvisibility=default
  647. )
  648. target_compile_definitions(ge_executor_shared PRIVATE
  649. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  650. DAVINCI_SUPPORT_PROFILING
  651. google=ascend_private
  652. FUNC_VISIBILITY
  653. $<$<STREQUAL:${ENABLE_OPEN_SRC},True>:ONLY_COMPILE_OPEN_SRC>
  654. )
  655. target_include_directories(ge_executor_shared PRIVATE
  656. ${GE_CODE_DIR}/ge
  657. ${GE_CODE_DIR}/inc
  658. ${GE_CODE_DIR}/inc/external
  659. ${GE_CODE_DIR}/inc/framework
  660. ${METADEF_DIR}/inc
  661. ${METADEF_DIR}/inc/external
  662. ${CMAKE_BINARY_DIR}
  663. ${CMAKE_BINARY_DIR}/proto/graphengine_protos
  664. #### yellow zone ####
  665. ${GE_CODE_DIR}/../ace/comop/inc
  666. ${GE_CODE_DIR}/../ace/comop/inc/external
  667. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:${GE_DEPEND_DIR}/inc>
  668. #### blue zone ####
  669. $<$<BOOL:${ENABLE_OPEN_SRC}>:${GE_CODE_DIR}/third_party/fwkacllib/inc>
  670. )
  671. target_link_options(ge_executor_shared PRIVATE
  672. -Wl,-Bsymbolic
  673. -Wl,--exclude-libs,ALL
  674. )
  675. target_link_libraries(ge_executor_shared PRIVATE
  676. $<BUILD_INTERFACE:intf_pub>
  677. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:slog_headers>>
  678. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:msprof_headers>>
  679. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:mmpa_headers>>
  680. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:runtime_headers>>
  681. $<$<NOT:$<BOOL:${ENABLE_OPEN_SRC}>>:$<BUILD_INTERFACE:cce_headers>>
  682. -Wl,--no-as-needed
  683. ge_common
  684. runtime
  685. slog
  686. graph
  687. register
  688. error_manager
  689. ascend_protobuf
  690. c_sec
  691. -Wl,--as-needed
  692. json
  693. $<$<NOT:$<STREQUAL:${TARGET_SYSTEM_NAME},Android>>:-lrt>
  694. -ldl
  695. )
  696. set_target_properties(ge_executor_shared PROPERTIES
  697. OUTPUT_NAME ge_executor
  698. )
  699. ############ libascendcl.so ############
  700. file(GENERATE OUTPUT ${CMAKE_BINARY_DIR}/dummy.c CONTENT "")
  701. #add_library(dummy_obj OBJECT ${CMAKE_BINARY_DIR}/dummy.c)
  702. #set(DUMMY_OBJ $<TARGET_OBJECTS:dummy_obj>)
  703. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ascendcl_object)
  704. if(EXISTS ${STATIC_ACL_LIB}/libascendcl.a)
  705. execute_process(
  706. COMMAND ar x ${STATIC_ACL_LIB}/libascendcl.a
  707. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ascendcl_object
  708. )
  709. file(GLOB OBJECT_LIST ${CMAKE_CURRENT_BINARY_DIR}/ascendcl_object/*.o)
  710. else()
  711. set(OBJECT_LIST ${CMAKE_BINARY_DIR}/dummy.c)
  712. endif()
  713. add_library(opensrc_ascendcl SHARED
  714. ${OBJECT_LIST}
  715. $<TARGET_OBJECTS:$<IF:$<TARGET_EXISTS:msprofiler>,msprofiler,msprofiler_object>>
  716. )
  717. add_library(msprofiler_object OBJECT IMPORTED GLOBAL)
  718. if (msprofiler_ext_LIBRARY_DIR)
  719. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/msprofiler_object)
  720. execute_process(
  721. COMMAND ar x ${msprofiler_ext_LIBRARY_DIR}
  722. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/msprofiler_object
  723. )
  724. file(GLOB MSPROFILER_OBJECT_LIST ${CMAKE_CURRENT_BINARY_DIR}/msprofiler_object/*.o)
  725. set_property(TARGET msprofiler_object PROPERTY IMPORTED_OBJECTS ${MSPROFILER_OBJECT_LIST})
  726. endif()
  727. target_compile_definitions(opensrc_ascendcl PRIVATE
  728. google=ascend_private
  729. )
  730. target_compile_options(opensrc_ascendcl PRIVATE
  731. -O2
  732. -fvisibility=hidden
  733. )
  734. target_link_options(opensrc_ascendcl PRIVATE
  735. -rdynamic
  736. -Wl,--allow-multiple-definition
  737. -Wl,-z,muldefs
  738. -Wl,-Bsymbolic
  739. -Wl,--exclude-libs,ALL
  740. )
  741. target_link_libraries(opensrc_ascendcl PRIVATE
  742. -Wl,--whole-archive
  743. ge_executor
  744. ge_common_static
  745. graph_static
  746. static_mmpa
  747. ascend_protobuf_static
  748. register_static
  749. error_manager_static
  750. adump_server
  751. -Wl,--no-whole-archive
  752. -Wl,--no-as-needed
  753. c_sec
  754. runtime
  755. slog
  756. ascend_hal_stub
  757. -Wl,--as-needed
  758. -lrt
  759. -ldl
  760. json
  761. )
  762. set_target_properties(opensrc_ascendcl PROPERTIES
  763. OUTPUT_NAME ascendcl
  764. )
  765. ##################################################################
  766. add_custom_command(
  767. OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_ir_build.cc
  768. ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_api.cc
  769. COMMAND echo "Generating stub files."
  770. && ${HI_PYTHON} ${CMAKE_CURRENT_LIST_DIR}/stub/gen_stubapi.py ${GE_CODE_DIR}/inc/external ${CMAKE_CURRENT_BINARY_DIR}
  771. && mv ge_ir_build.cc stub_ge_ir_build.cc
  772. && mv ge_api.cc stub_ge_api.cc
  773. && echo "Generating stub files end."
  774. #WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  775. #DEPENDS stub/gen_stubapi.py ${TOP_DIR}/inc/external ${CMAKE_CURRENT_BINARY_DIR}
  776. )
  777. add_custom_target(ge_stub
  778. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_ir_build.cc
  779. ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_api.cc
  780. )
  781. ##################################################################
  782. ############ stub/libge_compiler.so ############
  783. add_library(atc_stub_ge_compiler SHARED
  784. stub_ge_ir_build.cc
  785. )
  786. add_dependencies(atc_stub_ge_compiler ge_stub)
  787. target_compile_options(atc_stub_ge_compiler PRIVATE
  788. -fno-common
  789. )
  790. target_link_libraries(atc_stub_ge_compiler PRIVATE
  791. $<BUILD_INTERFACE:intf_pub>
  792. )
  793. set_target_properties(atc_stub_ge_compiler PROPERTIES
  794. OUTPUT_NAME ge_compiler
  795. LIBRARY_OUTPUT_DIRECTORY atc_stub
  796. )
  797. target_include_directories(atc_stub_ge_compiler PRIVATE
  798. ${GE_CODE_DIR}/ge
  799. ${GE_CODE_DIR}/inc
  800. ${GE_CODE_DIR}/inc/framework
  801. ${GE_CODE_DIR}/inc/external
  802. ${METADEF_DIR}/inc/external
  803. ${METADEF_DIR}/inc
  804. #### yellow zone ####
  805. ${GE_CODE_DIR}/../inc
  806. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  807. ${GE_CODE_DIR}/../abl/adump/external
  808. #### blue zone ####
  809. ${ASCEND_DIR}/driver/include
  810. ${ASCEND_DIR}/fwkacllib/include
  811. )
  812. ############ stub/libge_runner.so ############
  813. add_library(fwk_stub_ge_runner SHARED
  814. stub_ge_api.cc
  815. stub_ge_ir_build.cc
  816. )
  817. add_dependencies(fwk_stub_ge_runner ge_stub)
  818. target_compile_options(fwk_stub_ge_runner PRIVATE
  819. -fno-common
  820. )
  821. target_link_libraries(fwk_stub_ge_runner PRIVATE
  822. $<BUILD_INTERFACE:intf_pub>
  823. )
  824. set_target_properties(fwk_stub_ge_runner PROPERTIES
  825. OUTPUT_NAME ge_runner
  826. LIBRARY_OUTPUT_DIRECTORY fwk_stub
  827. )
  828. target_include_directories(fwk_stub_ge_runner PRIVATE
  829. ${GE_CODE_DIR}/ge
  830. ${GE_CODE_DIR}/inc
  831. ${GE_CODE_DIR}/inc/external
  832. ${GE_CODE_DIR}/inc/framework
  833. ${METADEF_DIR}/inc/external
  834. ${METADEF_DIR}/inc
  835. #### yellow zone ####
  836. ${GE_CODE_DIR}/../inc
  837. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  838. ${GE_CODE_DIR}/../abl/adump/external
  839. #### blue zone ####
  840. ${ASCEND_DIR}/driver/include
  841. ${ASCEND_DIR}/fwkacllib/include
  842. )
  843. ###############################################################
  844. add_custom_target(
  845. engine_conf.json ALL
  846. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/engine_conf.json
  847. )
  848. add_custom_command(
  849. OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/engine_conf.json
  850. COMMAND cp ${CMAKE_CURRENT_LIST_DIR}/engine_manager/engine_conf.json ${CMAKE_CURRENT_BINARY_DIR}/
  851. )
  852. ###############################################################
  853. add_custom_target(
  854. optimizer_priority.pbtxt ALL
  855. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/optimizer_priority.pbtxt
  856. )
  857. add_custom_command(
  858. OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/optimizer_priority.pbtxt
  859. COMMAND cp ${CMAKE_CURRENT_LIST_DIR}/opskernel_manager/optimizer_priority.pbtxt ${CMAKE_CURRENT_BINARY_DIR}/
  860. )
  861. ###############################################################
  862. ############ install ############
  863. set(INSTALL_BASE_DIR "")
  864. set(INSTALL_LIBRARY_DIR lib)
  865. install(TARGETS ge_runner ge_compiler ge_executor_shared opensrc_ascendcl OPTIONAL
  866. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}
  867. )
  868. install(TARGETS atc_stub_ge_compiler fwk_stub_ge_runner OPTIONAL
  869. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}/stub
  870. )
  871. install(FILES
  872. ${CMAKE_CURRENT_BINARY_DIR}/engine_conf.json
  873. ${CMAKE_CURRENT_BINARY_DIR}/optimizer_priority.pbtxt OPTIONAL
  874. DESTINATION ${INSTALL_LIBRARY_DIR}
  875. )
  876. endif()

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