libtorch-gpu推理时占用CPU 100%问题解决

libtorch-gpu推理时占用CPU 100%问题解决

可能很多童鞋在利用libtorch进行pytorch模型加速的时候并没有注意过CPU的占用问题,可甚至有时候觉得能调通模型都觉得很好了。然而事实是越精越好(或者CPU的占用其实也影响模型的推理性能),可能觉得我说法有些问题,因为本来用的是GPU进行计算。注意此处的解释根据个人理解而来:

首先先引入几个概念:
  1. cpu个数是指物理上安装了几个cpu,一般的个人电脑是安装了1个cpu

  2. cpu内核数是指物理上,一个cpu芯片上集成了几个内核单元,现代cpu都是多核的。

  3. cpu线程数是指逻辑上处理单元,这个技术是Intel的超线程技术,它让操作系统识别到有多个处理单元

在这里插入图片描述
这里特别时候说一下:torch.get_num_threads()返回的本机为6, C++返回为12(针对我的本机),我的理解是,python返回的是Returns the number of threads used for parallelizing CPU operations, 也就是指的是内核书,而C++返回的是线程数,及处理单元(处理器)个数;
在C++下,libtorch默认是开启全部线程数,若线程全开(可用cout <

你可能感兴趣的:(C++,Pytorch,libtorch,深度学习,c++,多线程)