FeiYull / TensorRT-Alpha

🔥🔥🔥TensorRT for YOLOv8、YOLOv8-Pose、YOLOv8-Seg、YOLOv8-Cls、YOLOv7、YOLOv6、YOLOv5、YOLONAS......🚀🚀🚀CUDA IS ALL YOU NEED.🍎🍎🍎
GNU General Public License v2.0
1.26k stars 196 forks source link

YOLOv8目标检测,多线程核心转储的问题 #62

Open dcstempt opened 7 months ago

dcstempt commented 7 months ago

当我在线程A:初始化YOLOv8,设置显卡的id,并随机生成一张RGB图像进行模型预热; 线程A有以下一个重要步骤: cudaStatus = cudaSetDevice(this->gpu_id); // 设置显卡id this->yolo = std::make_shared(this->param); // 调用构造函数 yolo->init(this->trt_file) // 调用init函数 this->yolo->check();

此时,我在线程B,调用YOLOv8进行图像检测,将会报错: [E] [TRT] 1: [caskUtils.cpp::createCaskHardwareInfo::852] Error Code 1: Cuda Runtime (an illegal memory access was encountered)

但是很奇怪的一点是,如果显卡id=0,多线程不会出现问题。只有当gpu_id != 0是,才会报错