dlunion / tensorRTIntegrate

TensorRT ONNX Plugin、Inference、Compile
463 stars 114 forks source link

getPluginCreator could not find plugin DCNv2 version 1 #37

Closed XinnWang closed 4 years ago

XinnWang commented 4 years ago

Hi~ Thanks for sharing! I try to convert onnx to trt model, so i deleted all caffe related code, and only used onnx related code. i got following error when running the code:

[08/14/2020-22:29:07] [E] [TRT] INVALID_ARGUMENT: getPluginCreator could not find plugin DCNv2 version 1
DCNv2 plugin was not found in the plugin registry!While parsing node number 136 [Plugin]:
3
ERROR: /d/Project_Dominant/Load_CenterTrack_Onnx/src/onnx_parser/builtin_op_importers.cpp:1693 In function importPlugin:
[8] Assertion failed: false
[08/14/2020-22:29:07] [E] [TRT] Network must have at least one output
[08/14/2020-22:29:07] [E] [TRT] Network validation failed.
Segmentation fault (core dumped)

Any helps or suggestions ? Thanks.

XinnWang commented 4 years ago

btw, i tried your code, it works fine. but after i change the makefile to cmake, it cannot find any plugin( no MReLU no HSwish no DCNv2). My CMakeLists is :

cmake_minimum_required(VERSION 2.8)
project(demo)

# SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_BUILD_TYPE "Release")
MESSAGE("Build type: " ${CMAKE_BUILD_TYPE})

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC -g -O3 -fopenmp -w -DONNX_ML -DNDEBUG")
SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -std=c++11 -Xcompiler -fPIC -g -O3 -w -gencode=arch=compute_75,code=sm_75")

FIND_PACKAGE(CUDA REQUIRED)
find_package(Protobuf 3.11.4 EXACT REQUIRED)
find_package(OpenCV REQUIRED)

include_directories(
${PROJECT_SOURCE_DIR}/include/
${PROJECT_SOURCE_DIR}/src/
/usr/local/cuda/include/
/usr/local/TensorRT-7.1.3.4/include/
${PROTOBUF_INCLUDE_DIRS}
)

link_directories(
/usr/local/cuda/lib64/
/usr/local/TensorRT-7.1.3.4/lib/
)

set(SOURCE_FILES
        src/builder/trt_builder.cpp

        src/onnx_parser/InstanceNormalization.cpp
        src/onnx_parser/ModelImporter.cpp
        src/onnx_parser/NvOnnxParser.cpp
        src/onnx_parser/OnnxAttrs.cpp
        src/onnx_parser/ShapedWeights.cpp
        src/onnx_parser/builtin_op_importers.cpp
        src/onnx_parser/onnx2trt_utils.cpp
        src/onnx_parser/plugin.cpp

        src/onnxplugin/onnxplugin.cpp
        src/caffeplugin/caffeplugin.cpp

        src/common/cc_util.cpp
        src/common/json.cpp
        src/common/trt_common.cpp

        src/infer/trt_backend.cpp
        src/infer/trt_infer.cpp

        src/onnx/onnx-operators_ONNX_NAMESPACE-ml.pb.cpp
        src/onnx/onnx_ONNX_NAMESPACE-ml.pb.cpp

        src/examples/center_net_coco2x_dcn.cpp
        src/examples/center_track_coco_tracking.cpp
        src/examples/dbface.cpp
        src/examples/onnx.cpp
)

CUDA_ADD_LIBRARY(cuda_libs
        src/infer/ct_detect_backend.cu
        src/infer/dbface_backend.cu
        src/infer/trt_infer_norm.cu

        src/onnx_parser/ResizeNearest.cu
        src/onnx_parser/Split.cu

        src/onnxplugin/plugins/DCNv2.cu
        src/onnxplugin/plugins/HSigmoid.cu
        src/onnxplugin/plugins/HSwish.cu
        src/onnxplugin/plugins/MReLU.cu

        src/caffeplugin/plugins/ChannelMultiplicationLayer.cu
        src/caffeplugin/plugins/ClipLayer.cu
        src/caffeplugin/plugins/DCNLayer.cu
        src/caffeplugin/plugins/PlexShuffleLayer.cu
        src/caffeplugin/plugins/TestPlugin.cu
)

add_executable(demo
        src/main.cpp
        ${SOURCE_FILES} )

target_link_libraries(demo
        ${OpenCV_LIBS}
        cudnn cublas cudart nvinfer nvparsers nvinfer_plugin
        ${PROTOBUF_LIBRARIES}
        cuda_libs
        )

Any helps or suggestions ? Thanks.

a61730607 commented 3 years ago

@XinnWang how did you solve this problem ? can you share your solution? thx

XinnWang commented 3 years ago

Remove "CUDA_ADD_LIBRARY". Add .cu files to "SOURCE_FILES", change "add_executable" to "cuda_add_executable" worked for me.