Участник:Mikethehuman/sandbox
Материал из MachineLearning.
(→Первая программа на CUDA) |
(→С чего начать) |
||
Строка 23: | Строка 23: | ||
== С чего начать == | == С чего начать == | ||
- | # | + | # Посмотреть вебинар по сверточным нейронным сетям [http://on-demand.gputechconf.com/gtc/2014/webinar/gtc-express-convolutional-networks-webinar.mp4] и Caffe для глубокого обучения [http://on-demand.gputechconf.com/gtc/2014/webinar/gtc-express-deep-learning-caffee-evan-shelhamer.mp4]. |
- | + | # Установить фреймворк по выбору: Caffe, Torch или Theano. | |
- | + | # Загрузить и установить cuDNN [https://developer.nvidia.com/cuDNN], ускоренную на GPU библиотеку NVIDIA, содержащую примитивы для глубоких нейронных сетей. | |
- | + | ||
- | + | ||
- | # | + | |
- | # | + | |
- | + | ||
== Первая программа на CUDA == | == Первая программа на CUDA == |
Версия 15:16, 21 апреля 2015
Глубокое обучение – быстро развивающийся сегмент области знания, связанной с искусственным интеллектом, - является катализатором развития самых разных отраслей, начиная от медицины и фармакологии и заканчивая автопилотируемыми автомобилями. Глубокое обучение (глубокое структурное обучение, или иерархическое обучение) -- это область машинного обучения, заключающаяся в построении нелинейной модели распознавания, каждый элемент которой описывает соответствующий уровень признакового агрегирования данных.
На конференции "GPU Technology Conference" [1] в 2015 г. генеральным директором NVIDIA Дженсоном Хуангом было представлено три новые технологии, которые используются для развития области глубокого обучения: TITAN X, DIGITS и DIGITS DevBox.
Содержание |
NVIDIA GeForce GTX TITAN X
TITAN X [2] – графический процессор для быстрого обучения глубоких нейронных сетей. Построенный на графической архитектуре NVIDIA Maxwell, TITAN X обладает вдвое большей производительностью и энергоэффективностью по сравнению с предшественником. TITAN X – это 12ГБ памяти и 3072 ядра, которые обеспечивают 7 терафлопс в вычислениях одинарной точности. Благодаря производительности и полосе пропускания памяти 336.5 ГБ/с, ускоритель рекомендуется использовать для построения сетей глубокого обучения с числом параметров до сотен миллионов. В частности, для обучения сети AlexNet [3] с помощью набора из 1.2 миллиона изображений ImageNet TITAN X понадобилось менее трех дней, тогда как 16-ядерный CPU справляется с этой задачей за 40 дней.
DIGITS Deep Learning GPU Training System
DIGITS [4] – программное обеспечение, предназначенное для выполнения исследовательских работ по построению и конфигурации глубоких нейронных сетей. Интуитивно понятный пользовательский интерфейс и возможности управления DIGITS обеспечивают подготовку обучающих наборов данных локально и из сети.
DIGITS DevBox
DIGITS DevBox [5] – специализированная рабочая станция для работы с задачами глубокого обучения, построенная на базе четырех TITAN X GPU, поставляемое с предустановленной системой обучения DIGITS. Система DIGITS DevBox является ядром комплексной платформы для ускорения исследований глубокого обучения. DevBox состоит из четырех карт GPU TITAN X, памяти и интерфейсов. Система поставляется с предустановленным программным обеспечением, которое необходимо ученым и исследователей для создания собственных глубоких нейронных сетей. В список приложений входят пакет программ DIGITS, самые популярные платформы глубокого обучения Caffe, Theano и Torch, а также cuDNN 2.0 – GPU-ускоренная библиотека для задач глубокого обучения от NVIDIA [6]. Первые результаты многопроцессорного обучения показывают, что DIGITS DevBox обеспечивает производительность почти в четыре раза выше по сравнению с одним TITAN X в тестах глубокого обучения. С помощью DIGITS DevBox обучить сеть AlexNet можно всего за 13 часов, тогда как обычному ПК на базе самого быстрого GPU потребовалось бы более двух суток, а системе на базе CPU - больше месяца.
Система DIGITS DevBox состоит из следующих компонентов.
- Четыре TITAN X GPU, обеспечивающие 7 тетрафлопс в ординарной точности, 12 Гб памяти и 336.5 Гб/с полосы пропускания памяти. В комплект DIGITS DevBox входят до четырех GPUs, до 64 GB DDR4, материнская плата ASUS X99 (8 PCIe slots) + Core i7, 2 x 48 port gen3 PCIe (PEX8748) + CPU for PCIe, накопитель, до 3x3 TB RAID 5 + M2 SATA + SSD, блок питания 1500W, операционная система Ubuntu 14.04, драйвера, NVIDIA® CUDA® Toolkit 7.0.
- Программное обеспечение NVIDIA DIGITS, предоставляющее интерфейсы для обучения и визуализации нейронных сетей для классификации изображений.
- Система Ubuntu 14.04 с предустановленными Caffe, Torch, Theano, BIDMach, cuDNN v2, and CUDA 7.0.
С чего начать
- Посмотреть вебинар по сверточным нейронным сетям [7] и Caffe для глубокого обучения [8].
- Установить фреймворк по выбору: Caffe, Torch или Theano.
- Загрузить и установить cuDNN [9], ускоренную на GPU библиотеку NVIDIA, содержащую примитивы для глубоких нейронных сетей.
Первая программа на CUDA
Чтобы написать первую программу на CUDA, надо установить:
- Microsoft Visual Studio (на MVR стоит версия Professional 2012),
- CUDA SDK (на MVR стоит версия 7.0) [10].
После установки SDK стоит посмотреть полезные примеры от NVIDIA, которые по умолчанию распаковываются в C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0. Кроме того, появится возможность компилировать .cu файлы командой nvcc из командной строки, например,
nvcc -ptx myfun.cu
Это нужно, например, для того, чтобы использовать CudaKernel в Matlab для запуска своих CUDA-функций, см. [11].
Руководство по установке Caffe на Windows: [12]. Highlights: нужно поставить и прописать зависимости для OpenCV, Boost, OpenBLAS, GFlags, GLog, ProtoBuf, LevelDB, HDF5, LMDB. Кроме того, для облегчения процесса сборки понадобится установить CMake.
Руководство по установке Theano на Windows: [13].