2. Исходная задача
1 км.
30 км.
• Исследование двумерной обратной задачи
• Размерность вектора входных данных: 6552
• Размерность вектора выходных данных: 336
• 30000 примеров
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. Что умеет написанная программа?
Для чего предназначена?
• Использование NVIDIA CUDA 2.0
• Работа с трехслойными персептронами (MLP)
• Стандартный алгоритм обучения MLP (BackProp)
• Число параллельно обучаемых MLP 100
• Размерность входных данных 1000
• Размерность выходных данных = 1
• Количество примеров 10000
• Входные данные для всех MLP одинаковы (!)
• Выходные данные могут различаться
• Параметры обучения и критерии останова
обучения MLP могут различаться
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. Сравнение результатов:
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. Результаты
• Исходная задача
– 6720 персептронов (MLP)
– 1648 входных переменных
– 1 выходная переменная
– 30000 примеров
• Время, CPU
– 11 ядер класса AMD Athlon 64 x2 6000+ 3GHz
– 2 месяца с учетом организационных затрат
• Время, CUDA
– 1 видеокарта, NVIDIA GeForce GTX 260
– 17.5 часов с учетом организационных затрат
• Результаты практически одинаковы
• Нет систематического отличия в какую-то сторону