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.

cnml.cmake 1.8 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. if($ENV{LIBRARY_PATH})
  2. string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH})
  3. endif()
  4. find_library(CNML_LIBRARY
  5. NAMES libcnml.so
  6. PATHS $ENV{LD_LIBRARY_PATH} "$ENV{NEUWARE_HOME}/lib64" ${CMAKE_INSTALL_PREFIX}
  7. HINTS ${SYSTEM_LIBRARY_PATHS}
  8. PATH_SUFFIXES lib lib64
  9. DOC "CNML library." )
  10. if(CNML_LIBRARY STREQUAL "CNML_LIBRARY-NOTFOUND")
  11. message(FATAL_ERROR "Can not find CNML Library")
  12. endif()
  13. get_filename_component(__found_cnml_root "${CNML_LIBRARY}/../include" REALPATH)
  14. find_path(CNML_INCLUDE_DIR
  15. NAMES cnml.h
  16. HINTS "$ENV{NEUWARE_HOME}/include" ${__found_cnml_root}
  17. PATH_SUFFIXES include
  18. DOC "Path to CNML include directory." )
  19. if(CNML_INCLUDE_DIR STREQUAL "CNML_INCLUDE_DIR-NOTFOUND")
  20. message(FATAL_ERROR "Can not find CNML Library")
  21. endif()
  22. file(STRINGS "${CNML_INCLUDE_DIR}/cnml.h" CNML_MAJOR REGEX "^#define CNML_MAJOR_VERSION [0-9]+.*$")
  23. file(STRINGS "${CNML_INCLUDE_DIR}/cnml.h" CNML_MINOR REGEX "^#define CNML_MINOR_VERSION [0-9]+.*$")
  24. file(STRINGS "${CNML_INCLUDE_DIR}/cnml.h" CNML_PATCH REGEX "^#define CNML_PATCH_VERSION [0-9]+.*$")
  25. string(REGEX REPLACE "^#define CNML_MAJOR_VERSION ([0-9]+).*$" "\\1" CNML_VERSION_MAJOR "${CNML_MAJOR}")
  26. string(REGEX REPLACE "^#define CNML_MINOR_VERSION ([0-9]+).*$" "\\1" CNML_VERSION_MINOR "${CNML_MINOR}")
  27. string(REGEX REPLACE "^#define CNML_PATCH_VERSION ([0-9]+).*$" "\\1" CNML_VERSION_PATCH "${CNML_PATCH}")
  28. set(CNML_VERSION_STRING "${CNML_VERSION_MAJOR}.${CNML_VERSION_MINOR}.${CNML_VERSION_PATCH}")
  29. add_library(libcnml SHARED IMPORTED)
  30. set_target_properties(libcnml PROPERTIES
  31. IMPORTED_LOCATION ${CNML_LIBRARY}
  32. INTERFACE_INCLUDE_DIRECTORIES ${CNML_INCLUDE_DIR}
  33. )
  34. message("-- Found CNML: ${__found_cnml_root} (found version: ${CNML_VERSION_STRING})")

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台