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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. if(NOT "$ENV{LIBRARY_PATH}" STREQUAL "")
  2. string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH})
  3. endif()
  4. if("${TRT_ROOT_DIR}" STREQUAL "" AND NOT "$ENV{TRT_ROOT_DIR}" STREQUAL "")
  5. set(TRT_ROOT_DIR $ENV{TRT_ROOT_DIR})
  6. endif()
  7. if(MGE_CUDA_USE_STATIC)
  8. find_library(TRT_LIBRARY
  9. NAMES libnvinfer_static.a nvinfer.lib
  10. PATHS $ENV{LD_LIBRARY_PATH} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
  11. HINTS ${SYSTEM_LIBRARY_PATHS}
  12. PATH_SUFFIXES lib lib64
  13. DOC "TRT library." )
  14. else()
  15. find_library(TRT_LIBRARY
  16. NAMES libnvinfer.so libnvinfer.dylib nvinfer.dll
  17. PATHS $ENV{LD_LIBRARY_PATH} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
  18. HINTS ${SYSTEM_LIBRARY_PATHS}
  19. PATH_SUFFIXES lib lib64
  20. DOC "TRT library." )
  21. endif()
  22. if(TRT_LIBRARY STREQUAL "TRT_LIBRARY-NOTFOUND")
  23. message(FATAL_ERROR "Can not find TensorRT Library")
  24. endif()
  25. get_filename_component(__found_trt_root ${TRT_LIBRARY}/../.. REALPATH)
  26. find_path(TRT_INCLUDE_DIR
  27. NAMES NvInfer.h
  28. HINTS ${TRT_ROOT_DIR} ${CUDA_TOOLKIT_INCLUDE} ${__found_trt_root}
  29. PATH_SUFFIXES include
  30. DOC "Path to TRT include directory." )
  31. if(TRT_INCLUDE_DIR STREQUAL "TRT_INCLUDE_DIR-NOTFOUND")
  32. message(FATAL_ERROR "Can not find TensorRT Library")
  33. endif()
  34. file(STRINGS "${TRT_INCLUDE_DIR}/NvInfer.h" TensorRT_MAJOR REGEX "^#define NV_TENSORRT_MAJOR [0-9]+.*$")
  35. file(STRINGS "${TRT_INCLUDE_DIR}/NvInfer.h" TensorRT_MINOR REGEX "^#define NV_TENSORRT_MINOR [0-9]+.*$")
  36. file(STRINGS "${TRT_INCLUDE_DIR}/NvInfer.h" TensorRT_PATCH REGEX "^#define NV_TENSORRT_PATCH [0-9]+.*$")
  37. if (TensorRT_MAJOR STREQUAL "")
  38. file(STRINGS "${TRT_INCLUDE_DIR}/NvInferVersion.h" TensorRT_MAJOR REGEX "^#define NV_TENSORRT_MAJOR [0-9]+.*$")
  39. file(STRINGS "${TRT_INCLUDE_DIR}/NvInferVersion.h" TensorRT_MINOR REGEX "^#define NV_TENSORRT_MINOR [0-9]+.*$")
  40. file(STRINGS "${TRT_INCLUDE_DIR}/NvInferVersion.h" TensorRT_PATCH REGEX "^#define NV_TENSORRT_PATCH [0-9]+.*$")
  41. endif()
  42. string(REGEX REPLACE "^#define NV_TENSORRT_MAJOR ([0-9]+).*$" "\\1" TensorRT_VERSION_MAJOR "${TensorRT_MAJOR}")
  43. string(REGEX REPLACE "^#define NV_TENSORRT_MINOR ([0-9]+).*$" "\\1" TensorRT_VERSION_MINOR "${TensorRT_MINOR}")
  44. string(REGEX REPLACE "^#define NV_TENSORRT_PATCH ([0-9]+).*$" "\\1" TensorRT_VERSION_PATCH "${TensorRT_PATCH}")
  45. set(TRT_VERSION_STRING "${TensorRT_VERSION_MAJOR}.${TensorRT_VERSION_MINOR}.${TensorRT_VERSION_PATCH}")
  46. if(MGE_CUDA_USE_STATIC)
  47. add_library(libnvinfer STATIC IMPORTED)
  48. else()
  49. add_library(libnvinfer SHARED IMPORTED)
  50. endif()
  51. set_target_properties(libnvinfer PROPERTIES
  52. IMPORTED_LOCATION ${TRT_LIBRARY}
  53. INTERFACE_INCLUDE_DIRECTORIES ${TRT_INCLUDE_DIR}
  54. )
  55. message(STATUS "Found TensorRT: ${__found_trt_root} (found version: ${TRT_VERSION_STRING})")

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