TensorFlow:GPU上int32和int64索引的收集性能差异

时间:2017-05-06 04:22:56

标签: tensorflow gpu

我运行一个小的测试来评估几个TF操作的性能,并注意到一个有趣的现象。在多台计算机上,我使用int64索引与int32索引的操作始终获得更好的性能。例如,如下gather所示,如果index_dtypenp.int32,则操作速度比np.int64慢2倍。

我的迷你测试包含一个按顺序运行的gather个操作的图表(元组确保依赖于前一个操作的输出):

indices = np.asarray(indices, dtype=index_dtype)
params = tf.placeholder(dtype=tf.float32)

op = tf.gather(params, indices)
for _ in range(num_ops):
    op = tf.gather(tf.tuple([params, op])[0], indices)

我多次运行图表并平均时间(忽略第一次运行)。

因为int32是GPU计算的原生int类型,我期望相反的行为。可能是造成这种差异的原因是什么?

0 个答案:

没有答案