Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

08 Видеокарты

4.070 Aufrufe

Veröffentlicht am

Презентация к лекции по инженерной и компьютерной графике. Тема -- Видеокарты, видеоадаптеры и т.п.

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

08 Видеокарты

  1. 1. Высшая школа экономики, Москва, 2013 www.hse.ru ЛЕКЦИЯ 8 ВИДЕОАДАПТЕРЫ, ВИДЕОКАРТЫ И УСКОРИТЕЛИ Соболевский Алексей ИНЖЕНЕРНАЯ И КОМПЬЮТЕРНАЯ ГРАФИКА 2 КУРС
  2. 2. Высшая школа экономики, Москва, 2013 Темы лекции • Что такое видеоадаптер/видеокарта? • История и эволюция видеокарт • Устройство современных видеокарт • API современных видеокарт • Параллельные вычисления на видеокартах • Вычислительные кластеры на видеокартах
  3. 3. Высшая школа экономики, Москва, 2013 Немного истории What does the Wiki say? Видеокарта (также видеоадаптер, графический адаптер, графическая плата, графическая карта, графический ускоритель) — электронное устройство, преобразующее графический образ, хранящийся, как содержимое памяти компьютера (или самого адаптера), в форму, пригодную для дальнейшего вывода на экран монитора.
  4. 4. Высшая школа экономики, Москва, 2013 Немного истории • MDA (Monochrome Display Adapter) • CGA (Color Graphics Adapter) • EGA (Enhanced Graphics Adapter) • VGA (Video Graphics Array) – Графический контроллер – видеопамять – последовательный преобразователь – контроллер атрибутов – Синхронизатор – контроллер ЭЛТ
  5. 5. Высшая школа экономики, Москва, 2013 Немного истории CGA Adapter
  6. 6. Высшая школа экономики, Москва, 2013 Немного истории CGA graphics
  7. 7. Высшая школа экономики, Москва, 2013 Немного истории Test Drive Ferrari. CGA vs Now (NFS)
  8. 8. Высшая школа экономики, Москва, 2013 Немного истории Раньше было: Видеокарта (2D) + ускоритель (3D) Сейчас: Видеокарта (3D) + сопроцессоры (Shaders, Physics)
  9. 9. Высшая школа экономики, Москва, 2013 Was ist GPU? GPU (graphics processing unit) – устройство, выполняющее графический рендеринг (обработку). Отличия от CPU: •архитектура, максимально нацеленная на увеличение скорости расчёта текстур и сложных графических объектов, а так же микропрограмм, связанных с их обработкой •ограниченный набор команд
  10. 10. Высшая школа экономики, Москва, 2013 ¿Qué hay en la tarjeta gráfica? • Графический процессор • Видеоконтроллер • Видео-ПЗУ • Видеопамять • Цифрово-аналоговый преобразователь • Коннектор/разъём
  11. 11. Высшая школа экономики, Москва, 2013 Графический процессор Собственно, это и есть GPU. Очень много ядер Очень-очень много ядер >.<
  12. 12. Высшая школа экономики, Москва, 2013 Графический процессор Итого: почти в 100 раз больше ядер для вычислений по сравнению с CPU
  13. 13. Высшая школа экономики, Москва, 2013 Графический процессор Почему их не используют в качестве CPU?
  14. 14. Высшая школа экономики, Москва, 2013 Графический процессор
  15. 15. Высшая школа экономики, Москва, 2013 Видеоконтроллер • Формирование изображения в видеопамяти • Обрабатывает запросы от CPU • Передаёт данные на i/o (ЦАП, RAMDAC) • Контроллер внутренней шины данных и контроллер видеопамяти • Внутренняя шина – 128 или 256 разрядов против 32 на внешнюю шину
  16. 16. Высшая школа экономики, Москва, 2013 Видеопамять • Кадровый буфер (Frame Buffer) • Невидимые и промежуточные элементы изображения и прочие данные
  17. 17. Высшая школа экономики, Москва, 2013 Видеопамять Небольшой пример: 1024х768 * 24 бита цвет = 2,25 Мб 2,25 Мб*75Гц = 170 Мб/с (номинал, только вывод) 1600х1200 * 32 бита * 75 Гц = 550 Мб/с
  18. 18. Высшая школа экономики, Москва, 2013 Видеопамять • FPM DRAM • VRAM • WRAM • EDO DRAM • SDRAM • DDR SDRAM • SGRAM • MDRAM • RDRAM
  19. 19. Высшая школа экономики, Москва, 2013 Видеопамять SDRAM •Передача данных только по одному фронту сигнала синхроимпульса •168 pins DDR SDRAM •Передача данных сразу по двум фронтам сигнала синхроимпульса •184 pins •«удвоенное» значение частоты
  20. 20. Высшая школа экономики, Москва, 2013 ЦАП (RAMDAC) Random Access Memory Digital-to-Analog Converter •3 ЦАП (по 1 ЦАП на канал цветности) и 1 ЦАП для гамма-коррекции •Используется, в основном, для вывода на CRT
  21. 21. Высшая школа экономики, Москва, 2013 Видеокарта
  22. 22. Высшая школа экономики, Москва, 2013 Видеокарта
  23. 23. Высшая школа экономики, Москва, 2013 Видеокарта • Около 4 000 000 000 транзисторов на одной плате • Около 1 000 ядер на обработку • Отдельные блоки для буферизации, растеризации, обработки команд CUDA, Direct 3D, Open CL, Open GL • Сенсоры, датчики, обработчики ошибок, синхронизация, доп. интерфейсы • Техпроцесс 20-25 нм
  24. 24. Высшая школа экономики, Москва, 2013 API API (Application programming interface, Интерфейс программирования приложений) Дополнительные специальные функции для обработки определённых типов данных Open GL Direct 3D/X
  25. 25. Высшая школа экономики, Москва, 2013 Open GL
  26. 26. Высшая школа экономики, Москва, 2013 Direct 3D/X ?
  27. 27. Высшая школа экономики, Москва, 2013 Direct 3D/X
  28. 28. Высшая школа экономики, Москва, 2013 Direct 3D/X DirectX – мощнейший набор библиотек, API и расширений •Direct3D •Direct2D •DirectPlay •DirectInput •DirectSound •DirectShow •…
  29. 29. Высшая школа экономики, Москва, 2013 Direct 3D Обработка: •Rendering Pipeline •Anti-aliasing and mip-mapping •Alpha Blending •Z-buffer •Shaders •…
  30. 30. Высшая школа экономики, Москва, 2013 Direct 3D • Не портируется • Проще в работе с готовыми функциями • Менее гибкий • Нет возможности скорректировать часть драйвера устройства (видеокарты)
  31. 31. Высшая школа экономики, Москва, 2013 Direct 3D/X
  32. 32. Высшая школа экономики, Москва, 2013 Direct 3D/X vs OpenGL void init_graphics(void) { // create the vertices using the CUSTOMVERTEX struct CUSTOMVERTEX vertices[] = { { -3.0f, 3.0f, -3.0f, D3DCOLOR_XRGB(0, 0, 255), }, { 3.0f, 3.0f, -3.0f, D3DCOLOR_XRGB(0, 255, 0), }, { -3.0f, -3.0f, -3.0f, D3DCOLOR_XRGB(255, 0, 0), }, { 3.0f, -3.0f, -3.0f, D3DCOLOR_XRGB(0, 255, 255), }, { -3.0f, 3.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), }, { 3.0f, 3.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), }, { -3.0f, -3.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), }, { 3.0f, -3.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), }, }; // create a vertex buffer interface called v_buffer d3ddev->CreateVertexBuffer(8*sizeof(CUSTOMVERTEX), 0, CUSTOMFVF, D3DPOOL_MANAGED, &v_buffer, NULL); …. // select the vertex and index buffers to use d3ddev->SetStreamSource(0, v_buffer, 0, sizeof(CUSTOMVERTEX)); d3ddev->SetIndices(i_buffer); // draw the cube d3ddev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 8, 0, 12); void display(){ // Clear screen and Z-buffer glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT); // Reset transformations glLoadIdentity(); // Other Transformations // glTranslatef( 0.1, 0.0, 0.0 ); // Not included // glRotatef( 180, 0.0, 1.0, 0.0 ); // Not included // Rotate when user changes rotate_x and rotate_y glRotatef( rotate_x, 1.0, 0.0, 0.0 ); glRotatef( rotate_y, 0.0, 1.0, 0.0 ); // Other Transformations // glScalef( 2.0, 2.0, 0.0 ); // Not included glBegin(GL_POLYGON); glColor3f( 1.0, 0.0, 0.0 ); glVertex3f( 0.5, -0.5, -0.5 ); // P1 is red glColor3f( 0.0, 1.0, 0.0 ); glVertex3f( 0.5, 0.5, -0.5 ); // P2 is green glColor3f( 0.0, 0.0, 1.0 ); glVertex3f( -0.5, 0.5, -0.5 ); // P3 is blue glColor3f( 1.0, 0.0, 1.0 ); glVertex3f( -0.5, -0.5, -0.5 ); // P4 is purple glEnd(); int main(int argc, char* argv[]){ // Initialize GLUT and process user parameters glutInit(&argc,argv); // Request double buffered true color window with Z-buffer glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); // Create window glutCreateWindow("Awesome Cube"); // Enable Z-buffer depth test glEnable(GL_DEPTH_TEST); // Callback functions glutDisplayFunc(display); glutSpecialFunc(specialKeys); // Pass control to GLUT for events glutMainLoop(); // Return to OS return 0; }
  33. 33. Высшая школа экономики, Москва, 2013 Shaders ?
  34. 34. Высшая школа экономики, Москва, 2013 Shaders
  35. 35. Высшая школа экономики, Москва, 2013 Параллельные вычисления Примеры задач для параллельного вычисления: •Обработка графики для вывода на экран •Параллельные вычисления однотипных задач «перебором» •Поиск оптимального решения многопараметрической задачи •…
  36. 36. Высшая школа экономики, Москва, 2013 Параллельные вычисления Закон Амдала: В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента α – доля только «последовательных» вычислений p – количество ядер вычисления
  37. 37. Высшая школа экономики, Москва, 2013 Параллельные вычисления
  38. 38. Высшая школа экономики, Москва, 2013 Параллельные вычисления CUDA
  39. 39. Высшая школа экономики, Москва, 2013 CUDA Программно-аппаратная архитектура параллельных вычислений для Nvidia Программы могут использовать GPU посредством: •„Обращения к стандартным функциям библиотек (BLAS, FFTW) – cublas dll (cublasemu dll) – cufft.dll (cufftemu.dll) + очень просто - НЕ очень эффективно •„ Использования CUDA runtime API •„ Использования CUDA driver API
  40. 40. Высшая школа экономики, Москва, 2013 CUDA
  41. 41. Высшая школа экономики, Москва, 2013 CUDA CUDA driver API (функции cu*) •„ Низкий уровень – „ Тяжелее программировать – „ Больший контроль над процессом CUDA runtime API (функции cuda )* •„ Более абстрактно чем driver API (простота) •„ Возможность использовать эмуляцию устройства
  42. 42. Высшая школа экономики, Москва, 2013 CUDA • Процессы объединяются в блоки (blocks), внутри которых они имеют общую память (shared memory) и синхронное исполнение • Блоки объединяются в сетки (grids) – Нет возможности предсказать очерёдность запуска блоков в сетке – Между блоками нет и не может быть (см. выше) общей памяти
  43. 43. Высшая школа экономики, Москва, 2013
  44. 44. Высшая школа экономики, Москва, 2013 Вычислительные кластеры на видеокартах • С/К «Ломоносов» – 78 000 + ядер – Реальная производительность – более 900 Тфлопс (i5 – около 100 Гфлопс) – Использование спец. шины InfiniBand для коммутации (до 300 Гбит/сек) – Гетерогенная архитектура
  45. 45. Высшая школа экономики, Москва, 2013 Вычислительные кластеры на видеокартах • Области – Нантехнологии – Статистика – Big Data – Медицина – …
  46. 46. Высшая школа экономики, Москва, 2013 Вопросы ?

×