Использование MatConvNet с новым и старым графическим процессором

На моем 64-битном компьютере под управлением Windows 7 установлены два графических процессора: NVIDIA GeForce GTX 750 Ti и GeForce GTX 570. Первый имеет вычислительные возможности 5, а второй вычислительные возможности 2.

Для одного из моих проектов я хотел бы использовать MatConvNet, библиотеку для подгонки сверточных нейронных сетей (CNN) в MATLAB в стиле, подобном Caffe или TensorFlow. Пакет поддерживает использование обеих видеокарт, но cuDNN, инструментарий NVIDIA для глубокого обучения, совместим только с видеокартами, обладающими вычислительной способностью 3 или более. Если я решу использовать 750 Ti, я могу скомпилировать MatConvNet с опцией enableCudnn установлен в trueи если я решу просто использовать 570, я должен скомпилировать его с параметром, установленным на false,

На простом CNN, который я создал для классификации рукописных цифр с тремя сверточными слоями, тремя объединяющими слоями, полностью соединенным слоем и слоем softmax, я заметил, что время обучения самое короткое для одного только 750 Ti, за которым следует комбинация две карты, за которыми следуют только 570. Это потому, что когда я использую обе карты, я должен скомпилировать пакет MatConvNet сenableCudnn в false, что не позволяет MatConvNet использовать коды быстрой свертки, которые являются частью cuDNN. Однако иметь два GPU все же лучше, чем иметь только 570.

Мне было интересно, есть ли способ компилировать MatConvNet отдельно для каждой видеокарты, чтобы 750 использовала cuDNN, а 570 - нет. Не учитывая накладные расходы по распределению рабочей нагрузки между видеокартами, теоретически это должно ускорить код по сравнению с использованием только 750. Может кто-нибудь, пожалуйста, сообщите мне, если они сделали что-то подобное, если это возможно, и / или как это сделать, если так?

0 ответов

Другие вопросы по тегам