Переключение тензора между 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; таким образом, вы можете иметь тот же код, который работает в двух терминальных окнах, один использует процессор, а другой использует графический процессор.