我对Python和C++版本的咖啡因前向分类脚本进行了编码,以测试CAFE的推理性能。模型已经训练好了。而utils的结果并不完全相同。在
我的设置: 1卡:Titan XP,12GB 2型号:InceptionV3 三。图像尺寸:3*299*299
当BoTCHYSIZE设置为40时,GRAM使用率可以达到10GB,但是GPU UTILS只能达到77%~79%,Python和C++都是这样。因此,性能约为258帧/秒。在
在我的脚本中,我加载了图像,对其进行了预处理,将其加载到输入层,然后重复net\u0.forward()操作。根据我的理解,这不会导致任何Mem拷贝操作,所以理想情况下应该最大限度地提高GPU实用程序。但我只能达到80%。在
在C++ Classification Tutorial中,我发现了以下短语:
Use multiple classification threads to ensure the GPU is always fully utilized and not waiting for an I/O blocked CPU thread.
所以我试着使用多线程编译的OpenBLAS,在CPU后端下,实际上更多的CPU参与转发,但GPU后端没有用。在GPU后端下,CPU utils将被固定到大约100%。在
然后,我甚至尝试将批处理大小减少到20,并在两个终端启动两个分类过程。结果是,GRAM的使用量增加到11GB,而GPU的utils减少到64%~66%。最后,性能下降到200帧/秒左右。在
有人遇到过这个问题吗?我真的很困惑。在
任何意见都是受欢迎的。在
谢谢
正如我所观察到的,GPU util随着
1)低PCI express模式resnet-152(x16)-90%>;resnet-152(x8)-80%>;resnet-152(x4)-70% 2) 大型号-VGG-100%(x16);ResNet-50(x16)-95~100%;ResNet-152(x16)-90%
另外,如果我关闭cuDNN,GPU Util总是100%。在
所以我觉得cuDNN有一些问题,但是我对这个问题不太了解。在
NVCaffe稍好一些,MXNet可以利用GPU 100%(resnet-152;x4)。在
相关问题 更多 >
编程相关推荐