Применение технологии
NVIDIA CUDA для реализации
 нейросетевых вычислений.


          Гужва А.Г.
   Физический факультет ...
Исходная задача
                                                     1 км.
30 км.




     • Исследование двумерной обратн...
Исходная задача
    1 БОЛЬШАЯ обратная
    задача
    Входные данные:       6552 x 30000
    Выходные данные: 336 x 30000
...
Что умеет написанная программа?
    Для чего предназначена?
• Использование NVIDIA CUDA 2.0
• Работа с трехслойными персеп...
Сравнение результатов:
       центральный процессор
    Программа,         Число              Полное     Удельное
N       ...
Сравнение результатов:
               CUDA
    Программа,     Число              Полное     Удельное
N                    ...
Результаты
• Исходная задача
  –   6720 персептронов (MLP)
  –   1648 входных переменных
  –   1 выходная переменная
  –  ...
Спасибо за внимание!
Upcoming SlideShare
Loading in …5
×

Пример применения Cuda

2,401 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,401
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Пример применения Cuda

  1. 1. Применение технологии NVIDIA CUDA для реализации нейросетевых вычислений. Гужва А.Г. Физический факультет МГУ
  2. 2. Исходная задача 1 км. 30 км. • Исследование двумерной обратной задачи • Размерность вектора входных данных: 6552 • Размерность вектора выходных данных: 336 • 30000 примеров
  3. 3. Исходная задача 1 БОЛЬШАЯ обратная задача Входные данные: 6552 x 30000 Выходные данные: 336 x 30000 Примерно 800 MB в float-ах 4 x 336 малых обратных задач Входные данные: 1648 x 30000 Выходные данные: 1 x 30000 Примерно 200 MB в float-ах Итого: 6720 трехслойных персептронов
  4. 4. Что умеет написанная программа? Для чего предназначена? • Использование NVIDIA CUDA 2.0 • Работа с трехслойными персептронами (MLP) • Стандартный алгоритм обучения MLP (BackProp) • Число параллельно обучаемых MLP 100 • Размерность входных данных 1000 • Размерность выходных данных = 1 • Количество примеров 10000 • Входные данные для всех MLP одинаковы (!) • Выходные данные могут различаться • Параметры обучения и критерии останова обучения MLP могут различаться
  5. 5. Сравнение результатов: центральный процессор Программа, Число Полное Удельное N Batch- система сетей примеров время, c время, c НС библиотека 1 1 10 34.7 1.7 НС библиотека 2 1 1 62 3.1 3 Neuroshell 2 1 1 111 5.5 4 Neurosolutions 5 1 1 122 6.1 5 Matlab 2008a 1 1 330 16.5 CPU: AMD Athlon 64 x2 Dual 6000+ 3.0 GHz Полное время – время для обучения N сетей для 20 эпох Удельное время – время для обучения 1 сети для 1 эпохи
  6. 6. Сравнение результатов: CUDA Программа, Число Полное Удельное N Batch- система сетей примеров время, c время, c 1 CUDA, B 256 10 167.6 0.033 2 CUDA, B 75 10 55.8 0.037 3 CUDA, B 64 10 51.2 0.04 4 CUDA, A 64 10 531.6 0.416 НС библ., В 5 1 10 34.7 1.7 Полное время – время для обучения N сетей для 20 эпох Удельное время – время для обучения 1 сети для 1 эпохи A. GeForce 8600M GT, Intel Core 2 Duo T7500 2.2 GHz B. GeForce GTX 260, AMD Athlon 64 x2 Dual 6000+ 3.0 GHz
  7. 7. Результаты • Исходная задача – 6720 персептронов (MLP) – 1648 входных переменных – 1 выходная переменная – 30000 примеров • Время, CPU – 11 ядер класса AMD Athlon 64 x2 6000+ 3GHz – 2 месяца с учетом организационных затрат • Время, CUDA – 1 видеокарта, NVIDIA GeForce GTX 260 – 17.5 часов с учетом организационных затрат • Результаты практически одинаковы • Нет систематического отличия в какую-то сторону
  8. 8. Спасибо за внимание!

×