2
私はGPUの計算を初めて実験しており、大きなスピードアップを望んでいました。GPUのTensorflowマットム計算はCPUより遅い
cpu:0では、10回の実行のそれぞれで平均2秒、gpu:0は2.7秒、gpu:1はCPUより50%悪い: 0で3秒。ここで
はコードです:
import tensorflow as tf
import numpy as np
import time
import random
for _ in range(10):
with tf.Session() as sess:
start = time.time()
with tf.device('/gpu:0'): # swap for 'cpu:0' or whatever
a = tf.constant([random.random() for _ in xrange(1000 *1000)], shape=[1000, 1000], name='a')
b = tf.constant([random.random() for _ in xrange(1000 *1000)], shape=[1000, 1000], name='b')
c = tf.matmul(a, b)
d = tf.matmul(a, c)
e = tf.matmul(a, d)
f = tf.matmul(a, e)
for _ in range(1000):
sess.run(f)
end = time.time()
print(end - start)
私はここで何を観察するのですか?実行時間は、主にRAMとGPU間でデータをコピーすることによって支配されるのでしょうか?
行列を増やして、 'nvidia-smi'と' top'のCPU使用量のgpu使用法を見てください。 – sygi
@sygi感謝して、私は 'nvidia-smi'について知りませんでした。これは、GPU-Utilが2%を超えないことを示しています。 pythonはメモリの大半を占めるようです。電力使用量は40W/180Wでかなり安定しています – stefan
だから、あなたが書いたコードはgpu-boundではないようです。 'a'と' b'を 'tf.random_uniform([1000、1000])'に変更できますか? メモリに関する限り、TFはデフォルトですべてのGPUメモリを使用しますが、動的割り当てを強制するオプションがあります。 – sygi