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.

tensorrt.cmake 6.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. if("${TRT_ROOT_DIR}" STREQUAL "" AND NOT "$ENV{TRT_ROOT_DIR}" STREQUAL "")
  2. set(TRT_ROOT_DIR $ENV{TRT_ROOT_DIR})
  3. endif()
  4. if(MGE_CUDA_USE_STATIC)
  5. find_library(TRT_LIBRARY
  6. NAMES libnvinfer_static.a nvinfer.lib
  7. PATHS ${ALTER_LD_LIBRARY_PATHS} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
  8. HINTS ${ALTER_LIBRARY_PATHS}
  9. PATH_SUFFIXES lib lib64
  10. DOC "TRT library." )
  11. else()
  12. find_library(TRT_LIBRARY
  13. NAMES libnvinfer.so libnvinfer.dylib nvinfer.dll
  14. PATHS ${ALTER_LD_LIBRARY_PATHS} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
  15. HINTS ${ALTER_LIBRARY_PATHS}
  16. PATH_SUFFIXES lib lib64
  17. DOC "TRT library." )
  18. endif()
  19. if(TRT_LIBRARY STREQUAL "TRT_LIBRARY-NOTFOUND")
  20. message(FATAL_ERROR "Can not find TensorRT Library, please refer to scripts/cmake-build/BUILD_README.md to init TRT env")
  21. endif()
  22. get_filename_component(__found_trt_root ${TRT_LIBRARY}/../.. REALPATH)
  23. find_path(TRT_INCLUDE_DIR
  24. NAMES NvInfer.h
  25. HINTS ${TRT_ROOT_DIR} ${CUDA_TOOLKIT_INCLUDE} ${__found_trt_root}
  26. PATH_SUFFIXES include
  27. DOC "Path to TRT include directory." )
  28. if(TRT_INCLUDE_DIR STREQUAL "TRT_INCLUDE_DIR-NOTFOUND")
  29. message(FATAL_ERROR "Can not find TensorRT INCLUDE, please refer to scripts/cmake-build/BUILD_README.md to init TRT env")
  30. endif()
  31. file(STRINGS "${TRT_INCLUDE_DIR}/NvInfer.h" TensorRT_MAJOR REGEX "^#define NV_TENSORRT_MAJOR [0-9]+.*$")
  32. file(STRINGS "${TRT_INCLUDE_DIR}/NvInfer.h" TensorRT_MINOR REGEX "^#define NV_TENSORRT_MINOR [0-9]+.*$")
  33. file(STRINGS "${TRT_INCLUDE_DIR}/NvInfer.h" TensorRT_PATCH REGEX "^#define NV_TENSORRT_PATCH [0-9]+.*$")
  34. if (TensorRT_MAJOR STREQUAL "")
  35. file(STRINGS "${TRT_INCLUDE_DIR}/NvInferVersion.h" TensorRT_MAJOR REGEX "^#define NV_TENSORRT_MAJOR [0-9]+.*$")
  36. file(STRINGS "${TRT_INCLUDE_DIR}/NvInferVersion.h" TensorRT_MINOR REGEX "^#define NV_TENSORRT_MINOR [0-9]+.*$")
  37. file(STRINGS "${TRT_INCLUDE_DIR}/NvInferVersion.h" TensorRT_PATCH REGEX "^#define NV_TENSORRT_PATCH [0-9]+.*$")
  38. endif()
  39. string(REGEX REPLACE "^#define NV_TENSORRT_MAJOR ([0-9]+).*$" "\\1" TensorRT_VERSION_MAJOR "${TensorRT_MAJOR}")
  40. string(REGEX REPLACE "^#define NV_TENSORRT_MINOR ([0-9]+).*$" "\\1" TensorRT_VERSION_MINOR "${TensorRT_MINOR}")
  41. string(REGEX REPLACE "^#define NV_TENSORRT_PATCH ([0-9]+).*$" "\\1" TensorRT_VERSION_PATCH "${TensorRT_PATCH}")
  42. set(TRT_VERSION_STRING "${TensorRT_VERSION_MAJOR}.${TensorRT_VERSION_MINOR}.${TensorRT_VERSION_PATCH}")
  43. if(MGE_CUDA_USE_STATIC)
  44. add_library(libnvinfer STATIC IMPORTED)
  45. else()
  46. add_library(libnvinfer SHARED IMPORTED)
  47. endif()
  48. set_target_properties(libnvinfer PROPERTIES
  49. IMPORTED_LOCATION ${TRT_LIBRARY}
  50. INTERFACE_INCLUDE_DIRECTORIES ${TRT_INCLUDE_DIR}
  51. )
  52. message(STATUS "Found TensorRT: ${__found_trt_root} (found version: ${TRT_VERSION_STRING})")
  53. if(TensorRT_VERSION_MAJOR GREATER_EQUAL 7)
  54. if(MGE_CUDA_USE_STATIC)
  55. find_library(LIBMYELIN_COMPILER
  56. NAMES libmyelin_compiler_static.a myelin_compiler_static.lib
  57. PATHS ${__found_trt_root}/lib
  58. )
  59. if(LIBMYELIN_COMPILER STREQUAL "LIBMYELIN_COMPILER-NOTFOUND")
  60. message(FATAL_ERROR "Can not find LIBMYELIN_COMPILER Library")
  61. else()
  62. message(STATUS "Found TensorRT myelin_compiler: ${LIBMYELIN_COMPILER}")
  63. endif()
  64. add_library(libmyelin_compiler STATIC IMPORTED)
  65. set_target_properties(libmyelin_compiler PROPERTIES
  66. IMPORTED_LOCATION ${LIBMYELIN_COMPILER}
  67. )
  68. find_library(LIBMYELIN_EXECUTOR
  69. NAMES libmyelin_executor_static.a myelin_executor_static.lib
  70. PATHS ${__found_trt_root}/lib
  71. )
  72. if(LIBMYELIN_EXECUTOR STREQUAL "LIBMYELIN_EXECUTOR-NOTFOUND")
  73. message(FATAL_ERROR "Can not find LIBMYELIN_EXECUTOR Library")
  74. else()
  75. message(STATUS "Found TensorRT libmyelin_executor: ${LIBMYELIN_EXECUTOR}")
  76. endif()
  77. add_library(libmyelin_executor STATIC IMPORTED)
  78. set_target_properties(libmyelin_executor PROPERTIES
  79. IMPORTED_LOCATION ${LIBMYELIN_EXECUTOR}
  80. )
  81. find_library(LIBMYELIN_PATTERN_RUNTIME
  82. NAMES libmyelin_pattern_runtime_static.a myelin_pattern_runtime_static.lib
  83. PATHS ${__found_trt_root}/lib
  84. )
  85. if(LIBMYELIN_PATTERN_RUNTIME STREQUAL "LIBMYELIN_PATTERN_RUNTIME-NOTFOUND")
  86. message(FATAL_ERROR "Can not find LIBMYELIN_PATTERN_RUNTIME Library")
  87. else()
  88. message(STATUS "Found TensorRT libmyelin_pattern_runtime: ${LIBMYELIN_PATTERN_RUNTIME}")
  89. endif()
  90. add_library(libmyelin_pattern_runtime STATIC IMPORTED)
  91. set_target_properties(libmyelin_pattern_runtime PROPERTIES
  92. IMPORTED_LOCATION ${LIBMYELIN_PATTERN_RUNTIME}
  93. )
  94. find_library(LIBMYELIN_PATTERN_LIBRARY
  95. NAMES libmyelin_pattern_library_static.a myelin_pattern_library_static.lib
  96. PATHS ${__found_trt_root}/lib
  97. )
  98. if(LIBMYELIN_PATTERN_LIBRARY STREQUAL "LIBMYELIN_PATTERN_LIBRARY-NOTFOUND")
  99. message(FATAL_ERROR "Can not find LIBMYELIN_PATTERN_LIBRARY Library")
  100. else()
  101. message(STATUS "Found TensorRT libmyelin_pattern_library: ${LIBMYELIN_PATTERN_LIBRARY}")
  102. endif()
  103. add_library(libmyelin_pattern_library STATIC IMPORTED)
  104. set_target_properties(libmyelin_pattern_library PROPERTIES
  105. IMPORTED_LOCATION ${LIBMYELIN_PATTERN_LIBRARY}
  106. )
  107. else()
  108. find_library(LIBMYELIN_SHARED
  109. NAMES libmyelin.so myelin.dll
  110. PATHS ${__found_trt_root}/lib
  111. )
  112. if(LIBMYELIN_SHARED STREQUAL "LIBMYELIN_SHARED-NOTFOUND")
  113. message(FATAL_ERROR "Can not find LIBMYELIN_SHARED Library")
  114. else()
  115. message(STATUS "Found TensorRT libmyelin_shared: ${LIBMYELIN_SHARED}")
  116. endif()
  117. add_library(libmyelin SHARED IMPORTED)
  118. set_target_properties(libmyelin PROPERTIES
  119. IMPORTED_LOCATION ${LIBMYELIN_SHARED}
  120. )
  121. endif()
  122. endif()

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