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.

ge_inference.mk 19 kB

4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  1. LOCAL_PATH := $(call my-dir)
  2. include $(LOCAL_PATH)/stub/Makefile
  3. COMMON_LOCAL_SRC_FILES := \
  4. proto/fusion_model.proto \
  5. proto/optimizer_priority.proto \
  6. graph/manager/trans_var_data_utils.cc \
  7. common/fp16_t.cc \
  8. common/formats/utils/formats_trans_utils.cc \
  9. common/formats/format_transfers/datatype_transfer.cc \
  10. common/formats/format_transfers/format_transfer_transpose.cc \
  11. common/formats/format_transfers/format_transfer_nchw_nc1hwc0.cc \
  12. common/formats/format_transfers/format_transfer_fractal_z.cc \
  13. common/formats/format_transfers/format_transfer_fractal_nz.cc \
  14. common/formats/format_transfers/format_transfer_fractal_zz.cc \
  15. common/formats/format_transfers/format_transfer_nhwc_nc1hwc0.cc \
  16. common/formats/format_transfers/format_transfer_nc1hwc0_nchw.cc \
  17. common/formats/format_transfers/format_transfer_nc1hwc0_nhwc.cc \
  18. common/formats/format_transfers/format_transfer_hwcn_c1hwncoc0.cc \
  19. common/formats/format_transfers/format_transfer_c1hwncoc0_hwcn.cc \
  20. common/formats/format_transfers/format_transfer_fracz_nchw.cc \
  21. common/formats/format_transfers/format_transfer_fracz_nhwc.cc \
  22. common/formats/format_transfers/format_transfer_fracz_hwcn.cc \
  23. common/formats/format_transfers/format_transfer_dhwcn_fracz3D.cc \
  24. common/formats/format_transfers/format_transfer_dhwnc_fracz3D_transpose.cc \
  25. common/formats/format_transfers/format_transfer_nchw_fz_c04.cc \
  26. common/formats/formats.cc \
  27. common/profiling/profiling_manager.cc \
  28. common/dump/dump_properties.cc \
  29. common/dump/dump_manager.cc \
  30. common/dump/dump_op.cc \
  31. common/dump/dump_server.cc \
  32. common/helper/model_cache_helper.cc \
  33. ge_local_engine/engine/host_cpu_engine.cc \
  34. GRAPH_MANAGER_LOCAL_SRC_FILES := \
  35. common/ge/plugin_manager.cc\
  36. common/ge/op_tiling_manager.cc\
  37. init/gelib.cc \
  38. session/inner_session.cc \
  39. session/session_manager.cc \
  40. engine_manager/dnnengine_manager.cc \
  41. opskernel_manager/ops_kernel_manager.cc \
  42. opskernel_manager/ops_kernel_builder_manager.cc \
  43. graph/manager/graph_manager.cc \
  44. graph/manager/graph_manager_utils.cc \
  45. graph/manager/graph_context.cc \
  46. graph/preprocess/graph_preprocess.cc \
  47. graph/preprocess/multi_batch_options.cc \
  48. graph/preprocess/multi_batch_copy_graph.cc \
  49. graph/execute/graph_execute.cc \
  50. graph/load/graph_loader.cc \
  51. graph/optimize/graph_optimize.cc \
  52. graph/optimize/mem_rw_conflict_optimize.cc \
  53. graph/optimize/summary_optimize.cc \
  54. graph/build/graph_builder.cc \
  55. graph/partition/engine_place.cc \
  56. graph/partition/graph_partition.cc \
  57. graph/partition/dynamic_shape_partition.cc \
  58. graph/partition/stage_partition.cc \
  59. generator/ge_generator.cc \
  60. generator/generator_api.cc \
  61. graph/manager/graph_var_manager.cc \
  62. graph/manager/host_mem_manager.cc \
  63. graph/manager/rdma_pool_allocator.cc \
  64. graph/manager/host_mem_allocator.cc \
  65. graph/manager/graph_mem_allocator.cc \
  66. graph/manager/graph_caching_allocator.cc \
  67. BUILER_SRC_FILES := \
  68. ir_build/ge_ir_build.cc \
  69. ir_build/attr_options/utils.cc \
  70. ir_build/attr_options/keep_dtype_option.cc \
  71. ir_build/attr_options/weight_compress_option.cc \
  72. ir_build/option_utils.cc \
  73. ANALYZER_SRC_FILES:= \
  74. analyzer/analyzer.cc \
  75. OMG_HOST_SRC_FILES := \
  76. model/ge_model.cc \
  77. model/ge_root_model.cc \
  78. graph/common/transop_util.cc \
  79. graph/passes/pass_manager.cc \
  80. graph/passes/resource_pair_add_control_pass.cc \
  81. graph/passes/resource_pair_remove_control_pass.cc \
  82. graph/passes/pass_utils.cc \
  83. graph/passes/base_pass.cc \
  84. graph/passes/bitcast_pass.cc \
  85. graph/passes/constant_folding_pass.cc \
  86. graph/passes/aicpu_constant_folding_pass.cc \
  87. graph/passes/reshape_remove_pass.cc \
  88. graph/passes/reshape_recovery_pass.cc \
  89. graph/passes/transop_breadth_fusion_pass.cc \
  90. graph/passes/transop_depth_fusion_pass.cc \
  91. graph/passes/transop_nearby_allreduce_fusion_pass.cc \
  92. graph/passes/same_transdata_breadth_fusion_pass.cc \
  93. graph/passes/transop_without_reshape_fusion_pass.cc \
  94. graph/passes/compile_nodes_pass.cc \
  95. graph/passes/variable_prepare_op_pass.cc \
  96. graph/passes/variable_ref_delete_op_pass.cc \
  97. graph/passes/variable_ref_useless_control_out_delete_pass.cc \
  98. graph/passes/subgraph_pass.cc \
  99. graph/passes/data_pass.cc \
  100. graph/passes/net_output_pass.cc \
  101. graph/passes/replace_transshape_pass.cc \
  102. graph/passes/constant_fuse_same_pass.cc \
  103. graph/passes/fuse_data_nodes_with_common_input_pass.cc \
  104. graph/passes/print_op_pass.cc \
  105. graph/passes/no_use_reshape_remove_pass.cc \
  106. graph/passes/iterator_op_pass.cc \
  107. graph/passes/input_output_connection_identify_pass.cc \
  108. graph/passes/atomic_addr_clean_pass.cc \
  109. graph/passes/mark_same_addr_pass.cc \
  110. graph/passes/mark_graph_unknown_status_pass.cc \
  111. graph/passes/mark_node_unknown_shape_pass.cc \
  112. graph/passes/mark_agnostic_pass.cc \
  113. graph/common/omg_util.cc \
  114. graph/common/bcast.cc \
  115. graph/common/local_context.cc \
  116. graph/passes/dimension_compute_pass.cc \
  117. graph/passes/dimension_adjust_pass.cc \
  118. graph/passes/get_original_format_pass.cc \
  119. graph/passes/shape_operate_op_remove_pass.cc \
  120. graph/passes/assert_pass.cc \
  121. graph/passes/dropout_pass.cc \
  122. graph/passes/infershape_pass.cc \
  123. graph/passes/unused_const_pass.cc \
  124. graph/passes/permute_pass.cc \
  125. graph/passes/ctrl_edge_transfer_pass.cc \
  126. graph/passes/end_of_sequence_add_control_pass.cc \
  127. host_kernels/broadcast_gradient_args_kernel.cc \
  128. host_kernels/greater_kernel.cc \
  129. host_kernels/gather_v2_kernel.cc \
  130. host_kernels/maximum_kernel.cc \
  131. host_kernels/floormod_kernel.cc \
  132. host_kernels/floordiv_kernel.cc \
  133. host_kernels/range_kernel.cc \
  134. host_kernels/shape_kernel.cc \
  135. host_kernels/size_kernel.cc \
  136. host_kernels/shape_n_kernel.cc \
  137. host_kernels/rank_kernel.cc \
  138. host_kernels/broadcast_args_kernel.cc \
  139. host_kernels/fill_kernel.cc \
  140. host_kernels/empty_kernel.cc \
  141. host_kernels/expanddims_kernel.cc \
  142. host_kernels/reshape_kernel.cc \
  143. host_kernels/squeeze_kernel.cc \
  144. host_kernels/unsqueeze_kernel.cc \
  145. host_kernels/kernel_utils.cc \
  146. host_kernels/cast_kernel.cc \
  147. host_kernels/transdata_kernel.cc \
  148. host_kernels/unpack_kernel.cc \
  149. host_kernels/transpose_kernel.cc \
  150. host_kernels/permute_kernel.cc \
  151. host_kernels/pack_kernel.cc \
  152. host_kernels/concat_v2_kernel.cc \
  153. host_kernels/concat_offset_kernel.cc \
  154. host_kernels/strided_slice_kernel.cc \
  155. host_kernels/ssd_prior_box_kernel.cc \
  156. host_kernels/add_kernel.cc \
  157. host_kernels/sub_kernel.cc \
  158. host_kernels/mul_kernel.cc \
  159. host_kernels/reduce_prod_kernel.cc \
  160. host_kernels/rsqrt_kernel.cc \
  161. host_kernels/slice_kernel.cc \
  162. host_kernels/slice_d_kernel.cc \
  163. host_kernels/dynamic_stitch_kernel.cc \
  164. host_kernels/identity_kernel.cc \
  165. host_kernels/reformat_kernel.cc \
  166. graph/passes/stop_gradient_pass.cc \
  167. graph/passes/prevent_gradient_pass.cc \
  168. graph/passes/identity_pass.cc \
  169. graph/passes/ref_identity_delete_op_pass.cc \
  170. graph/passes/placeholder_with_default_pass.cc \
  171. graph/passes/snapshot_pass.cc \
  172. graph/passes/guarantee_const_pass.cc \
  173. graph/passes/var_is_initialized_op_pass.cc \
  174. graph/passes/parallel_concat_start_op_pass.cc \
  175. graph/passes/folding_pass.cc \
  176. graph/passes/cast_translate_pass.cc \
  177. graph/passes/prune_pass.cc \
  178. graph/passes/merge_to_stream_merge_pass.cc \
  179. graph/passes/merge_input_memcpy_pass.cc \
  180. graph/passes/switch_to_stream_switch_pass.cc \
  181. graph/passes/attach_stream_label_pass.cc \
  182. graph/passes/multi_batch_pass.cc \
  183. graph/passes/multi_batch_clone_pass.cc \
  184. graph/passes/subexpression_migration_pass.cc \
  185. graph/passes/subgraph_const_migration_pass.cc \
  186. graph/passes/unused_args_clean_pass.cc \
  187. graph/passes/next_iteration_pass.cc \
  188. graph/passes/control_trigger_pass.cc \
  189. graph/passes/cond_pass.cc \
  190. graph/passes/cond_remove_pass.cc \
  191. graph/passes/remove_same_const_pass.cc \
  192. graph/passes/useless_control_out_remove_pass.cc \
  193. graph/passes/for_pass.cc \
  194. graph/passes/enter_pass.cc \
  195. graph/passes/assign_remove_pass.cc \
  196. graph/passes/inplace_support_check_pass.cc \
  197. graph/passes/addn_pass.cc \
  198. graph/passes/common_subexpression_elimination_pass.cc \
  199. graph/passes/transop_symmetry_elimination_pass.cc \
  200. graph/passes/save_pass.cc \
  201. graph/passes/switch_dead_branch_elimination.cc \
  202. graph/passes/switch_logic_remove_pass.cc \
  203. graph/passes/switch_data_edges_bypass.cc \
  204. graph/passes/merge_pass.cc \
  205. graph/passes/variable_op_pass.cc \
  206. graph/passes/cast_remove_pass.cc \
  207. graph/passes/transpose_transdata_pass.cc \
  208. graph/passes/hccl_memcpy_pass.cc \
  209. graph/passes/hccl_continuous_memcpy_pass.cc \
  210. graph/passes/flow_ctrl_pass.cc \
  211. graph/passes/global_step_insert_pass.cc \
  212. graph/passes/link_gen_mask_nodes_pass.cc \
  213. graph/passes/replace_with_empty_const_pass.cc \
  214. graph/passes/hccl_group_pass.cc \
  215. graph/passes/memcpy_addr_async_pass.cc \
  216. graph/passes/set_input_output_offset_pass.cc \
  217. graph/passes/buffer_pool_memory_pass.cc \
  218. OMG_DEVICE_SRC_FILES := $(OMG_HOST_SRC_FILES)
  219. OME_HOST_SRC_FILES := \
  220. graph/manager/model_manager/event_manager.cc \
  221. graph/manager/util/rt_context_util.cc \
  222. graph/manager/util/variable_accelerate_ctrl.cc \
  223. graph/manager/util/debug.cc \
  224. graph/load/model_manager/model_manager.cc \
  225. graph/load/model_manager/data_inputer.cc \
  226. graph/load/model_manager/davinci_model.cc \
  227. graph/load/model_manager/davinci_model_parser.cc \
  228. graph/load/model_manager/model_utils.cc \
  229. graph/load/model_manager/aipp_utils.cc \
  230. graph/load/model_manager/tbe_handle_store.cc \
  231. graph/load/model_manager/cpu_queue_schedule.cc \
  232. graph/load/model_manager/zero_copy_task.cc \
  233. graph/load/model_manager/zero_copy_offset.cc \
  234. graph/load/model_manager/data_dumper.cc \
  235. graph/load/model_manager/task_info/task_info.cc \
  236. graph/load/model_manager/task_info/event_record_task_info.cc \
  237. graph/load/model_manager/task_info/event_wait_task_info.cc \
  238. graph/load/model_manager/task_info/fusion_start_task_info.cc \
  239. graph/load/model_manager/task_info/fusion_stop_task_info.cc \
  240. graph/load/model_manager/task_info/kernel_ex_task_info.cc \
  241. graph/load/model_manager/task_info/kernel_task_info.cc \
  242. graph/load/model_manager/task_info/label_set_task_info.cc \
  243. graph/load/model_manager/task_info/label_switch_by_index_task_info.cc \
  244. graph/load/model_manager/task_info/label_goto_ex_task_info.cc \
  245. graph/load/model_manager/task_info/memcpy_async_task_info.cc \
  246. graph/load/model_manager/task_info/memcpy_addr_async_task_info.cc \
  247. graph/load/model_manager/task_info/profiler_trace_task_info.cc \
  248. graph/load/model_manager/task_info/stream_active_task_info.cc \
  249. graph/load/model_manager/task_info/stream_switch_task_info.cc \
  250. graph/load/model_manager/task_info/stream_switchn_task_info.cc \
  251. graph/load/model_manager/task_info/end_graph_task_info.cc \
  252. graph/load/model_manager/task_info/model_exit_task_info.cc \
  253. graph/load/model_manager/task_info/super_kernel/super_kernel_factory.cc \
  254. graph/load/model_manager/task_info/super_kernel/super_kernel.cc \
  255. single_op/task/op_task.cc \
  256. single_op/task/build_task_utils.cc \
  257. single_op/task/tbe_task_builder.cc \
  258. single_op/task/aicpu_task_builder.cc \
  259. single_op/task/aicpu_kernel_task_builder.cc \
  260. single_op/single_op.cc \
  261. single_op/single_op_model.cc \
  262. single_op/stream_resource.cc \
  263. single_op/single_op_manager.cc \
  264. hybrid/hybrid_davinci_model_stub.cc \
  265. hybrid/node_executor/aicpu/aicpu_ext_info.cc \
  266. # graph/load/model_manager/task_info/hccl_task_info.cc
  267. OME_DEVICE_SRC_FILES := $(OME_HOST_SRC_FILES)
  268. COMMON_LOCAL_C_INCLUDES := \
  269. proto/om.proto \
  270. proto/task.proto \
  271. proto/insert_op.proto \
  272. proto/ge_ir.proto \
  273. proto/fwk_adapter.proto \
  274. proto/op_mapping_info.proto \
  275. proto/dump_task.proto \
  276. proto/tensorflow/attr_value.proto \
  277. proto/tensorflow/function.proto \
  278. proto/tensorflow/graph.proto \
  279. proto/tensorflow/node_def.proto \
  280. proto/tensorflow/op_def.proto \
  281. proto/tensorflow/resource_handle.proto \
  282. proto/tensorflow/tensor.proto \
  283. proto/tensorflow/tensor_shape.proto \
  284. proto/tensorflow/types.proto \
  285. proto/tensorflow/versions.proto \
  286. $(LOCAL_PATH) ./ \
  287. $(TOPDIR)inc \
  288. $(TOPDIR)metadef/inc \
  289. $(TOPDIR)graphengine/inc \
  290. $(TOPDIR)inc/external \
  291. $(TOPDIR)metadef/inc/external \
  292. $(TOPDIR)graphengine/inc/external \
  293. $(TOPDIR)metadef/inc/external/graph \
  294. $(TOPDIR)graphengine/inc/framework \
  295. $(TOPDIR)graphengine/inc/framework/common \
  296. $(TOPDIR)metadef/inc/common \
  297. $(TOPDIR)inc/runtime \
  298. $(TOPDIR)libc_sec/include \
  299. $(TOPDIR)ops/built-in/op_proto/inc \
  300. $(TOPDIR)toolchain/ide/ide-daemon/external \
  301. third_party/json/include \
  302. third_party/protobuf/include \
  303. third_party/opencv/include \
  304. ANALYZER_LOCAL_INCLUDES := \
  305. $(TOPDIR)graphengine/ge/analyzer \
  306. NEW_OMG_HOST_SRC_FILES := \
  307. graph/preprocess/insert_op/util_insert_aipp_op.cc \
  308. graph/preprocess/insert_op/ge_aipp_op.cc \
  309. graph/build/model_builder.cc \
  310. graph/build/task_generator.cc \
  311. graph/build/stream_allocator.cc \
  312. graph/build/logical_stream_allocator.cc \
  313. graph/build/stream_graph_optimizer.cc \
  314. graph/build/run_context.cc \
  315. graph/build/label_allocator.cc \
  316. graph/label/label_maker.cc \
  317. graph/label/if_label_maker.cc \
  318. graph/label/case_label_maker.cc \
  319. graph/label/while_label_maker.cc \
  320. graph/label/partitioned_call_label_maker.cc \
  321. OME_HOST_SRC_FILES += $(NEW_OMG_HOST_SRC_FILES)
  322. OMG_DEVICE_SRC_FILES += $(NEW_OMG_HOST_SRC_FILES)
  323. DEVICE_LOCAL_C_INCLUDES := \
  324. proto/om.proto \
  325. proto/task.proto \
  326. proto/insert_op.proto \
  327. proto/ge_ir.proto \
  328. proto/fwk_adapter.proto \
  329. proto/op_mapping_info.proto \
  330. proto/tensorflow/attr_value.proto \
  331. proto/tensorflow/function.proto \
  332. proto/tensorflow/graph.proto \
  333. proto/tensorflow/node_def.proto \
  334. proto/tensorflow/op_def.proto \
  335. proto/tensorflow/resource_handle.proto \
  336. proto/tensorflow/tensor.proto \
  337. proto/tensorflow/tensor_shape.proto \
  338. proto/tensorflow/types.proto \
  339. proto/tensorflow/versions.proto \
  340. $(LOCAL_PATH) ./ \
  341. $(TOPDIR)inc \
  342. $(TOPDIR)metadef/inc \
  343. $(TOPDIR)graphengine/inc \
  344. $(TOPDIR)libc_sec/include \
  345. $(TOPDIR)inc/external \
  346. $(TOPDIR)metadef/inc/external \
  347. $(TOPDIR)graphengine/inc/external \
  348. $(TOPDIR)metadef/inc/external/graph \
  349. $(TOPDIR)metadef/inc/common/util \
  350. $(TOPDIR)graphengine/inc/framework \
  351. $(TOPDIR)graphengine/inc/framework/common \
  352. $(TOPDIR)inc/runtime \
  353. $(TOPDIR)ops/built-in/op_proto/inc \
  354. $(TOPDIR)graphengine/ge \
  355. $(TOPDIR)toolchain/ide/ide-daemon/external \
  356. third_party/json/include \
  357. third_party/protobuf/include \
  358. third_party/opencv/include \
  359. #compiler for host infer
  360. include $(CLEAR_VARS)
  361. LOCAL_MODULE := libge_compiler
  362. LOCAL_CFLAGS += -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -DREUSE_MEMORY=1 -O2
  363. # from ome_inference.mk
  364. LOCAL_CFLAGS += -DFMK_HOST_INFER -DFMK_SUPPORT_DUMP -DCOMPILE_OMG_PACKAGE -Dgoogle=ascend_private
  365. ifeq ($(DEBUG), 1)
  366. LOCAL_CFLAGS += -g -O0
  367. endif
  368. LOCAL_C_INCLUDES := $(COMMON_LOCAL_C_INCLUDES)
  369. LOCAL_C_INCLUDES += $(ANALYZER_LOCAL_INCLUDES)
  370. LOCAL_SRC_FILES := $(COMMON_LOCAL_SRC_FILES)
  371. LOCAL_SRC_FILES += $(GRAPH_MANAGER_LOCAL_SRC_FILES)
  372. LOCAL_SRC_FILES += $(OMG_HOST_SRC_FILES)
  373. LOCAL_SRC_FILES += $(OME_HOST_SRC_FILES)
  374. LOCAL_SRC_FILES += $(NEW_OME_DEVICE_SRC_FILES)
  375. LOCAL_SRC_FILES += $(BUILER_SRC_FILES)
  376. LOCAL_SRC_FILES += $(ANALYZER_SRC_FILES)
  377. LOCAL_STATIC_LIBRARIES := libge_memory \
  378. libmmpa \
  379. LOCAL_SHARED_LIBRARIES := \
  380. libc_sec \
  381. libascend_protobuf \
  382. libslog \
  383. libgraph \
  384. libregister \
  385. libge_common \
  386. libruntime_compile \
  387. libresource \
  388. liberror_manager \
  389. LOCAL_LDFLAGS := -lrt -ldl
  390. include $(BUILD_HOST_SHARED_LIBRARY)
  391. #compiler for host infer
  392. include $(CLEAR_VARS)
  393. LOCAL_MODULE := stub/libge_compiler
  394. LOCAL_CFLAGS += -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -DREUSE_MEMORY=1 -O2
  395. LOCAL_CFLAGS += -DFMK_HOST_INFER -DFMK_SUPPORT_DUMP
  396. ifeq ($(DEBUG), 1)
  397. LOCAL_CFLAGS += -g -O0
  398. endif
  399. LOCAL_C_INCLUDES := $(COMMON_LOCAL_C_INCLUDES)
  400. LOCAL_SRC_FILES := ../../out/ge/lib64/stub/ge_ir_build.cc
  401. LOCAL_SHARED_LIBRARIES :=
  402. LOCAL_LDFLAGS := -lrt -ldl
  403. include $(BUILD_HOST_SHARED_LIBRARY)
  404. #compiler for device
  405. include $(CLEAR_VARS)
  406. LOCAL_MODULE := libge_compiler
  407. LOCAL_CFLAGS += -DGOOGLE_PROTOBUF_NO_RTTI -DDEV_VISIBILITY -DNONSUPPORT_SAVE_TO_FILE
  408. LOCAL_CFLAGS += -DPROTOBUF_INLINE_NOT_IN_HEADERS=0
  409. LOCAL_CFLAGS += -DREUSE_MEMORY=1 -DFMK_SUPPORT_DUMP -DCOMPILE_OMG_PACKAGE
  410. LOCAL_CFLAGS += -DOMG_DEVICE_VERSION
  411. LOCAL_CFLAGS += -O2 -Dgoogle=ascend_private
  412. LOCAL_MODULE_CLASS := SHARED_LIBRARIES
  413. LOCAL_SRC_FILES := $(COMMON_LOCAL_SRC_FILES)
  414. LOCAL_SRC_FILES += $(GRAPH_MANAGER_LOCAL_SRC_FILES)
  415. LOCAL_SRC_FILES += $(OMG_DEVICE_SRC_FILES)
  416. LOCAL_SRC_FILES += $(OME_DEVICE_SRC_FILES)
  417. LOCAL_SRC_FILES += $(BUILER_SRC_FILES)
  418. LOCAL_SRC_FILES += $(ANALYZER_SRC_FILES)
  419. LOCAL_C_INCLUDES := $(DEVICE_LOCAL_C_INCLUDES)
  420. LOCAL_C_INCLUDES += $(ANALYZER_LOCAL_INCLUDES)
  421. LOCAL_STATIC_LIBRARIES := libge_memory \
  422. libmmpa \
  423. LOCAL_SHARED_LIBRARIES := \
  424. libc_sec \
  425. libascend_protobuf \
  426. libslog \
  427. libgraph \
  428. libregister \
  429. libresource \
  430. libruntime_compile \
  431. libge_common \
  432. ifeq ($(device_os),android)
  433. LOCAL_LDFLAGS := -ldl
  434. else
  435. LOCAL_LDFLAGS := -lrt -ldl
  436. endif
  437. LOCAL_CFLAGS += \
  438. -Wall
  439. ifeq ($(device_os),android)
  440. LOCAL_LDLIBS += -L$(PWD)/prebuilts/clang/linux-x86/aarch64/android-ndk-r21/sysroot/usr/lib/aarch64-linux-android/29 -llog
  441. endif
  442. include $(BUILD_SHARED_LIBRARY)

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