Как запустить программу CNTK C# EvalDLL Wrapper на графическом процессоре?
Я был успешным в обучении и оценке сетей на основе образцов CIFAR-10. Я использую свои собственные изображения с определенным размером. Сети были обучены с помощью графического процессора и способны оценивать с помощью процессора. Однако я не могу оценить это с помощью графического процессора. Для оценки используется C# EvalDLL Wrapper. DeviceID изменяется с -1 на 0, чтобы указать номер графического процессора, как показано ниже:
model0.CreateNetwork (string.Format ("modelPath = \" {0} \ "", modelFilePath), ID устройства: 0);
Я что-то пропустил? Кто-нибудь может запустить GPU на программе C# EvalDLL Wrapper?
Я использую бинарную версию CNTK (не CPU_Only).
2 ответа
Я могу запустить EvalWrapper
на GPU, используя именно тот код, который вы опубликовали ниже. Я только что проверил через CsEvalClient
:
- При запуске моего CNN через
EvalWrapper
на коробке графического процессора, журналы говорят, что он использовалcuDNN
двигатель свертки, который только для графического процессора. Я воспринимаю это как знак того, что он действительно работает на GPU. - При запуске кода на блоке только для процессора он кричит, что не может найти драйвер CUDA, как я и ожидал.
- При переключении обратно на
deviceId:-1
и запустить на поле только для процессора, журналы говорят, что используетGEMM
двигатель свертки, и этот двигатель только для процессора.
Что вы видите в журналах, когда CNTK загружает модель?
Я не уверен, что это правильная процедура. Вот что я сделал. Вместо использования двоичного видения установите исходный код, следуя инструкции по установке, и скомпилируйте исходный код. Скопируйте библиотеки DLL из каталога "x64.release" в каталог, где находится файл "exe" (текущий https://github.com/Microsoft/CNTK/issues/394). Примечание: для нескольких проектов в решении убедитесь, что конфигурация одинакова (например, режим выпуска в x64). С GTX 960 скорость обработки изображения от 770 мс до 1 мс.