Участник:Mikethehuman/sandbox

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Первая программа на CUDA)
(С чего начать)
Строка 23: Строка 23:
== С чего начать ==
== С чего начать ==
-
# Get a recent CUDA enabled-GPU (compute capability 2.0+). Interesting blog about GPU selection.
+
# Посмотреть вебинар по сверточным нейронным сетям [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].
-
#* Workstation Development - GeForce
+
# Установить фреймворк по выбору: Caffe, Torch или Theano.
-
#* Server Deployment - TESLA
+
# Загрузить и установить cuDNN [https://developer.nvidia.com/cuDNN], ускоренную на GPU библиотеку NVIDIA, содержащую примитивы для глубоких нейронных сетей.
-
# Read the Hacker's guide to Neural Networks, by Andrej Karpathy or this chapter from the Nature of Code, by Daniel Shiffman.
+
-
# Watch this webinar on convolutional networks and this webinar on deep learning with Caffe.
+
-
# Install your framework of choice: Caffe, Torch, or Theano.
+
-
# Download and install cuDNN – NVIDIA’s GPU-accelerated library of primitives for deep neural networks. It emphasizes performance, ease-of-use, and low memory overhead.
+
-
For questions or feedback, please email deeplearning@nvidia.com
+
== Первая программа на 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.

С чего начать

  1. Посмотреть вебинар по сверточным нейронным сетям [7] и Caffe для глубокого обучения [8].
  2. Установить фреймворк по выбору: Caffe, Torch или Theano.
  3. Загрузить и установить cuDNN [9], ускоренную на GPU библиотеку NVIDIA, содержащую примитивы для глубоких нейронных сетей.

Первая программа на CUDA

Чтобы написать первую программу на CUDA, надо установить:

  1. Microsoft Visual Studio (на MVR стоит версия Professional 2012),
  2. 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].

Личные инструменты