Требования к оборудованию для установки cntk

Существуют ли рекомендуемые или минимальные системные требования для Microsoft Cognitive Network Toolkit? Я не могу найти эту информацию нигде на git.


person cho    schedule 07.01.2017    source источник
comment
Вы можете начать с использования Azure и провести некоторые эксперименты.   -  person Jeroen Heier    schedule 07.01.2017
comment
Спасибо за использование записных книжек Azure. Все легко устанавливается, можно сразу приступать к работе.   -  person Anton Schwaighofer    schedule 08.01.2017


Ответы (3)


Требования к графическому процессору: карта с поддержкой CUDA и вычислительной мощностью 3.0 или выше. Я попытался запустить тренировку на ПК с графическим процессором GeForce GT 610 и получил следующее сообщение:

Графический процессор (GeForce GT 610) имеет вычислительную мощность 2.1. CNTK поддерживается только на графических процессорах с вычислительной мощностью 3.0 или выше.

person MarkoR    schedule 09.01.2017

Вы можете найти некоторые ссылки на требования к аппаратному обеспечению графического процессора здесь:

https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-Windows

Я протестировал некоторые из простых руководств по распознаванию изображений на старом настольном компьютере с графическим процессором со слишком низким баллом (поэтому использовал только ЦП), и на завершение обучения ушло более часа. На Surface Book (1-го поколения) это заняло несколько минут. Surface Book первого поколения использует то, что, по словам AnandTech, примерно эквивалентно GeForce GT 940M. Я не тестировал на настольном компьютере некоторые из новых высококачественных графических карт, чтобы увидеть, как они работают, но было бы интересно узнать.

Я провел небольшое тестирование, используя этот учебник: https://github.com/Microsoft/CNTK/blob/master/Tutorials/CNTK_201B_CIFAR-10_ImageHandsOn.ipynb

На моем Surface Book (1-го поколения) я получаю следующие результаты для 1-й части обучения:

Finished Epoch [1]: [Training] loss = 2.063133 * 50000, metric = 75.6% * 50000 16.486s (3032.8 samples per second)
Finished Epoch [2]: [Training] loss = 1.677638 * 50000, metric = 61.5% * 50000 16.717s (2990.9 samples per second)
Finished Epoch [3]: [Training] loss = 1.524161 * 50000, metric = 55.4% * 50000 16.758s (2983.7 samples per second)

Вот результаты работы на виртуальной машине C6 Azure с одним графическим процессором Nvidia K80:

Finished Epoch [1]: [Training] loss = 2.061817 * 50000, metric = 75.5% * 50000 9.766s (5120.0 samples per second)
Finished Epoch [2]: [Training] loss = 1.679222 * 50000, metric = 61.5% * 50000 10.312s (4848.5 samples per second)
Finished Epoch [3]: [Training] loss = 1.524643 * 50000, metric = 55.6% * 50000 8.375s (5970.1 samples per second)

Как видите, виртуальная машина Azure примерно в 2 раза быстрее, чем моя Surface Book, поэтому, если вам нужно поэкспериментировать и у вас нет машины с мощным графическим процессором, Azure может быть вариантом. Графический процессор K80 также имеет гораздо больше встроенной памяти, поэтому он может запускать модели с более высокими требованиями к памяти. Виртуальную машину в Azure можно запускать только тогда, когда это необходимо для экономии средств.

На моей Surface Book я легко получаю такие ошибки памяти:

RuntimeError: CUDA failure 2: out of memory ; GPU=0 ; hostname=OLAVT01 ; expr=cudaMalloc((void**) &deviceBufferPtr, sizeof(AllocatedElemType) * numElements)

Это связано с тем, что Surface Book (1-го поколения) имеет только 1 ГБ памяти графического процессора.

Обновление: когда я впервые запустил тесты, код работал на процессоре. Приведенные выше результаты получены при использовании графического процессора.

Чтобы проверить, работаете ли вы на процессоре или графическом процессоре, используйте следующий код:

import cntk as C
if C.device.default().type() == 0:
    print('running on CPU')
else:
    print('running on GPU')

Чтобы попросить CNTK использовать GPU, используйте:

from cntk.device import set_default_device, gpu
set_default_device(gpu(0))
person OlavT    schedule 07.01.2017
comment
У кого-нибудь есть Nvidia GTX 1080 для тестирования? Было бы здорово увидеть цифры для такого GPU! - person OlavT; 11.01.2017

Сам CNTK предъявляет минимальные требования. Однако обучение некоторых из более крупных и требовательных моделей может быть медленным, поэтому наличие графического процессора (или 8) может помочь.

person Nikos Karampatziakis    schedule 07.01.2017