Вперше в Україні! Jeff Atwood, founder @ Stackoverflow — на конференції Highload fwdays
×Закрыть

Железо для Machine Learning

Всем привет!

Сейчас закинуло меня в DataMining + ML. Так вот стал вопрос о производительности железа. Когда разрабатывал код на PHP + JS такого никогда не возникало.

Вопросы (к работникам Machine Learning):
1. Какое у вас железо (GPU / CPU)?
2. Какую скорость обучения выдает это железо при обучении глубоких сетей, особенно интересно результаты по сверточным сетям. Или связке HOG + SVM.
3. Какие размеры датесетов обучающих?

Например моя Geforce GT640 выдает ~65ms за одну итерацию (25% эпохи) при обучении сверточной сети на датесете MNINST (tensorflow). Как по мне это ППЦ медленно :(

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Народ, а кто знает, есть ли machine learning библиотеки с OpenCL поддержкой? А то я смотрю у всех либ есть только CUDA.

Есть, но мало и криво. AMD и Intel сделали всё, чтобы их OpenCL издох. A NVIDIA постаралась с CUDA. Поэтому с ней на порядки меньше гемора и она используется в очень большом количестве различных проектов.
Например, Нвидиа договорилась с mathworks, чтобы в матлабе сделали поддержку CUDA. А матлабом пользуются в море западных универов. Ну а если железо уже с кудой стоит, то и остальное будут разрабатывать с поддержкой куды.

Сейчас OpenCL начинает потиху оживать, но очень медленно. Например, добавили поддержку ОpenCL в OpenCV. Есть еще такая либа, как ViennaCL.
Но пока большинство продуктов ориентируются на CUDA.

Фактически, если ты работаешь за деньги, то Куда выгоднее будет. Если, как хобби пилишь какие опенсурсы, то можно и с ОpenCL гемороиться.
Ну и еще может OpenCL имеет смысл в каких приложениях для смартфонов и подобного.

Анализом изображений не заморачиваюсь, у меня, в основном, временные ряды, датасеты не очень большие (до 4G). Очень хорошо работает связка двух 6корных Xeon’ов + GTX 980 Ti. Pascal на игровых картах типа GTX 1080 пока не особо радует, для сверточных сетей, вероятно, тоже, поскольку подходящая для них память есть только в Tesla’х, а они дофига дорогие пока.

Если хочется сверточных сетей, то go курить neon и его реализации свёрточных слоёв (www.nervanasys.com/winograd ), там все зашибись, относительно cuDNN (которую пользует TensorFlow, да еще и медленную).

Виктор, спасибо за то, что поделились опытом.

Так понимаю что у Вас стоит что-то похожее на:
rozetka.com.ua/..._r77v01/p9284433/#tab=all — машина
с картой hard.rozetka.com.ua/...x_980ti_6gd5_v1/p3967801 — GPU
?

Если быть точным, для нейросеток у меня стоит Lenovo ThinkStation C30 в чифтековском корпусе, с водой на процессоры, 128G памяти и GTX 980 Ti + quantum satis флешек и спин-дисков. Именно такая конфигурация пока нигде не жмет, однако, рискну предположить, что для эффективной обработки изображений потребуется не одна, а 2-4 GPU карты хотя бы с 12G RAM каждая (GTX Titan X, ну или новые Pascal’и уже). Это значит уже стоечный корпус и серьезное охлаждение. Иначе получается какое-то вечное ожидание пока там что-то доучится толком.

Спасибо вам огромное!
Теперь я понял что ML это очень серьезное и дорогое занятие. Это не сайты пилить «всего за 99$» :)

Похоже, придется отложить покупку подобной системы... Буду искать возможность сделать прототип на бюджетных вариантах. Если потом получится на нем зарабатывать то куплю что нить помощнее...

а взять машину на прокат у амазона не вариант?

суммарно на амазоне выйдет дороже. да и ускорители там старые

если побюджетнее — у геймеров можно купить GTX 980 по хорошей цене, сейчас многие апгрейдятся до 1080 и меняют карты. Для свёрточных сетей архитектуры GPU ниже Maxwell’a особо смысла не имеют, 980 для своей цены справляется весьма неплохо.

посмотрите внимательно описание возможностей Caffe — там режим GPU опциональный
а HOG+SVM он на весьма средней машине идет (но медленно)

В tensorflow он тоже опционален. Но на GPU работа идет в ~3.8 быстрее (я сейчас про свою машину: core i3/ gt 640)
Вот что творится с моим процем без GPU pp.vk.me/...213/348d5/OCSaT-df-18.jpg

P.S. Мне высокая производительность нужна на период обучения. На хорошем CPU (без GPU) сети могут обучатся от 5-6 дней и «до бесконечности»... На моей мошине этот период будет занимать от 2-х недель. Я так никогда не смогу что нить изобрести :)

тупо запуская обучение — ничего не изобретете
конволюционная сеть — специфическая штука, если бы она решала все вопросы исследования в области обучения бы уже закончились, а так они только начинаются

Просто 640 — не вариант. Там память медленная, ее мало, шина узкая, мало CUDA ядер и они старые — это архитектура Kepler которая делалась еще без прицела на нейросети (в отличие от более поздних Maxwell и Pascal) — короче, сплошные узкие места. А уж с одним CPU работать и вовсе безумие.

www.reddit.com/...ch_gpu_for_deep_learning
graphific.github.io/...p-learning-dream-machine

Подписаться на комментарии