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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. cmake_minimum_required(VERSION 3.14)
  2. project (MetaDef[CXX])
  3. set(METADEF_DIR ${CMAKE_CURRENT_LIST_DIR})
  4. if (DEFINED ENV{D_PKG_SERVER})
  5. set(METADEF_PB_PKG $ENV{D_PKG_SERVER})
  6. endif()
  7. option(ENABLE_OPEN_SRC "Enable graphengine compile in opensource." FALSE)
  8. if (ENABLE_OPEN_SRC)
  9. set(HI_PYTHON python3)
  10. include(cmake/external_libs/protobuf_shared.cmake)
  11. include(cmake/external_libs/protoc.cmake)
  12. include(cmake/external_libs/securec.cmake)
  13. include(cmake/external_libs/json.cmake)
  14. include(cmake/FindModule.cmake)
  15. include(cmake/intf_pub_linux.cmake)
  16. if(DEFINED ENV{D_LINK_PATH})
  17. # D_LINK_PATH is set
  18. set(GE_LIB_PATH $ENV{D_LINK_PATH})
  19. set(GE_SYS_ARCH "")
  20. if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
  21. # x86 ubuntu
  22. set(GE_SYS_ARCH "x86_64")
  23. elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
  24. # arm euleros
  25. set(GE_SYS_ARCH "aarch64")
  26. else()
  27. message(FATAL_ERROR "Running on a unsupported architecture: ${SYSTEM_TYPE}, build terminated")
  28. endif()
  29. set(GE_LIB_PATH ${GE_LIB_PATH}/${GE_SYS_ARCH})
  30. find_module(slog libalog.so ${GE_LIB_PATH})
  31. find_module(static_mmpa libmmpa.a ${GE_LIB_PATH})
  32. find_module(error_manager liberror_manager.so ${GE_LIB_PATH})
  33. elseif(ENABLE_GE_COV OR ENABLE_GE_UT)
  34. message(STATUS "Running on llt mode, no need to depend other component.")
  35. else()
  36. if(DEFINED ENV{ASCEND_CUSTOM_PATH})
  37. set(ASCEND_DIR $ENV{ASCEND_CUSTOM_PATH})
  38. else()
  39. set(ASCEND_DIR /usr/local/Ascend)
  40. endif()
  41. set(ASCEND_ATC_DIR ${ASCEND_DIR}/atc/lib64)
  42. find_module(slog libalog.so ${ASCEND_ATC_DIR})
  43. find_module(static_mmpa libmmpa.a ${ASCEND_ATC_DIR})
  44. find_module(error_manager liberror_manager.so ${ASCEND_ATC_DIR})
  45. endif()
  46. endif()
  47. add_subdirectory(graph)
  48. if (NOT ENABLE_D AND NOT ENABLE_ACL AND NOT ENABLE_MS_TESTCASES)
  49. add_subdirectory(register)
  50. endif ()

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