Window下部署,采用AfxBeginThread创建线程调用classifier时?

在主线程调用识别时,时间正常单张小图运行时间8ms左右;当创建一个单独的线程进行处理时,运行时间会到100ms,经过多次测试已经确认;当使用采用AfxBeginThread创建线程调用classifier时耗时较长。是否有同类问题给予解决?单个GPU
已邀请:

liuqingjie1987

赞同来自:

遇到同样的问题 主线程中初始化,子线程运行的时候,效果和跑cpu版是一样慢的,应该是每次执行识别的时候,都要在此函数中Caffe& Caffe::Get()重新初始化,包括cublas,他们说因为caffe是TLS机制,改进方法里面增加个静态函数:
void Caffe::Set(Caffe* ctx) {
    if (ctx == 0)
        thread_instance_.release();
    else
        thread_instance_.reset(ctx);
}
 
然后修改原来的get函数为:

Caffe& Caffe::Get() {
  //if (!thread_instance_.get()) {
  //  thread_instance_.reset(new Caffe());
  //}
  //return *(thread_instance_.get());
    CHECK(thread_instance_.get()) << "Caffe context not initialized";
    return *(thread_instance_.get()); //liuqj modify
}
不过我还不知道怎么用,有大神会吗

要回复问题请先登录注册