2017-06-13 87 views
1

我正在寫一個非常簡單的tensorflow程序,啓用了XLA。基本上它是這樣的:Tensorflow XLA變慢了嗎?

import tensorflow as tf 

def ChainSoftMax(x, n) 
    tensor = tf.nn.softmax(x) 
    for i in range(n-1): 
    tensor = tf.nn.softmax(tensor) 
    return tensor 

config = tf.ConfigProto() 
config.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1 

input = tf.placeholder(tf.float32, [1000]) 
feed = np.random.rand(1000).astype('float32') 

with tf.Session(config=config) as sess: 
    res = sess.run(ChainSoftMax(input, 2000), feed_dict={input: feed}) 

基本想法是,看看是否XLA可融合的softmax鏈一起以避免多個內核啓動。使用XLA時,上述程序比裝有GPU卡的機器上的XLA慢兩倍。在我的gpu配置文件中,我看到XLA生成了大量名爲「reduce_xxx」和「fusion_xxx」的內核,這似乎壓倒了整個運行時間。任何人都知道這裏發生了什麼?

回答

0

看看TF dev峯會的視頻。它們與微基準圖表顯示,在XLA GPU does not make everything faster

enter image description here

所以這並不奇怪,如果一些操作執行比沒有更糟糕的XLA。