Переключение тензора между CPU/GPU
Установив графический процессор tenorflow (работающий на ничтожной NVIDIA GeForce 950), я хотел бы сравнить производительность с процессором.
Я запускаю код учебника tenorFlow MNIST и замечал резкое увеличение скорости - в любом случае оценил (я запустил версию CPU 2 дня назад на ноутбуке i7 с размером партии 100, и это на настольном графическом процессоре, размер партии 10) - между CPU и GPU при переключении... но я заметил только увеличение скорости, когда я уменьшил размер партии на GPU до 10 из 100...
Теперь у меня нет объективной меры для того, что я набираю.
Есть ли способ переключиться между потоками тензоров CPU и GPU?
Ответы
Ответ 1
# Check if the server/ instance is having GPU/ CPU from python code
import sys
import tensorflow as tf
# device_lib.list_local_devices() ## this command list all the processing device GPU and CPU
device_name = [x.name for x in device_lib.list_local_devices() if x.device_type == 'GPU']
if device_name[0] == "/device:GPU:0":
device_name = "/gpu:0"
#print('GPU')
else:
#print('CPU')
device_name = "/cpu:0"
with tf.device(device_name):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
with tf.Session() as sess:
print (sess.run(c))
Ответ 2
Чтобы сделать невидимый GPU
export CUDA_VISIBLE_DEVICES=""
Чтобы вернуться к нормальной
unset CUDA_VISIBLE_DEVICES
Ответ 3
попробуйте установить tf.device в CPU: 0
with tf.Session() as sess:
with tf.device("/cpu:0"):
Ответ 4
Другой вариант - установить версию cpu и версию tenorflow gpu в двух виртуальных средах, подробные инструкции по установке tenorflow в виртуальных средах перечислены здесь https://www.tensorflow.org/get_started/os_setup; таким образом, вы можете иметь тот же код, который работает в двух терминальных окнах, один использует процессор, а другой использует графический процессор.