1 / 62

Возможности применения GPU для нейронных сетей

Возможности применения GPU для нейронных сетей. Путенкова В.Ю. Научный руководитель: Буряк Д.Ю. Особенности строения мозга:. общее число нейронов 10 10 число связей 10 13 время реакции нейрона 10 - 3 с. Схема нейрона головного мозга. Нейронные сети в биологических системах.

Download Presentation

Возможности применения GPU для нейронных сетей

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Возможности применения GPU для нейронных сетей Путенкова В.Ю. Научный руководитель: Буряк Д.Ю.

  2. Особенности строения мозга: • общее число нейронов 1010 • число связей 1013 • время реакции нейрона 10-3с Схема нейрона головного мозга Нейронные сети в биологических системах

  3. Модель искусственного нейрона

  4. Виды нейронных сетей

  5. Применение нейросетей • Классификация • Кластеризация • Аппроксимация функций • Оптимизация • Прогнозирование • Автоассоциативная память • Управление • Визуализация многомерных данных

  6. Т.о. существует принципиальная возможность распараллеливания • Реализация конкретных алгоритмов сильно зависит от используемых архитектур вычислительных систем

  7. Возможные способы параллелизации • фазы обучения • обучающей выборки • на уровне слоя • на уровне нейрона • на уровне весов

  8. Проблемы: • Распределение вычислений по процессорам • Затраты на обмен данными(особенности алгоритмов, пропускная способность, латентность) • Вычислительная сложность(специализированные процессоры, ограничения на используемые операции)

  9. Используемые архитектуры • Кластеры • Многопроцессорные системы • Одно- и многоядерные CPU • GPU • Нейрочипы

  10. Примеры реализаций нейросетевых алгоритмов на различных аппаратных архитектурах

  11. Пример: РЕАЛИЗАЦИЯ АЛГОРИТМА ОБУЧЕНИЯ САМООРГАНИЗУЮЩИХСЯ КАРТ КОХОНЕНА • задачи кластеризации массивов данных и построения контекстных карт признаков

  12. Карты Кохонена • Инициализация • Подвыборка • Поиск максимального подобия • Коррекция • Продолжение (шаг 2)

  13. Карты Кохонена • Задача: • 64 входа, карта 25 нейронов, • 2790 примеров, 30 циклов обучения • Платформы: • неоднородный кластер (Ethernet); • однородный кластер (32 Dual-Pentium, оптоволокно); • мультипроцессорная система (64 процессора)

  14. Пример:КартыКохонена • Задача: • 100входов карты,25х25, 50х50 и 100х100 нейронов, • 60000 примеров, 50 циклов обучения • Платформа: • IntelCore i7 920 (4 * 2.67GHz), Windows 7 64-bit. • NVIDIAGeForce GTX 680. • Microsoft VS 2010, для параллельной версии использовалась надстройка NVIDIA Parallel Nsight v.2.1 и программный пакет NVIDIA CUDA Toolkit v4.2.

  15. Средний прирост скорости обучения относительно последовательной версии алгоритма для карты размера 25х25 нейронов составил 12,39 раз, для карты размера 50х50 нейронов 24,27 раз, а для карты размера 100х100 нейронов время работы параллельного алгоритма превышает время работы последовательного уже в 55,78 раз

  16. Пример: ОБУЧЕНИЕ ТРЕХСЛОЙНОГО ПЕРЦЕПТРОНА • m,n,k – нейронов в входном,скрытом и выходном слоях • активационная функция сигмоида • Алгоритм обучения: обратного распространения ошибки

  17. Трехслойный перцептрон 1.Прямое распространение сигнала 2.Входной вектор 3.Выходной желаемый вектор 4.Ошибка на р-ом примере

  18. Трехслойный перцептрон 5.Подстройка весов(минимизация ошибки методом градиентного спуска)

  19. Трехслойный перцептрон Особенности решения: • Для уменьшения числа обменов с глобальной памятью GPU-> массивы данных в двумерные массивы и разбить их на блоки; • Загруженность процессорных элементов, способная скрыть задержку при доступе к ГП GPU-> блоки нужного размера; • Cнизить частоту обменов между CPU и GPU-> пакетная обработка обучающей выборки(перемножение матриц).

  20. Трехслойный перцептрон Результаты: • Аппаратная платформа: • CPU: Intel Core 2 Duo 3.00 GHz • RAM: 3.25 Gb • GPU: GeForce 8800 GT, 256 RAM • Задача: • нейронов входного и выходного слоёв: 1)512; 2)256. • нейронов скрытого слоя: ось абсцисс графиков

  21. 1) 2)

  22. Пример: ЗАДАЧА ДИАГНОСТИКИ ПАЦИЕНТА,КАК ЗАДАЧА РАСПОЗНАВАНИЯ ОБРАЗА Многослойный перцептрон

  23. Многослойный перцептрон • Матрица входных элементов • Вектор выходных элементов • НС выполняет преобразование W – вектор весовых коэффициентов • Найти такие W*, которые ошибку

  24. Многослойный перцептрон • Задача: • нейронов во входном/скрытом/выходном слое – 16/64/2 • 87 пациентов(описывались 16ю показателями) • функция активации сигмоида • Платформа: • IntelPentiumE5200 • NVIDIA GeForce GTX550TI (ОП 4 ГБ) • Результаты: • T[c] обучения/тестирования алгоритмом, реализованным для центрального процессора – 712/26 с, с применением CUDA – 88/4 с • Ускорение вычислений в 8/6,5 раз

  25. Пример: ЗАДАЧА РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЯ • Задача: • Входной/скрытый/выходной 64/9/6(вых 26 букв+10 цифр в двоичной кодировке) • Обучение: метод Лавнеберга- Марквардта • Платформа:

  26. Трехслойный персептрон • Результаты:

  27. Пример:ПАРАЛЛЕЛЬНАЯ ОБРАБОТКА ПОТОКА ДАННЫХ • Задача: • Трехслойный персептрон • Нейронов во входном=скрытом=выходном • Входные данные разбиты на окна, объединенные в блоки • Платформа: • IntelCore 2 Duo • GeForce8800GT

  28. Результаты: уменьшение задержек доступа к памяти для чтения входных весов нейронов

  29. Пример: РАСПОЗНАВАНИЕ РУКОПИСНЫХ ЦИФР • Задача: • Обучение-обратное распространение ошибки • Тренировочный набор: 60000 раз по одному вектору из 500 • Тестовый набор: по одному из 10000 образцов

  30. Сеть свертки • Платформа: • CPU IntelPentium D 925 (3000 МГц), 2 ГБ DDR2 (PC2-5300), • видеокарта на основе NVIDIA 9600GT; • MicrosoftWindows XP Service Pack 3; • NVIDIA Forceware191.07 (дата выпуска 05.10.2009); • NVIDIA CUDA2.3 (Toolkit + SDK); • Microsoft C/C++ compiler 14.0 (Microsoft Visual Studio 2005 Service Pack 1). • Настройки оптимизации: Maximize Speed (/O2), InlineFunction Expansion (/Ob1), Enable Intrinsic Functions(/Oi), Favor Fast Code (/Ot).

  31. Результаты: Ошибки распознавания: • 1.6% на GPU • 1.3% на CPU

  32. Пример:Обратная задача магнитотеллурического зондирования • Обратная задача: восстановление реальныххарактеристик пород по наблюдаемым эл-маг. полям

  33. Многослойный персептрон • Задача: • Градиентный спуск(обратное распространение ошибки) • 1628/8/1 нейронов во входном/скрытом/выходном слоях • 4 комплекта по 1680 персептронов • Обучающая выборка 30000 примеров, 20 эпох

  34. Результаты: • CPU: AMD Athlon64 x2 Dual 6000+ 3.0 GHz

  35. Итог: • CUDA • 2580эпох обучения (на 1 сеть за 1 минуту) • 13 часов на все вычисления на GTX 285 • CPU • 35эпох обучения (на 1 сеть за 1 минуту на 1 ядро) • Примерно 2 месяцана 11 ядрах класса AMD 64 x2 3.0ГГц

  36. Почему CUDA?

  37. Особенности CPU IntelCore I-7 Небольшое число мощных независимых ядер •2,4,6,8 ядер, 2,66—3,6ГГц каждое •Каждое физическое ядро определяется системой как 2 логических и может параллельно выполнять два потока (Hyper-Threading) 3 уровня кешей, большой кеш L3 •На каждое ядро L1=32KB (data) + 32KB ( Instructions), L2=256KB •Разделяемый L3 до 20 mb Обращения в память обрабатываются отдельно для каждого процесса\нити Core I7-3960x, 6 ядер, 15MB L3

  38. GPU Streaming Multiprocessor (SM) Потоковый мультипроцессор «Единица» построения устройства (как ядро в CPU): •32 скалярных ядра CUDA Core, ~1.5ГГц •2 Warp Scheduler-а •Файл регистров, 128KB •3 Кэша – текстурный, глобальный (L1), константный(uniform) •PolyMorphEngine – графический конвейер •Текстурные юниты •SpecialFunctionUnit (SFU) – интерполяция и трансцендентная математика одинарной точности •16 x Load/Store unit

  39. GPC 4 Потоковых мультипроцессора объединяются в GPC - GraphicsProcessingCluster , минимальный блок видеокарты

  40. Чип в максимальной конфигурации •16 SM •512 ядер CUDA Core •Кеш L2 758KB •GigaThreadEngine •Контроллеры памяти DDR5 •Интерфейс PCI

  41. Отличия GPU от CPU Сотни упрощённых вычислительных ядер, работающих на небольшой тактовой частоте ~1.5ГГц (вместо 2-8 на CPU) Небольшие кеши •32 ядра разделяют L1, с двумя режимами: 16KB или 48KB •L2 общий для всех ядер, 768 KB, L3 отсутствует Оперативная память с высокой пропускной способностью и высокой латентностью • Оптимизирована для коллективного доступа Поддержка миллионов виртуальных нитей, быстрое переключение контекста для групп нитей

  42. Латентность памяти Цель: эффективно загружать Ядра Проблема: латентность памяти Решение: •CPU: Сложная иерархия кешей •GPU: Много нитей, покрывать обращения одних нитей в память вычислениями в других за счёт быстрого переключения контекста За счёт наличия сотен ядер и поддержки миллионов нитей (потребителей) на GPU легче заполнить всю полосу пропускания

  43. Теоретическая пропускная способность и производительность GPU vs СPU

More Related