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.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. if($ENV{LIBRARY_PATH})
  2. string(REPLACE ":" ";" SYSTEM_LIBRARY_PATHS $ENV{LIBRARY_PATH})
  3. endif()
  4. if(MGE_CUDA_USE_STATIC)
  5. find_library(TRT_LIBRARY
  6. NAMES libnvinfer_static.a libnvinfer_static.lib
  7. PATHS $ENV{LD_LIBRARY_PATH} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
  8. HINTS ${SYSTEM_LIBRARY_PATHS}
  9. PATH_SUFFIXES lib lib64
  10. DOC "TRT library." )
  11. else()
  12. find_library(TRT_LIBRARY
  13. NAMES libnvinfer.so libnvinfer.dylib
  14. PATHS $ENV{LD_LIBRARY_PATH} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
  15. HINTS ${SYSTEM_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")
  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 Library")
  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("-- Found TensorRT: ${__found_trt_root} (found version: ${TRT_VERSION_STRING})")

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

Contributors (1)