Bootstrap

多线程libtorch推理问题

一、环境

我出问题的测试环境如下:

pytorch1.10+cu113

pytorch1.10+cu116

pytorch2.2+cu118


libtorch1.10.1+cu113


libtorch1.10.1+cu111


libtorch1.9.0+cu111


二、问题现象


最近封装libtorch的推理为多线程推理的时候,遇到一个现象如下:

(1)只要是将模型初始化放到一个子线程中,就在40系列显卡上运行到forward处报错:

但是在30系列的显卡上,是没有任何问题的。

注:使用std::async(std::launch::async)这个函数执行模型初始化的线程函数时候确是可以的,这个就很让人奇怪。

(2)解决方法

最后发现是我在推理的时候加入了:

t
;