我正在尝试通过使用多个GPU并为每个GPU实例化一个单独的Session来加快Tensorflow推理。
我正在为此使用Tensorflow 1.7和2个Quadro GV100。 GV100分别是设备0和设备1。
我的C ++代码如下所示:
auto options0 = SessionOptions();
options0.config.mutable_gpu_options()->set_visible_device_list("0");
NewSession(options0, &m_session0);
auto options1 = SessionOptions();
options1.config.mutable_gpu_options()->set_visible_device_list("1");
NewSession(options1, &m_session1);
但是,当我执行此代码时,出现以下错误消息:
名称:Quadro GV100主要:7个次要:0 memoryClockRate(GHz):1.627 pciBusID:0000:18:00.0 totalMemory:31.87GiB空闲内存:31.33GiB 2019-01-07 17:56:09.453901:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:1423]添加可见的gpu设备:0 2019-01-07 17:56:10.196800:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:911]具有强度1边缘矩阵的设备互连StreamExecutor: 2019-01-07 17:56:10.202994:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:917] 0 2019-01-07 17:56:10.206965:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:930] 0:N 2019-01-07 17:56:10.211407:IC:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:1041]创建了TensorFlow设备(/ job:localhost /副本:0 /任务:0 /设备:GPU:0(具有30421 MB内存)->物理GPU(设备:0,名称:Quadro GV100,pci总线ID:0000:18:00.0,计算能力:7.0) 17:56:11.099:选择GPU:1 2019-01-07 17:56:11.280313:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:1344]找到了具有以下属性的设备0: 名称:Quadro GV100主要:7个次要:0 memoryClockRate(GHz):1.627 pciBusID:0000:3b:00.0 totalMemory:31.87GiB空闲内存:31.33GiB 2019-01-07 17:56:11.291274:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:1423]添加可见的gpu设备:1 2019-01-07 17:56:12.076807:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:911]具有强度1边缘矩阵的设备互连StreamExecutor: 2019-01-07 17:56:12.082561:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:917] 1 2019-01-07 17:56:12.088587:I C:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc:930] 1:N 2019-01-07 17:56:12.095142:FC:\ tensorflow_1_7 \ tensorflow \ tensorflow \ core \ common_runtime \ gpu \ gpu_id_manager.cc:45] 检查失败:cuda_gpu_id.value()== result.first->秒(1比0)将相同的TfGpuId映射到不同的CUDA GPU ID。 TfGpuId:0现有映射的CUDA GPU ID:0试图映射到CUDA GPU ID:1
我的问题是,为每个Tensorflow会话分配/专用GPU的正确方法是什么?
非常感谢您的提前帮助!