Eu tenho dois computadores com o mesmo GPU (GTX 1080), instalei a mesma cópia do SO e dos softwares. Mas quando eu executo meu programa tensorflow (um modelo RNN), a velocidade é muito diferente. Um é cerca de 1,5x mais rápido que o outro.
SystemA: Asus Z170-P, 6700T i7, 32GB Ram, GTX 1080.
SystemB: Asus X99 E-WS, 5930K i7, 128G Ram, GTX 1080. (Problema um)
OS: Ubuntu 16.04
Versão do driver da GPU: 378.13
Versão Cuda: 8.0
versão cuDNN: 5.1
Tensorflow: instalado usando o método pip install tensorflow-gpu==1.0.1
Python: Anaconda 3.6
import tensorflow as tf
import numpy as np
from tqdm import trange
np.random.seed(111)
h,w = 3000, 2000
steps = 1000
x = tf.placeholder(dtype=tf.float32, shape=[h, w], name='x')
t = tf.constant(np.random.random(size=[w, w]), dtype=tf.float32)
m = tf.matmul(x,t)
x0 = np.random.random(size=[h, w])
sess = tf.Session()
for i in trange(steps):
x0 = sess.run(m, feed_dict={x: x0})
O SystemA executa 75 iter / seg e o systemB tem apenas 50 iter / seg, mas o mais pobre é realmente mais rápido.
Volatile GPU-Util
de nvidia-smi
, o sistema A assenta de maneira estável em cerca de 40%, enquanto o sistema B é de aproximadamente 30%. LD_PRELOAD="/usr/lib/libtcmalloc.so"
to .bashrc
. As principais diferenças da saída de /usr/bin/time -v
são:
# The first value is for systemB and the second is for systemA.
System time (seconds): 7.28 2.95
Percent of CPU this job got: 85% 106%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:22.41 0:14.89
Minor (reclaiming a frame) page faults: 684695 97853
Involuntary context switches: 164 91063
File system inputs: 0 24
File system outputs: 8 0
Alguém pode me indicar como direcionar / depurar esse problema? Muito obrigado antecipadamente!
Meus carneiros são Corsair DDR4 3000MHz CMK32GBX4M2B3000C15 que parece não estar listado na lista de suporte da placa-mãe, pode ser esta a causa? Mas eu tenho usado esse computador há um ano, sem problemas.
Por dissociação com o usuário stackontflow wontonimo, descobrimos que é o BUS + CPU que causa o problema. Espero que alguém possa me apontar uma direção para consertar isso. E a postagem é aqui .