源自github用户prettyocean85:
- 版本、环境信息:
paddle develop+cuda10+tensoRT6.0.1.5
系统环境:Win0、Python3.7
- 安装方式信息:
本地编译:编译命令make .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release -DWITH_GPU=ON -DWITH_TESTING=OFF -DWITH_PYTHON=ON -DPYTHON_EXECUTABLE=D:\pythonAPI\Python37\python.exe -DCUDA_ARCH_NAME=Auto -DTENSORRT_ROOT="D:\4 Tools\TensorRT-6.0.1.5"
- 问题描述:2个问题
问题1.Win10编译paddle develop源码+tensoRT6编译报错
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2019: unresolved external symbol "public: __cdecl paddle::PaddleBuf::PaddleBuf(class paddle::PaddleBuf const &)" (??0PaddleBuf@paddle@@QEAA@AEBV01@@Z) referenced in function "public: __cdecl paddle::PaddleTensor::PaddleTensor(struct paddle::PaddleTensor const &)" (??0PaddleTensor@paddle@@QEAA@AEBU01@@Z)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: __cdecl paddle::PaddleBuf::PaddleBuf(class paddle::PaddleBuf const &)" (??0PaddleBuf@paddle@@QEAA@AEBV01@@Z)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: __cdecl paddle::PaddleBuf::PaddleBuf(class paddle::PaddleBuf const &)" (??0PaddleBuf@paddle@@QEAA@AEBV01@@Z)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2019: unresolved external symbol "public: class paddle::PaddleBuf & __cdecl paddle::PaddleBuf::operator=(class paddle::PaddleBuf const &)" (??4PaddleBuf@paddle@@QEAAAEAV01@AEBV01@@Z) referenced in function "public: struct paddle::PaddleTensor & __cdecl paddle::PaddleTensor::operator=(struct paddle::PaddleTensor const &)" (??4PaddleTensor@paddle@@QEAAAEAU01@AEBU01@@Z)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: class paddle::PaddleBuf & __cdecl paddle::PaddleBuf::operator=(class paddle::PaddleBuf const &)" (??4PaddleBuf@paddle@@QEAAAEAV01@AEBV01@@Z)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: class paddle::PaddleBuf & __cdecl paddle::PaddleBuf::operator=(class paddle::PaddleBuf const &)" (??4PaddleBuf@paddle@@QEAAAEAV01@AEBV01@@Z)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2019: unresolved external symbol "public: class paddle::PaddleBuf & __cdecl paddle::PaddleBuf::operator=(class paddle::PaddleBuf &&)" (??4PaddleBuf@paddle@@QEAAAEAV01@$$QEAV01@@Z) referenced in function "public: struct paddle::PaddleTensor & __cdecl paddle::PaddleTensor::operator=(struct paddle::PaddleTensor &&)" (??4PaddleTensor@paddle@@QEAAAEAU01@$$QEAU01@@Z)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: class paddle::PaddleBuf & __cdecl paddle::PaddleBuf::operator=(class paddle::PaddleBuf &&)" (??4PaddleBuf@paddle@@QEAAAEAV01@$$QEAV01@@Z)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: class paddle::PaddleBuf & __cdecl paddle::PaddleBuf::operator=(class paddle::PaddleBuf &&)" (??4PaddleBuf@paddle@@QEAAAEAV01@$$QEAV01@@Z)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2019: unresolved external symbol "public: __cdecl paddle::PaddleBuf::PaddleBuf(class paddle::PaddleBuf &&)" (??0PaddleBuf@paddle@@QEAA@$$QEAV01@@Z) referenced in function "public: __cdecl paddle::PaddleTensor::PaddleTensor(struct paddle::PaddleTensor &&)" (??0PaddleTensor@paddle@@QEAA@$$QEAU01@@Z)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: __cdecl paddle::PaddleBuf::PaddleBuf(class paddle::PaddleBuf &&)" (??0PaddleBuf@paddle@@QEAA@$$QEAV01@@Z)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: __cdecl paddle::PaddleBuf::PaddleBuf(class paddle::PaddleBuf &&)" (??0PaddleBuf@paddle@@QEAA@$$QEAV01@@Z)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2019: unresolved external symbol "private: void __cdecl paddle::PaddleBuf::Free(void)" (?Free@PaddleBuf@paddle@@AEAAXXZ) referenced in function "public: __cdecl paddle::PaddleBuf::~PaddleBuf(void)" (??1PaddleBuf@paddle@@QEAA@XZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "private: void __cdecl paddle::PaddleBuf::Free(void)" (?Free@PaddleBuf@paddle@@AEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "private: void __cdecl paddle::PaddleBuf::Free(void)" (?Free@PaddleBuf@paddle@@AEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableCUDNN(void)" (?EnableCUDNN@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableCUDNN(void)" (?EnableCUDNN@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableCUDNN(void)" (?EnableCUDNN@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMKLDNN(void)" (?EnableMKLDNN@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMKLDNN(void)" (?EnableMKLDNN@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMKLDNN(void)" (?EnableMKLDNN@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMkldnnQuantizer(void)" (?EnableMkldnnQuantizer@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMkldnnQuantizer(void)" (?EnableMkldnnQuantizer@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMkldnnQuantizer(void)" (?EnableMkldnnQuantizer@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMkldnnBfloat16(void)" (?EnableMkldnnBfloat16@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMkldnnBfloat16(void)" (?EnableMkldnnBfloat16@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::CpuPassStrategy::EnableMkldnnBfloat16(void)" (?EnableMkldnnBfloat16@CpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableCUDNN(void)" (?EnableCUDNN@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableCUDNN(void)" (?EnableCUDNN@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableCUDNN(void)" (?EnableCUDNN@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMKLDNN(void)" (?EnableMKLDNN@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMKLDNN(void)" (?EnableMKLDNN@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMKLDNN(void)" (?EnableMKLDNN@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMkldnnQuantizer(void)" (?EnableMkldnnQuantizer@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMkldnnQuantizer(void)" (?EnableMkldnnQuantizer@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMkldnnQuantizer(void)" (?EnableMkldnnQuantizer@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine_op.lib(tensorrt_engine_op.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMkldnnBfloat16(void)" (?EnableMkldnnBfloat16@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(trt_int8_calibrator.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMkldnnBfloat16(void)" (?EnableMkldnnBfloat16@GpuPassStrategy@paddle@@UEAAXXZ)
29>libtensorrt_engine.lib(engine.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl paddle::GpuPassStrategy::EnableMkldnnBfloat16(void)" (?EnableMkldnnBfloat16@GpuPassStrategy@paddle@@UEAAXXZ)
29>D:\Paddle\build\paddle\fluid\pybind\Release\op_function_generator.exe : fatal error LNK1120: 13 unresolved externals
问题2.虽然编译报错但是能够成功编译出库,pip安装whl后使用python预测OCR1.1模型可启动tensoRT。但多张图预测GPU持续增长最后退出,报错:
File "D:\pythonAPI\Python37\call_paddle_STR_threadtrt.py", line 860, in call
self.predictor.zero_copy_run()
RuntimeError: Unknown exception
TypeError: cannot unpack non-iterable NoneType object
W1120 15:30:58.625453 52856 analysis_predictor.cc:1042] Deprecated. Please use CreatePredictor instead.
E1120 15:31:22.240916 83484 helper.h:78] c:\p4sw\sw\gpgpu\MachineLearning\DIT\release\5.1\engine\runtime.cpp (25) - Cuda Error in nvinfer1::`anonymous-namespace'::DefaultAllocator::allocate: 2 (out of memory)