tensorflow c_api.h为什么GPU比CPU慢

时间:2018-11-09 00:54:02

标签: c++ c api tensorflow

我训练了TF_SessionRun(sess, nullptr, // Run options. &input_op, &input_tensor, 1, // Input tensors, input tensor values, number of inputs. &out_op, &output_tensor, 1, // Output tensors, output tensor values, number of outputs. nullptr, 0, // Target operations, number of targets. nullptr, // Run metadata. status // Output status. ); ,然后将模型加载到C项目中以预测数据。我发现GPU的运行速度比CPU慢。

这是我的配置:

  • gpu:nvidia TITAN X
  • CUDA:9.0
  • cudnn:7.0
  • cpu:英特尔E5
  • tensorflow:1.11.0

我预测了大约200个数据项,每个数据项都调用该函数:

-ffast-math

每次GPU都比CPU慢。

我的方法不对吗?

是否有提高速度的方法?

我可以批量输入数据进行预测吗?

这是c_api.h enter link description here

1 个答案:

答案 0 :(得分:0)

将数据传输到GPU内存有一定的开销,即使在Python中,对于极小的数据集,有时也会看到这种趋势,因为在大多数情况下,CPU未被使用而是等待,因此CPU有时表现优于GPU。下一批数据将进入,数据集大小为200,这似乎是最合理的原因。

要使其速度更快,Python api可以在批处理模式下将数据预加载到gpu中,这在某种程度上可以抵消此问题,请在c api中检查类似的选项