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

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833
  1. add_subdirectory(common)
  2. add_subdirectory(plugin/engine)
  3. add_subdirectory(graph/build/memory)
  4. add_subdirectory(ge_local_engine)
  5. add_subdirectory(host_cpu_engine)
  6. add_subdirectory(executor)
  7. #add_subdirectory(offline)
  8. set(PROTO_LIST
  9. "${METADEF_DIR}/proto/fusion_model.proto"
  10. "${GE_CODE_DIR}/ge/proto/optimizer_priority.proto"
  11. )
  12. set(PROTO_CLIENT_LIST
  13. "${GE_CODE_DIR}/ge/proto/ge_api.proto"
  14. )
  15. set(PROTO_HEADER_LIST
  16. "${METADEF_DIR}/proto/om.proto"
  17. "${METADEF_DIR}/proto/task.proto"
  18. "${METADEF_DIR}/proto/insert_op.proto"
  19. "${METADEF_DIR}/proto/ge_ir.proto"
  20. "${METADEF_DIR}/proto/fwk_adapter.proto"
  21. "${METADEF_DIR}/proto/op_mapping_info.proto"
  22. )
  23. protobuf_generate(ge PROTO_SRCS PROTO_HDRS ${PROTO_LIST})
  24. protobuf_generate(ge PROTO_CLIENT_SRCS PROTO_CLIENT_HDRS ${PROTO_CLIENT_LIST})
  25. protobuf_generate(ge PROTO_HEADER_SRCS PROTO_HEADER_HDRS ${PROTO_HEADER_LIST})
  26. ############ libge_runner.so ############
  27. set(TRAIN_SRC_LIST
  28. "common/formats/format_transfers/datatype_transfer.cc"
  29. "common/formats/format_transfers/format_transfer_c1hwncoc0_hwcn.cc"
  30. "common/formats/format_transfers/format_transfer_dhwcn_fracz3D.cc"
  31. "common/formats/format_transfers/format_transfer_dhwnc_fracz3D_transpose.cc"
  32. "common/formats/format_transfers/format_transfer_fractal_nz.cc"
  33. "common/formats/format_transfers/format_transfer_fractal_z.cc"
  34. "common/formats/format_transfers/format_transfer_fractal_zz.cc"
  35. "common/formats/format_transfers/format_transfer_fracz_hwcn.cc"
  36. "common/formats/format_transfers/format_transfer_fracz_nchw.cc"
  37. "common/formats/format_transfers/format_transfer_fracz_nhwc.cc"
  38. "common/formats/format_transfers/format_transfer_hwcn_c1hwncoc0.cc"
  39. "common/formats/format_transfers/format_transfer_nc1hwc0_nchw.cc"
  40. "common/formats/format_transfers/format_transfer_nc1hwc0_nhwc.cc"
  41. "common/formats/format_transfers/format_transfer_nchw_nc1hwc0.cc"
  42. "common/formats/format_transfers/format_transfer_nhwc_nc1hwc0.cc"
  43. "common/formats/format_transfers/format_transfer_transpose.cc"
  44. "common/formats/formats.cc"
  45. "common/formats/utils/formats_trans_utils.cc"
  46. "common/fp16_t.cc"
  47. "common/ge/plugin_manager.cc"
  48. "common/ge/op_tiling_manager.cc"
  49. "common/helper/model_cache_helper.cc"
  50. "common/profiling/profiling_manager.cc"
  51. "common/dump/dump_manager.cc"
  52. "common/dump/dump_properties.cc"
  53. "common/dump/dump_op.cc"
  54. "engine_manager/dnnengine_manager.cc"
  55. "ge_local_engine/engine/host_cpu_engine.cc"
  56. "generator/ge_generator.cc"
  57. "generator/generator_api.cc"
  58. "graph/build/graph_builder.cc"
  59. "graph/build/label_allocator.cc"
  60. "graph/build/logical_stream_allocator.cc"
  61. "graph/build/model_builder.cc"
  62. "graph/build/run_context.cc"
  63. "graph/build/stream_allocator.cc"
  64. "graph/build/stream_graph_optimizer.cc"
  65. "graph/build/task_generator.cc"
  66. "graph/common/bcast.cc"
  67. "graph/common/local_context.cc"
  68. "graph/common/omg_util.cc"
  69. "graph/common/transop_util.cc"
  70. "graph/execute/graph_execute.cc"
  71. "graph/label/case_label_maker.cc"
  72. "graph/label/if_label_maker.cc"
  73. "graph/label/label_maker.cc"
  74. "graph/label/partitioned_call_label_maker.cc"
  75. "graph/label/while_label_maker.cc"
  76. "graph/load/graph_loader.cc"
  77. "graph/load/new_model_manager/cpu_queue_schedule.cc"
  78. "graph/load/new_model_manager/data_dumper.cc"
  79. "graph/load/new_model_manager/data_inputer.cc"
  80. "graph/load/new_model_manager/davinci_model.cc"
  81. "graph/load/new_model_manager/davinci_model_parser.cc"
  82. "graph/load/new_model_manager/model_manager.cc"
  83. "graph/load/new_model_manager/model_utils.cc"
  84. "graph/load/new_model_manager/aipp_utils.cc"
  85. "graph/load/new_model_manager/task_info/end_graph_task_info.cc"
  86. "graph/load/new_model_manager/task_info/event_record_task_info.cc"
  87. "graph/load/new_model_manager/task_info/event_wait_task_info.cc"
  88. "graph/load/new_model_manager/task_info/fusion_start_task_info.cc"
  89. "graph/load/new_model_manager/task_info/fusion_stop_task_info.cc"
  90. "graph/load/new_model_manager/task_info/hccl_task_info.cc"
  91. "graph/load/new_model_manager/task_info/kernel_ex_task_info.cc"
  92. "graph/load/new_model_manager/task_info/kernel_task_info.cc"
  93. "graph/load/new_model_manager/task_info/label_set_task_info.cc"
  94. "graph/load/new_model_manager/task_info/label_switch_by_index_task_info.cc"
  95. "graph/load/new_model_manager/task_info/label_goto_ex_task_info.cc"
  96. "graph/load/new_model_manager/task_info/memcpy_addr_async_task_info.cc"
  97. "graph/load/new_model_manager/task_info/memcpy_async_task_info.cc"
  98. "graph/load/new_model_manager/task_info/profiler_trace_task_info.cc"
  99. "graph/load/new_model_manager/task_info/stream_active_task_info.cc"
  100. "graph/load/new_model_manager/task_info/stream_switch_task_info.cc"
  101. "graph/load/new_model_manager/task_info/stream_switchn_task_info.cc"
  102. "graph/load/new_model_manager/task_info/super_kernel/super_kernel.cc"
  103. "graph/load/new_model_manager/task_info/super_kernel/super_kernel_factory.cc"
  104. "graph/load/new_model_manager/task_info/task_info.cc"
  105. "graph/load/new_model_manager/tbe_handle_store.cc"
  106. "graph/load/new_model_manager/zero_copy_task.cc"
  107. "graph/load/new_model_manager/zero_copy_offset.cc"
  108. "graph/manager/graph_context.cc"
  109. "graph/manager/graph_manager.cc"
  110. "graph/manager/graph_manager_utils.cc"
  111. "graph/manager/graph_mem_allocator.cc"
  112. "graph/manager/graph_caching_allocator.cc"
  113. "graph/manager/graph_var_manager.cc"
  114. "graph/manager/host_mem_manager.cc"
  115. "graph/manager/rdma_pool_allocator.cc"
  116. "graph/manager/memory_api.cc"
  117. "graph/manager/model_manager/event_manager.cc"
  118. "graph/manager/trans_var_data_utils.cc"
  119. "graph/manager/util/debug.cc"
  120. "graph/manager/util/hcom_util.cc"
  121. "graph/manager/util/rt_context_util.cc"
  122. "graph/manager/util/variable_accelerate_ctrl.cc"
  123. "graph/optimize/graph_optimize.cc"
  124. "graph/optimize/mem_rw_conflict_optimize.cc"
  125. "graph/optimize/summary_optimize.cc"
  126. "graph/partition/engine_place.cc"
  127. "graph/partition/graph_partition.cc"
  128. "graph/passes/addn_pass.cc"
  129. "graph/passes/aicpu_constant_folding_pass.cc"
  130. "graph/passes/assert_pass.cc"
  131. "graph/passes/input_output_connection_identify_pass.cc"
  132. "graph/passes/atomic_addr_clean_pass.cc"
  133. "graph/passes/mark_same_addr_pass.cc"
  134. "graph/passes/mark_graph_unknown_status_pass.cc"
  135. "graph/partition/dynamic_shape_partition.cc"
  136. "graph/passes/base_pass.cc"
  137. "graph/passes/bitcast_pass.cc"
  138. "graph/passes/cast_remove_pass.cc"
  139. "graph/passes/cast_translate_pass.cc"
  140. "graph/passes/common_subexpression_elimination_pass.cc"
  141. "graph/passes/transop_symmetry_elimination_pass.cc"
  142. "graph/passes/compile_nodes_pass.cc"
  143. "graph/passes/constant_folding_pass.cc"
  144. "graph/passes/constant_fuse_same_pass.cc"
  145. "graph/passes/control_trigger_pass.cc"
  146. "graph/passes/dimension_adjust_pass.cc"
  147. "graph/passes/dimension_compute_pass.cc"
  148. "graph/passes/dropout_pass.cc"
  149. "graph/passes/hccl_group_pass.cc"
  150. "graph/passes/enter_pass.cc"
  151. "graph/passes/assign_pass.cc"
  152. "graph/passes/flow_ctrl_pass.cc"
  153. "graph/passes/global_step_insert_pass.cc"
  154. "host_kernels/transpose_kernel.cc"
  155. "host_kernels/add_kernel.cc"
  156. "host_kernels/broadcast_args_kernel.cc"
  157. "host_kernels/broadcast_gradient_args_kernel.cc"
  158. "host_kernels/cast_kernel.cc"
  159. "host_kernels/concat_offset_kernel.cc"
  160. "host_kernels/concat_v2_kernel.cc"
  161. "host_kernels/dynamic_stitch_kernel.cc"
  162. "host_kernels/identity_kernel.cc"
  163. "host_kernels/empty_kernel.cc"
  164. "host_kernels/expanddims_kernel.cc"
  165. "host_kernels/fill_kernel.cc"
  166. "host_kernels/floordiv_kernel.cc"
  167. "host_kernels/floormod_kernel.cc"
  168. "host_kernels/gather_v2_kernel.cc"
  169. "host_kernels/greater_kernel.cc"
  170. "host_kernels/kernel_utils.cc"
  171. "host_kernels/maximum_kernel.cc"
  172. "host_kernels/mul_kernel.cc"
  173. "host_kernels/pack_kernel.cc"
  174. "host_kernels/permute_kernel.cc"
  175. "host_kernels/range_kernel.cc"
  176. "host_kernels/rank_kernel.cc"
  177. "host_kernels/reduce_prod_kernel.cc"
  178. "host_kernels/reshape_kernel.cc"
  179. "host_kernels/rsqrt_kernel.cc"
  180. "host_kernels/shape_kernel.cc"
  181. "host_kernels/shape_n_kernel.cc"
  182. "host_kernels/size_kernel.cc"
  183. "host_kernels/slice_d_kernel.cc"
  184. "host_kernels/slice_kernel.cc"
  185. "host_kernels/squeeze_kernel.cc"
  186. "host_kernels/unsqueeze_kernel.cc"
  187. "host_kernels/ssd_prior_box_kernel.cc"
  188. "host_kernels/strided_slice_kernel.cc"
  189. "host_kernels/sub_kernel.cc"
  190. "host_kernels/transdata_kernel.cc"
  191. "host_kernels/unpack_kernel.cc"
  192. "graph/passes/folding_pass.cc"
  193. "graph/passes/get_original_format_pass.cc"
  194. "graph/passes/guarantee_const_pass.cc"
  195. "graph/passes/hccl_memcpy_pass.cc"
  196. "graph/passes/identity_pass.cc"
  197. "graph/passes/ref_identity_delete_op_pass.cc"
  198. "graph/passes/infershape_pass.cc"
  199. "graph/passes/isolated_op_remove_pass.cc"
  200. "graph/passes/iterator_op_pass.cc"
  201. "graph/passes/link_gen_mask_nodes_pass.cc"
  202. "graph/passes/merge_pass.cc"
  203. "graph/passes/multi_batch_pass.cc"
  204. "graph/passes/multi_batch_clone_pass.cc"
  205. "graph/passes/subexpression_migration_pass.cc"
  206. "graph/passes/subgraph_const_migration_pass.cc"
  207. "graph/passes/unused_args_clean_pass.cc"
  208. "graph/passes/net_output_pass.cc"
  209. "graph/passes/next_iteration_pass.cc"
  210. "graph/passes/no_use_reshape_remove_pass.cc"
  211. "graph/passes/pass_manager.cc"
  212. "graph/passes/pass_utils.cc"
  213. "graph/passes/permute_pass.cc"
  214. "graph/passes/placeholder_with_default_pass.cc"
  215. "graph/passes/prevent_gradient_pass.cc"
  216. "graph/passes/print_op_pass.cc"
  217. "graph/passes/prune_pass.cc"
  218. "graph/passes/ctrl_edge_transfer_pass.cc"
  219. "graph/passes/replace_with_empty_const_pass.cc"
  220. "graph/passes/reshape_remove_pass.cc"
  221. "graph/passes/reshape_recovery_pass.cc"
  222. "graph/passes/resource_pair_add_control_pass.cc"
  223. "graph/passes/resource_pair_remove_control_pass.cc"
  224. "graph/passes/same_transdata_breadth_fusion_pass.cc"
  225. "graph/passes/save_pass.cc"
  226. "graph/passes/shape_operate_op_remove_pass.cc"
  227. "graph/passes/snapshot_pass.cc"
  228. "graph/passes/stop_gradient_pass.cc"
  229. "graph/passes/subgraph_pass.cc"
  230. "graph/passes/data_pass.cc"
  231. "graph/passes/switch_data_edges_bypass.cc"
  232. "graph/passes/switch_logic_remove_pass.cc"
  233. "graph/passes/merge_to_stream_merge_pass.cc"
  234. "graph/passes/switch_to_stream_switch_pass.cc"
  235. "graph/passes/attach_stream_label_pass.cc"
  236. "graph/passes/switch_dead_branch_elimination.cc"
  237. "graph/passes/replace_transshape_pass.cc"
  238. "graph/passes/transop_breadth_fusion_pass.cc"
  239. "graph/passes/transop_depth_fusion_pass.cc"
  240. "graph/passes/transop_nearby_allreduce_fusion_pass.cc"
  241. "graph/passes/transop_without_reshape_fusion_pass.cc"
  242. "graph/passes/transpose_transdata_pass.cc"
  243. "graph/passes/unused_const_pass.cc"
  244. "graph/passes/unused_op_remove_pass.cc"
  245. "graph/passes/var_is_initialized_op_pass.cc"
  246. "graph/passes/parallel_concat_start_op_pass.cc"
  247. "graph/passes/cond_pass.cc"
  248. "graph/passes/cond_remove_pass.cc"
  249. "graph/passes/for_pass.cc"
  250. "graph/passes/variable_format_pass.cc"
  251. "graph/passes/variable_op_pass.cc"
  252. "graph/passes/variable_prepare_op_pass.cc"
  253. "graph/passes/variable_ref_delete_op_pass.cc"
  254. "graph/passes/variable_ref_useless_control_out_delete_pass.cc"
  255. "graph/passes/end_of_sequence_add_control_pass.cc"
  256. "graph/passes/memcpy_addr_async_pass.cc"
  257. "graph/passes/set_input_output_offset_pass.cc"
  258. "graph/preprocess/graph_preprocess.cc"
  259. "graph/preprocess/insert_op/ge_aipp_op.cc"
  260. "graph/preprocess/insert_op/util_insert_aipp_op.cc"
  261. "graph/preprocess/multi_batch_options.cc"
  262. "graph/preprocess/multi_batch_copy_graph.cc"
  263. "init/gelib.cc"
  264. "model/ge_model.cc"
  265. "model/ge_root_model.cc"
  266. "omm/csa_interact.cc"
  267. "opskernel_manager/ops_kernel_manager.cc"
  268. "session/inner_session.cc"
  269. "session/session_manager.cc"
  270. "single_op/single_op.cc"
  271. "single_op/single_op_manager.cc"
  272. "single_op/single_op_model.cc"
  273. "single_op/stream_resource.cc"
  274. "single_op/task/build_task_utils.cc"
  275. "single_op/task/op_task.cc"
  276. "single_op/task/tbe_task_builder.cc"
  277. "single_op/task/aicpu_task_builder.cc"
  278. "single_op/task/aicpu_kernel_task_builder.cc"
  279. "hybrid/common/tensor_value.cc"
  280. "hybrid/common/npu_memory_allocator.cc"
  281. "hybrid/executor/rt_callback_manager.cc"
  282. "hybrid/executor/node_state.cc"
  283. "hybrid/executor/node_done_manager.cc"
  284. "hybrid/executor/hybrid_profiler.cc"
  285. "hybrid/executor/hybrid_model_executor.cc"
  286. "hybrid/executor/hybrid_model_async_executor.cc"
  287. "hybrid/executor/hybrid_execution_context.cc"
  288. "hybrid/executor/subgraph_context.cc"
  289. "hybrid/executor/subgraph_executor.cc"
  290. "hybrid/executor/worker/task_compile_engine.cc"
  291. "hybrid/executor/worker/shape_inference_engine.cc"
  292. "hybrid/executor/worker/execution_engine.cc"
  293. "hybrid/model/hybrid_model.cc"
  294. "hybrid/model/hybrid_model_builder.cc"
  295. "hybrid/model/node_item.cc"
  296. "hybrid/model/graph_item.cc"
  297. "hybrid/node_executor/aicore/aicore_node_executor.cc"
  298. "hybrid/node_executor/aicore/aicore_op_task.cc"
  299. "hybrid/node_executor/aicore/aicore_task_builder.cc"
  300. "hybrid/node_executor/aicore/aicore_task_compiler.cc"
  301. "hybrid/node_executor/aicpu/aicpu_ext_info.cc"
  302. "hybrid/node_executor/aicpu/aicpu_node_executor.cc"
  303. "hybrid/node_executor/compiledsubgraph/known_node_executor.cc"
  304. "hybrid/node_executor/ge_local/ge_local_node_executor.cc"
  305. "hybrid/node_executor/host_cpu/host_cpu_node_executor.cc"
  306. "hybrid/node_executor/host_cpu/kernel_factory.cc"
  307. "hybrid/node_executor/host_cpu/kernel/no_op_kernel.cc"
  308. "hybrid/node_executor/host_cpu/kernel/variable_kernel.cc"
  309. "hybrid/node_executor/host_cpu/kernel/assign_kernel.cc"
  310. "hybrid/node_executor/host_cpu/kernel/random_uniform_kernel.cc"
  311. "hybrid/node_executor/controlop/control_op_executor.cc"
  312. "hybrid/node_executor/partitioned_call/partitioned_call_node_executor.cc"
  313. "hybrid/node_executor/hccl/hccl_node_executor.cc"
  314. "hybrid/node_executor/rts/rts_node_executor.cc"
  315. "hybrid/node_executor/node_executor.cc"
  316. "hybrid/node_executor/task_context.cc"
  317. "hybrid/hybrid_davinci_model.cc"
  318. "executor/ge_executor.cc"
  319. "client/ge_api.cc"
  320. "client/ge_prof.cc"
  321. "analyzer/analyzer.cc"
  322. )
  323. add_library(ge_runner SHARED ${TRAIN_SRC_LIST} ${PROTO_SRCS} ${PROTO_CLIENT_SRCS})
  324. target_compile_definitions(ge_runner PRIVATE
  325. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  326. DAVINCI_SUPPORT_PROFILING
  327. REUSE_MEMORY=1
  328. FMK_SUPPORT_DUMP
  329. DAVINCI_CLOUD
  330. )
  331. target_compile_options(ge_runner PRIVATE
  332. -O2
  333. )
  334. target_include_directories(ge_runner PRIVATE
  335. ${GE_CODE_DIR}/ge
  336. ${GE_CODE_DIR}/ge/analyzer
  337. ${GE_CODE_DIR}/inc
  338. ${GE_CODE_DIR}/inc/external
  339. ${GE_CODE_DIR}/inc/framework
  340. ${GE_CODE_DIR}/inc/framework/common
  341. ${METADEF_DIR}/inc
  342. ${METADEF_DIR}/inc/external/graph
  343. ${METADEF_DIR}/inc/external
  344. ${METADEF_DIR}/inc/graph
  345. ${CMAKE_BINARY_DIR}
  346. ${CMAKE_BINARY_DIR}/proto/ge
  347. #### yellow zone ####
  348. ${GE_CODE_DIR}/../inc
  349. ${GE_CODE_DIR}/../inc/cce
  350. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  351. #### blue zone
  352. ${ASCEND_DIR}/driver/include
  353. ${ASCEND_DIR}/fwkacllib/include
  354. )
  355. target_link_libraries(ge_runner
  356. $<BUILD_INTERFACE:intf_pub>
  357. ge_memory
  358. adump_server
  359. -Wl,--no-as-needed
  360. graph
  361. ge_common
  362. protobuf
  363. register
  364. c_sec
  365. slog
  366. mmpa
  367. msprof
  368. runtime
  369. resource
  370. error_manager
  371. ascend_hal_stub
  372. -Wl,--as-needed
  373. json
  374. -lrt
  375. -ldl
  376. )
  377. ############ libge_compiler.so ############
  378. set(INFER_SRC_LIST
  379. "graph/manager/trans_var_data_utils.cc"
  380. "omm/csa_interact.cc"
  381. "common/fp16_t.cc"
  382. "common/formats/utils/formats_trans_utils.cc"
  383. "common/formats/format_transfers/datatype_transfer.cc"
  384. "common/formats/format_transfers/format_transfer_transpose.cc"
  385. "common/formats/format_transfers/format_transfer_nchw_nc1hwc0.cc"
  386. "common/formats/format_transfers/format_transfer_fractal_z.cc"
  387. "common/formats/format_transfers/format_transfer_fractal_nz.cc"
  388. "common/formats/format_transfers/format_transfer_fractal_zz.cc"
  389. "common/formats/format_transfers/format_transfer_nhwc_nc1hwc0.cc"
  390. "common/formats/format_transfers/format_transfer_nc1hwc0_nchw.cc"
  391. "common/formats/format_transfers/format_transfer_nc1hwc0_nhwc.cc"
  392. "common/formats/format_transfers/format_transfer_hwcn_c1hwncoc0.cc"
  393. "common/formats/format_transfers/format_transfer_c1hwncoc0_hwcn.cc"
  394. "common/formats/format_transfers/format_transfer_fracz_nchw.cc"
  395. "common/formats/format_transfers/format_transfer_fracz_nhwc.cc"
  396. "common/formats/format_transfers/format_transfer_fracz_hwcn.cc"
  397. "common/formats/format_transfers/format_transfer_dhwcn_fracz3D.cc"
  398. "common/formats/format_transfers/format_transfer_dhwnc_fracz3D_transpose.cc"
  399. "common/formats/format_transfers/format_transfer_nchw_fz_c04.cc"
  400. "common/formats/formats.cc"
  401. "common/profiling/profiling_manager.cc"
  402. "common/dump/dump_properties.cc"
  403. "common/dump/dump_manager.cc"
  404. "common/dump/dump_op.cc"
  405. "common/dump/dump_server.cc"
  406. "common/helper/model_cache_helper.cc"
  407. "ge_local_engine/engine/host_cpu_engine.cc"
  408. "common/ge/plugin_manager.cc"
  409. "common/ge/op_tiling_manager.cc"
  410. "init/gelib.cc"
  411. "session/inner_session.cc"
  412. "session/session_manager.cc"
  413. "engine_manager/dnnengine_manager.cc"
  414. "opskernel_manager/ops_kernel_manager.cc"
  415. "graph/manager/graph_manager.cc"
  416. "graph/manager/graph_manager_utils.cc"
  417. "graph/manager/graph_context.cc"
  418. "graph/preprocess/graph_preprocess.cc"
  419. "graph/preprocess/multi_batch_options.cc"
  420. "graph/preprocess/multi_batch_copy_graph.cc"
  421. "graph/execute/graph_execute.cc"
  422. "graph/load/graph_loader.cc"
  423. "graph/optimize/graph_optimize.cc"
  424. "graph/optimize/mem_rw_conflict_optimize.cc"
  425. "graph/optimize/summary_optimize.cc"
  426. "graph/build/graph_builder.cc"
  427. "graph/partition/engine_place.cc"
  428. "graph/partition/graph_partition.cc"
  429. "graph/partition/dynamic_shape_partition.cc"
  430. "generator/ge_generator.cc"
  431. "generator/generator_api.cc"
  432. "graph/manager/graph_var_manager.cc"
  433. "graph/manager/host_mem_manager.cc"
  434. "graph/manager/rdma_pool_allocator.cc"
  435. "graph/manager/graph_mem_allocator.cc"
  436. "graph/manager/graph_caching_allocator.cc"
  437. "model/ge_model.cc"
  438. "model/ge_root_model.cc"
  439. "graph/common/transop_util.cc"
  440. "graph/passes/pass_manager.cc"
  441. "graph/passes/resource_pair_add_control_pass.cc"
  442. "graph/passes/resource_pair_remove_control_pass.cc"
  443. "graph/passes/pass_utils.cc"
  444. "graph/passes/base_pass.cc"
  445. "graph/passes/bitcast_pass.cc"
  446. "graph/passes/constant_folding_pass.cc"
  447. "graph/passes/aicpu_constant_folding_pass.cc"
  448. "graph/passes/reshape_remove_pass.cc"
  449. "graph/passes/reshape_recovery_pass.cc"
  450. "graph/passes/transop_breadth_fusion_pass.cc"
  451. "graph/passes/transop_depth_fusion_pass.cc"
  452. "graph/passes/transop_nearby_allreduce_fusion_pass.cc"
  453. "graph/passes/same_transdata_breadth_fusion_pass.cc"
  454. "graph/passes/transop_without_reshape_fusion_pass.cc"
  455. "graph/passes/compile_nodes_pass.cc"
  456. "graph/passes/variable_prepare_op_pass.cc"
  457. "graph/passes/variable_ref_delete_op_pass.cc"
  458. "graph/passes/variable_ref_useless_control_out_delete_pass.cc"
  459. "graph/passes/subgraph_pass.cc"
  460. "graph/passes/data_pass.cc"
  461. "graph/passes/net_output_pass.cc"
  462. "graph/passes/replace_transshape_pass.cc"
  463. "graph/passes/constant_fuse_same_pass.cc"
  464. "graph/passes/print_op_pass.cc"
  465. "graph/passes/no_use_reshape_remove_pass.cc"
  466. "graph/passes/iterator_op_pass.cc"
  467. "graph/passes/input_output_connection_identify_pass.cc"
  468. "graph/passes/atomic_addr_clean_pass.cc"
  469. "graph/passes/mark_same_addr_pass.cc"
  470. "graph/passes/mark_graph_unknown_status_pass.cc"
  471. "graph/common/omg_util.cc"
  472. "graph/common/bcast.cc"
  473. "graph/common/local_context.cc"
  474. "graph/passes/dimension_compute_pass.cc"
  475. "graph/passes/dimension_adjust_pass.cc"
  476. "graph/passes/get_original_format_pass.cc"
  477. "graph/passes/shape_operate_op_remove_pass.cc"
  478. "graph/passes/unused_op_remove_pass.cc"
  479. "graph/passes/assert_pass.cc"
  480. "graph/passes/dropout_pass.cc"
  481. "graph/passes/infershape_pass.cc"
  482. "graph/passes/unused_const_pass.cc"
  483. "graph/passes/isolated_op_remove_pass.cc"
  484. "graph/passes/permute_pass.cc"
  485. "graph/passes/ctrl_edge_transfer_pass.cc"
  486. "graph/passes/end_of_sequence_add_control_pass.cc"
  487. "host_kernels/broadcast_gradient_args_kernel.cc"
  488. "host_kernels/greater_kernel.cc"
  489. "host_kernels/gather_v2_kernel.cc"
  490. "host_kernels/maximum_kernel.cc"
  491. "host_kernels/floormod_kernel.cc"
  492. "host_kernels/floordiv_kernel.cc"
  493. "host_kernels/range_kernel.cc"
  494. "host_kernels/shape_kernel.cc"
  495. "host_kernels/size_kernel.cc"
  496. "host_kernels/shape_n_kernel.cc"
  497. "host_kernels/rank_kernel.cc"
  498. "host_kernels/broadcast_args_kernel.cc"
  499. "host_kernels/fill_kernel.cc"
  500. "host_kernels/empty_kernel.cc"
  501. "host_kernels/expanddims_kernel.cc"
  502. "host_kernels/reshape_kernel.cc"
  503. "host_kernels/squeeze_kernel.cc"
  504. "host_kernels/unsqueeze_kernel.cc"
  505. "host_kernels/kernel_utils.cc"
  506. "host_kernels/cast_kernel.cc"
  507. "host_kernels/transdata_kernel.cc"
  508. "host_kernels/unpack_kernel.cc"
  509. "host_kernels/transpose_kernel.cc"
  510. "host_kernels/permute_kernel.cc"
  511. "host_kernels/pack_kernel.cc"
  512. "host_kernels/concat_v2_kernel.cc"
  513. "host_kernels/concat_offset_kernel.cc"
  514. "host_kernels/strided_slice_kernel.cc"
  515. "host_kernels/ssd_prior_box_kernel.cc"
  516. "host_kernels/add_kernel.cc"
  517. "host_kernels/sub_kernel.cc"
  518. "host_kernels/mul_kernel.cc"
  519. "host_kernels/reduce_prod_kernel.cc"
  520. "host_kernels/rsqrt_kernel.cc"
  521. "host_kernels/slice_kernel.cc"
  522. "host_kernels/slice_d_kernel.cc"
  523. "host_kernels/dynamic_stitch_kernel.cc"
  524. "host_kernels/identity_kernel.cc"
  525. "graph/passes/stop_gradient_pass.cc"
  526. "graph/passes/prevent_gradient_pass.cc"
  527. "graph/passes/identity_pass.cc"
  528. "graph/passes/ref_identity_delete_op_pass.cc"
  529. "graph/passes/placeholder_with_default_pass.cc"
  530. "graph/passes/snapshot_pass.cc"
  531. "graph/passes/guarantee_const_pass.cc"
  532. "graph/passes/var_is_initialized_op_pass.cc"
  533. "graph/passes/parallel_concat_start_op_pass.cc"
  534. "graph/passes/folding_pass.cc"
  535. "graph/passes/cast_translate_pass.cc"
  536. "graph/passes/prune_pass.cc"
  537. "graph/passes/merge_to_stream_merge_pass.cc"
  538. "graph/passes/switch_to_stream_switch_pass.cc"
  539. "graph/passes/attach_stream_label_pass.cc"
  540. "graph/passes/multi_batch_pass.cc"
  541. "graph/passes/multi_batch_clone_pass.cc"
  542. "graph/passes/subexpression_migration_pass.cc"
  543. "graph/passes/subgraph_const_migration_pass.cc"
  544. "graph/passes/unused_args_clean_pass.cc"
  545. "graph/passes/next_iteration_pass.cc"
  546. "graph/passes/control_trigger_pass.cc"
  547. "graph/passes/cond_pass.cc"
  548. "graph/passes/cond_remove_pass.cc"
  549. "graph/passes/for_pass.cc"
  550. "graph/passes/enter_pass.cc"
  551. "graph/passes/assign_pass.cc"
  552. "graph/passes/addn_pass.cc"
  553. "graph/passes/common_subexpression_elimination_pass.cc"
  554. "graph/passes/transop_symmetry_elimination_pass.cc"
  555. "graph/passes/save_pass.cc"
  556. "graph/passes/switch_dead_branch_elimination.cc"
  557. "graph/passes/switch_logic_remove_pass.cc"
  558. "graph/passes/switch_data_edges_bypass.cc"
  559. "graph/passes/merge_pass.cc"
  560. "graph/passes/variable_format_pass.cc"
  561. "graph/passes/variable_op_pass.cc"
  562. "graph/passes/cast_remove_pass.cc"
  563. "graph/passes/transpose_transdata_pass.cc"
  564. "graph/passes/hccl_memcpy_pass.cc"
  565. "graph/passes/flow_ctrl_pass.cc"
  566. "graph/passes/global_step_insert_pass.cc"
  567. "graph/passes/link_gen_mask_nodes_pass.cc"
  568. "graph/passes/replace_with_empty_const_pass.cc"
  569. "graph/passes/hccl_group_pass.cc"
  570. "graph/passes/memcpy_addr_async_pass.cc"
  571. "graph/passes/set_input_output_offset_pass.cc"
  572. "graph/manager/model_manager/event_manager.cc"
  573. "graph/manager/util/rt_context_util.cc"
  574. "graph/manager/util/variable_accelerate_ctrl.cc"
  575. "graph/manager/util/debug.cc"
  576. "graph/load/new_model_manager/model_manager.cc"
  577. "graph/load/new_model_manager/data_inputer.cc"
  578. "graph/load/new_model_manager/davinci_model.cc"
  579. "graph/load/new_model_manager/davinci_model_parser.cc"
  580. "graph/load/new_model_manager/model_utils.cc"
  581. "graph/load/new_model_manager/aipp_utils.cc"
  582. "graph/load/new_model_manager/tbe_handle_store.cc"
  583. "graph/load/new_model_manager/cpu_queue_schedule.cc"
  584. "graph/load/new_model_manager/zero_copy_task.cc"
  585. "graph/load/new_model_manager/zero_copy_offset.cc"
  586. "graph/load/new_model_manager/data_dumper.cc"
  587. "graph/load/new_model_manager/task_info/task_info.cc"
  588. "graph/load/new_model_manager/task_info/event_record_task_info.cc"
  589. "graph/load/new_model_manager/task_info/event_wait_task_info.cc"
  590. "graph/load/new_model_manager/task_info/fusion_start_task_info.cc"
  591. "graph/load/new_model_manager/task_info/fusion_stop_task_info.cc"
  592. "graph/load/new_model_manager/task_info/kernel_ex_task_info.cc"
  593. "graph/load/new_model_manager/task_info/kernel_task_info.cc"
  594. "graph/load/new_model_manager/task_info/label_set_task_info.cc"
  595. "graph/load/new_model_manager/task_info/label_switch_by_index_task_info.cc"
  596. "graph/load/new_model_manager/task_info/label_goto_ex_task_info.cc"
  597. "graph/load/new_model_manager/task_info/memcpy_async_task_info.cc"
  598. "graph/load/new_model_manager/task_info/memcpy_addr_async_task_info.cc"
  599. "graph/load/new_model_manager/task_info/profiler_trace_task_info.cc"
  600. "graph/load/new_model_manager/task_info/stream_active_task_info.cc"
  601. "graph/load/new_model_manager/task_info/stream_switch_task_info.cc"
  602. "graph/load/new_model_manager/task_info/stream_switchn_task_info.cc"
  603. "graph/load/new_model_manager/task_info/end_graph_task_info.cc"
  604. "graph/load/new_model_manager/task_info/super_kernel/super_kernel_factory.cc"
  605. "graph/load/new_model_manager/task_info/super_kernel/super_kernel.cc"
  606. "single_op/task/op_task.cc"
  607. "single_op/task/build_task_utils.cc"
  608. "single_op/task/tbe_task_builder.cc"
  609. "single_op/task/aicpu_task_builder.cc"
  610. "single_op/task/aicpu_kernel_task_builder.cc"
  611. "single_op/single_op.cc"
  612. "single_op/single_op_model.cc"
  613. "single_op/stream_resource.cc"
  614. "single_op/single_op_manager.cc"
  615. "hybrid/hybrid_davinci_model_stub.cc"
  616. "ir_build/ge_ir_build.cc"
  617. "ir_build/atc_ir_common.cc"
  618. "graph/preprocess/insert_op/ge_aipp_op.cc"
  619. "graph/preprocess/insert_op/util_insert_aipp_op.cc"
  620. "hybrid/node_executor/aicpu/aicpu_ext_info.cc"
  621. "graph/build/model_builder.cc"
  622. "graph/build/task_generator.cc"
  623. "graph/build/stream_allocator.cc"
  624. "graph/build/logical_stream_allocator.cc"
  625. "graph/build/stream_graph_optimizer.cc"
  626. "graph/build/run_context.cc"
  627. "graph/build/label_allocator.cc"
  628. "graph/label/label_maker.cc"
  629. "graph/label/if_label_maker.cc"
  630. "graph/label/case_label_maker.cc"
  631. "graph/label/while_label_maker.cc"
  632. "graph/label/partitioned_call_label_maker.cc"
  633. "analyzer/analyzer.cc"
  634. )
  635. add_library(ge_compiler SHARED ${INFER_SRC_LIST} ${PROTO_SRCS})
  636. target_compile_definitions(ge_compiler PRIVATE
  637. PROTOBUF_INLINE_NOT_IN_HEADERS=0
  638. REUSE_MEMORY=1
  639. FMK_SUPPORT_DUMP
  640. FMK_HOST_INFER
  641. COMPILE_OMG_PACKAGE
  642. )
  643. target_compile_options(ge_compiler PRIVATE
  644. -O2
  645. )
  646. target_include_directories(ge_compiler PRIVATE
  647. ${GE_CODE_DIR}/ge
  648. ${GE_CODE_DIR}/ge/analyzer
  649. ${GE_CODE_DIR}/inc
  650. ${GE_CODE_DIR}/inc/external
  651. ${GE_CODE_DIR}/inc/framework
  652. ${GE_CODE_DIR}/inc/framework/common
  653. ${METADEF_DIR}/inc
  654. ${METADEF_DIR}/inc/external/graph
  655. ${METADEF_DIR}/inc/external
  656. ${METADEF_DIR}/inc/graph
  657. ${CMAKE_BINARY_DIR}
  658. ${CMAKE_BINARY_DIR}/proto/ge
  659. #### yellow zone ####
  660. ${GE_CODE_DIR}/../inc
  661. ${GE_CODE_DIR}/../inc/cce
  662. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  663. #### blue zone
  664. ${ASCEND_DIR}/driver/include
  665. ${ASCEND_DIR}/fwkacllib/include
  666. )
  667. target_link_libraries(ge_compiler
  668. $<BUILD_INTERFACE:intf_pub>
  669. ge_memory
  670. -Wl,--no-as-needed
  671. graph
  672. ge_common
  673. protobuf
  674. register
  675. c_sec
  676. error_manager
  677. slog
  678. mmpa
  679. runtime_compile
  680. resource
  681. -Wl,--as-needed
  682. json
  683. -lrt
  684. -ldl
  685. )
  686. ##################################################################
  687. add_custom_command(
  688. OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_ir_build.cc
  689. ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_api.cc
  690. ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_prof.cc
  691. COMMAND echo "Generating stub files."
  692. && ${HI_PYTHON} ${CMAKE_CURRENT_LIST_DIR}/stub/gen_stubapi.py ${GE_CODE_DIR}/inc/external ${CMAKE_CURRENT_BINARY_DIR}
  693. && mv ge_ir_build.cc stub_ge_ir_build.cc
  694. && mv ge_api.cc stub_ge_api.cc
  695. && mv ge_prof.cc stub_ge_prof.cc
  696. && echo "Generating stub files end."
  697. #WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  698. #DEPENDS stub/gen_stubapi.py ${TOP_DIR}/inc/external ${CMAKE_CURRENT_BINARY_DIR}
  699. )
  700. add_custom_target(ge_stub
  701. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_ir_build.cc
  702. ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_api.cc
  703. ${CMAKE_CURRENT_BINARY_DIR}/stub_ge_prof.cc
  704. )
  705. ##################################################################
  706. ############ stub/libge_compiler.so ############
  707. add_library(atc_stub_ge_compiler SHARED
  708. stub_ge_ir_build.cc
  709. )
  710. add_dependencies(atc_stub_ge_compiler ge_stub)
  711. target_link_libraries(atc_stub_ge_compiler PRIVATE
  712. $<BUILD_INTERFACE:intf_pub>
  713. )
  714. set_target_properties(atc_stub_ge_compiler PROPERTIES
  715. OUTPUT_NAME ge_compiler
  716. LIBRARY_OUTPUT_DIRECTORY atc_stub
  717. )
  718. target_include_directories(atc_stub_ge_compiler PRIVATE
  719. ${GE_CODE_DIR}
  720. ${GE_CODE_DIR}/ge
  721. ${GE_CODE_DIR}/ge/analyzer
  722. ${GE_CODE_DIR}/inc
  723. ${GE_CODE_DIR}/inc/framework
  724. ${GE_CODE_DIR}/inc/framework/common
  725. ${GE_CODE_DIR}/inc/external
  726. ${METADEF_DIR}/inc/external/graph
  727. ${METADEF_DIR}/inc/graph
  728. #### yellow zone ####
  729. ${GE_CODE_DIR}/../inc/cce
  730. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  731. #### blue zone ####
  732. ${ASCEND_DIR}/driver/include
  733. ${ASCEND_DIR}/fwkacllib/include
  734. )
  735. ############ stub/libge_runner.so ############
  736. add_library(fwk_stub_ge_runner SHARED
  737. stub_ge_api.cc
  738. stub_ge_prof.cc
  739. )
  740. add_dependencies(fwk_stub_ge_runner ge_stub)
  741. target_link_libraries(fwk_stub_ge_runner PRIVATE
  742. $<BUILD_INTERFACE:intf_pub>
  743. )
  744. set_target_properties(fwk_stub_ge_runner PROPERTIES
  745. OUTPUT_NAME ge_runner
  746. LIBRARY_OUTPUT_DIRECTORY fwk_stub
  747. )
  748. target_include_directories(fwk_stub_ge_runner PRIVATE
  749. ${GE_CODE_DIR}
  750. ${GE_CODE_DIR}/ge
  751. ${GE_CODE_DIR}/ge/analyzer
  752. ${GE_CODE_DIR}/inc
  753. ${GE_CODE_DIR}/inc/external
  754. ${GE_CODE_DIR}/inc/framework
  755. ${GE_CODE_DIR}/inc/framework/common
  756. ${METADEF_DIR}/inc/external/graph
  757. ${METADEF_DIR}/inc/graph
  758. #### yellow zone ####
  759. ${GE_CODE_DIR}/../inc/cce
  760. ${GE_CODE_DIR}/../toolchain/ide/ide-daemon/external
  761. #### blue zone ####
  762. ${ASCEND_DIR}/driver/include
  763. ${ASCEND_DIR}/fwkacllib/include
  764. )
  765. ###############################################################
  766. add_custom_target(
  767. engine_conf.json ALL
  768. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/engine_conf.json
  769. )
  770. add_custom_command(
  771. OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/engine_conf.json
  772. COMMAND cp ${CMAKE_CURRENT_LIST_DIR}/engine_manager/engine_conf.json ${CMAKE_CURRENT_BINARY_DIR}/
  773. )
  774. ###############################################################
  775. add_custom_target(
  776. optimizer_priority.pbtxt ALL
  777. DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/optimizer_priority.pbtxt
  778. )
  779. add_custom_command(
  780. OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/optimizer_priority.pbtxt
  781. COMMAND cp ${CMAKE_CURRENT_LIST_DIR}/opskernel_manager/optimizer_priority.pbtxt ${CMAKE_CURRENT_BINARY_DIR}/
  782. )
  783. ###############################################################
  784. ############ install ############
  785. set(INSTALL_BASE_DIR "")
  786. set(INSTALL_LIBRARY_DIR lib)
  787. install(TARGETS ge_runner ge_compiler OPTIONAL
  788. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}
  789. )
  790. install(TARGETS atc_stub_ge_compiler fwk_stub_ge_runner OPTIONAL
  791. LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}/stub
  792. )
  793. install(FILES
  794. ${CMAKE_CURRENT_BINARY_DIR}/engine_conf.json
  795. ${CMAKE_CURRENT_BINARY_DIR}/optimizer_priority.pbtxt OPTIONAL
  796. DESTINATION ${INSTALL_LIBRARY_DIR}
  797. )

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