1. Высшая школа экономики, Москва, 2013
www.hse.ru
ЛЕКЦИЯ 8
ВИДЕОАДАПТЕРЫ, ВИДЕОКАРТЫ
И УСКОРИТЕЛИ
Соболевский Алексей
ИНЖЕНЕРНАЯ И КОМПЬЮТЕРНАЯ
ГРАФИКА
2 КУРС
2. Высшая школа экономики, Москва, 2013
Темы лекции
• Что такое видеоадаптер/видеокарта?
• История и эволюция видеокарт
• Устройство современных видеокарт
• API современных видеокарт
• Параллельные вычисления на видеокартах
• Вычислительные кластеры на видеокартах
3. Высшая школа экономики, Москва, 2013
Немного истории
What does the Wiki say?
Видеокарта (также видеоадаптер, графический адаптер,
графическая плата, графическая карта, графический
ускоритель) — электронное устройство, преобразующее
графический образ, хранящийся, как содержимое памяти
компьютера (или самого адаптера), в форму, пригодную
для дальнейшего вывода на экран монитора.
4. Высшая школа экономики, Москва, 2013
Немного истории
• MDA (Monochrome Display Adapter)
• CGA (Color Graphics Adapter)
• EGA (Enhanced Graphics Adapter)
• VGA (Video Graphics Array)
– Графический контроллер
– видеопамять
– последовательный преобразователь
– контроллер атрибутов
– Синхронизатор
– контроллер ЭЛТ
8. Высшая школа экономики, Москва, 2013
Немного истории
Раньше было:
Видеокарта (2D) + ускоритель (3D)
Сейчас:
Видеокарта (3D) + сопроцессоры (Shaders,
Physics)
9. Высшая школа экономики, Москва, 2013
Was ist GPU?
GPU (graphics processing unit) – устройство,
выполняющее графический рендеринг
(обработку).
Отличия от CPU:
•архитектура, максимально нацеленная на увеличение скорости
расчёта текстур и сложных графических объектов, а так же
микропрограмм, связанных с их обработкой
•ограниченный набор команд
10. Высшая школа экономики, Москва, 2013
¿Qué hay en la tarjeta gráfica?
• Графический процессор
• Видеоконтроллер
• Видео-ПЗУ
• Видеопамять
• Цифрово-аналоговый преобразователь
• Коннектор/разъём
11. Высшая школа экономики, Москва, 2013
Графический процессор
Собственно, это и есть GPU.
Очень много ядер
Очень-очень много ядер >.<
12. Высшая школа экономики, Москва, 2013
Графический процессор
Итого: почти в 100 раз больше ядер для вычислений по сравнению с CPU
13. Высшая школа экономики, Москва, 2013
Графический процессор
Почему их не используют
в качестве CPU?
15. Высшая школа экономики, Москва, 2013
Видеоконтроллер
• Формирование изображения в
видеопамяти
• Обрабатывает запросы от CPU
• Передаёт данные на i/o (ЦАП, RAMDAC)
• Контроллер внутренней шины данных и
контроллер видеопамяти
• Внутренняя шина – 128 или 256 разрядов
против 32 на внешнюю шину
16. Высшая школа экономики, Москва, 2013
Видеопамять
• Кадровый буфер (Frame Buffer)
• Невидимые и промежуточные элементы
изображения и прочие данные
17. Высшая школа экономики, Москва, 2013
Видеопамять
Небольшой пример:
1024х768 * 24 бита цвет = 2,25 Мб
2,25 Мб*75Гц = 170 Мб/с (номинал, только
вывод)
1600х1200 * 32 бита * 75 Гц = 550 Мб/с
18. Высшая школа экономики, Москва, 2013
Видеопамять
• FPM DRAM
• VRAM
• WRAM
• EDO DRAM
• SDRAM
• DDR SDRAM
• SGRAM
• MDRAM
• RDRAM
19. Высшая школа экономики, Москва, 2013
Видеопамять
SDRAM
•Передача данных только по
одному фронту сигнала
синхроимпульса
•168 pins
DDR SDRAM
•Передача данных сразу по
двум фронтам сигнала
синхроимпульса
•184 pins
•«удвоенное» значение
частоты
20. Высшая школа экономики, Москва, 2013
ЦАП (RAMDAC)
Random Access Memory Digital-to-Analog Converter
•3 ЦАП (по 1 ЦАП на канал цветности) и 1 ЦАП для
гамма-коррекции
•Используется, в основном, для вывода на CRT
23. Высшая школа экономики, Москва, 2013
Видеокарта
• Около 4 000 000 000 транзисторов на одной плате
• Около 1 000 ядер на обработку
• Отдельные блоки для буферизации, растеризации,
обработки команд CUDA, Direct 3D, Open CL, Open GL
• Сенсоры, датчики, обработчики ошибок, синхронизация,
доп. интерфейсы
• Техпроцесс 20-25 нм
24. Высшая школа экономики, Москва, 2013
API
API (Application programming interface, Интерфейс
программирования приложений)
Дополнительные специальные функции для обработки
определённых типов данных
Open GL Direct 3D/X
28. Высшая школа экономики, Москва, 2013
Direct 3D/X
DirectX – мощнейший набор библиотек, API и расширений
•Direct3D
•Direct2D
•DirectPlay
•DirectInput
•DirectSound
•DirectShow
•…
29. Высшая школа экономики, Москва, 2013
Direct 3D
Обработка:
•Rendering Pipeline
•Anti-aliasing and mip-mapping
•Alpha Blending
•Z-buffer
•Shaders
•…
30. Высшая школа экономики, Москва, 2013
Direct 3D
• Не портируется
• Проще в работе с готовыми функциями
• Менее гибкий
• Нет возможности скорректировать часть драйвера
устройства (видеокарты)
35. Высшая школа экономики, Москва, 2013
Параллельные вычисления
Примеры задач для параллельного вычисления:
•Обработка графики для вывода на экран
•Параллельные вычисления однотипных задач «перебором»
•Поиск оптимального решения многопараметрической задачи
•…
36. Высшая школа экономики, Москва, 2013
Параллельные вычисления
Закон Амдала:
В случае, когда задача разделяется на несколько частей,
суммарное время её выполнения на параллельной системе
не может быть меньше времени выполнения самого
длинного фрагмента
α – доля только
«последовательных»
вычислений
p – количество ядер
вычисления
39. Высшая школа экономики, Москва, 2013
CUDA
Программно-аппаратная архитектура параллельных
вычислений для Nvidia
Программы могут использовать GPU посредством:
•„Обращения к стандартным функциям библиотек (BLAS, FFTW)
– cublas dll (cublasemu dll)
– cufft.dll (cufftemu.dll)
+ очень просто
- НЕ очень эффективно
•„ Использования CUDA runtime API
•„ Использования CUDA driver API
41. Высшая школа экономики, Москва, 2013
CUDA
CUDA driver API (функции cu*)
•„ Низкий уровень
– „ Тяжелее программировать
– „ Больший контроль над процессом
CUDA runtime API (функции cuda )*
•„ Более абстрактно чем driver API (простота)
•„ Возможность использовать эмуляцию устройства
42. Высшая школа экономики, Москва, 2013
CUDA
• Процессы объединяются в блоки (blocks), внутри которых
они имеют общую память (shared memory) и синхронное
исполнение
• Блоки объединяются в сетки (grids)
– Нет возможности предсказать очерёдность запуска блоков в сетке
– Между блоками нет и не может быть (см. выше) общей памяти