# CUDA/C++ истоки глубокого обучения Забавный факт: многие люди, возможно, слышали о моменте ImageNet/AlexNet в 2012 году и о революции глубокого обучения, которую он положил. en.wikipedia.org/wiki/AlexNet Что, возможно, немного менее известно, так это то, что код, поддерживающий эту победившую заявку на конкурс, был написан с нуля вручную на CUDA/C++ Алексом Крижевским. Репозиторий назывался cuda-connet и находился здесь, в Google Code: code.google.com/archive/p/cuda… Я думаю, что Google Code был закрыт (?) , но сейчас я нашел несколько его ответвлений на GitHub, например: github.com/ulrichstern/cu… Это было одно из первых громких приложений CUDA для глубокого обучения, и именно масштаб, который это обеспечило, позволил этой сети получить такую высокую производительность в тесте ImageNet. На самом деле это тоже было довольно сложное приложение с несколькими графическими процессорами, включающее, например, параллелизм моделей, когда два параллельных потока свертки были разделены на два графических процессора. Вы также должны понимать, что в это время в 2012 году (~ 12 лет назад) большая часть глубокого обучения выполнялась в Matlab, на ЦП, в игрушечных настройках, повторяя все виды алгоритмов обучения, архитектур и идей оптимизации. Так что было довольно ново и неожиданно услышать, как Алекс, Илья и Джефф говорят: забудьте обо всех алгоритмах, просто возьмите довольно стандартную ConvNet, сделайте ее очень большой, обучите ее на большом наборе данных (ImageNet) и просто реализуйте все это. в CUDA/С++. И именно таким образом глубокое обучение как область получило большую искру. Я помню, как примерно в то время читал cuda-connet и типа... что это :S Теперь, конечно, уже были намеки на сдвиг в направлении масштабирования, например, Matlab изначально поддерживал графические процессоры, и большая часть работы примерно в это время проводилась в лаборатории Эндрю Нга в Стэнфорде среди ряда параллельных усилий двигалась в направлении использования графических процессоров для глубокого обучения в больших масштабах. Но мне просто показалось забавным, что во время написания всего этого кода на C/C++ и ядер CUDA мне кажется, что я возвращаюсь в тот момент, к чему-то, что немного похоже на cuda-connet.

Начать дискуссию