Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемgpgpubitset.googlecode.com
1 Вычисления Общего Назначения на Графическом Ускорителе
2 Введение Лыков Кирилл Новосибирский Государственный Университет
3 Ознакомление Процессоры на современных видеокартах становятся все более мощными и гибкими –Программируемость –Точность –Мощность В этой презентации опишем то как использовать эту мощность в вычислениях общего назначения
4 Мотивация : Вычислительная Мощность GPUs быстры… –3.0 GHz dual-core Pentium4: 24.6 GFLOPS –NVIDIA GeForceFX 7800: 165 GFLOPs –1066 MHz FSB Pentium Extreme Edition : 8.5 GB/s –ATI Radeon X850 XT Platinum Edition: 37.8 GB/s GPUs становятся все быстрее –CPUs: 1.4 × годовой рост –GPUs: 1.7 × (пиксельные) to 2.3 × (вершинные) годовой рост Courtesy Kurt Akeley, Ian Buck & Tim Purcell, GPU Gems (see course notes)
5 Мотивация : Вычислительная Мощность Courtesy Ian Buck, John Owens
6 An Aside: Вычислительная мощность Почему GPU становятся мощнее так быстро? –Арифметика : особенности архитектуры GPUs позволяют относительно просто использовать дополнительные транзисторы для вычислений, а не для кэша –Экономика : Многомиллиардная индустрия компьютерных игр вкладывает деньги в разработку все более совершенных GPU
7 Мотивация : Гибкость и Точность Современные GPUs хорошо программируемы –Программируемые пиксельные, вершинные, видео процессоры –Установившаяся поддержка высокоуровневых языков программирования Современные GPUs обеспечивают высокую точность вычислений –Аппаратная поддержка чисел с плавающей точкой одинарной точности (32 бита). Что достаточно много для многих(не всех) приложений
8 Мотивация : Потенциал GPGPU Кратко: –Гибкость и мощность GPUs делает их привлекательными для вычислений общего назначения –Сфера применения GPGPU очень широка – от алгоритмов компьютерной графики, таких как задача глобального освещения, до задач численных методов и ММС. –Цель: сделать доступными разработчикам недорогую вычислительную мощность GPU как вычислительного сопроцессора
9 Проблемы : Сложность использования GPUs разработаны для & направляемы компьютерными играми –Необычная модель программирования –Идиомы программирования связаны с компьютерной графикой –Среда программирования сильно ограничена Архитектура: –Высоко параллельная –Быстрое развитие Нельзя просто перенести CPU код на GPU!
10 Основы GPU : Классический Графический Конвейер Упрощенный графический конвейер –Отметим что конвейер варьируем –Кэши, Списки и многое другое не показано GPUCPU Приложение Трансформация & Свет Растериза- ция Растериза- ция Тени Память ВК (Текстуры) Память ВК (Текстуры) Освещенные вершины (2D) Graphics State Рендеринг в текстуру Сборка примитивов Сборка примитивов вершины (3D) Экранные треугольники (2D) Фрагменты (pre-pixels) Итоговые пиксели ( Цвет, Глубина )
11 GPU Transform CPU Приложение Растериза- ция Растериза- ция Shade Память ВК (Текстуры) Память ВК (Текстуры) Освещенный вершины (2D) Graphics State Рендеринг в текстуру Сборка Примитивов Сборка Примитивов Вершины (3D) Экранные треугольники (2D) Фрагменты (pre-pixels) Итоговые пиксели ( цвет, глубина ) Программируемый вершинный процессор! Программируемый фрагментный процессор! Фрагментные Процессоры Фрагментные Процессоры Основы GPU : Современный Графический Конвейер Вершинные Процессоры
12 GPUCPU Приложение Вершинный процессор Вершинный процессор Растериза- ция Растериза- ция Фрагментный Процессор Фрагментный Процессор Текстуры Xformed, Lit Vertices (2D) Graphics State Рендеринг в текстуру Вершины (3D) Screenspace triangles (2D) Фрагменты (pre-pixels) Итоговые пиксели ( Цвет, глубина) Программируемая сборка примитивов! Более гибкая адресация памяти! Графический Конвейер последнего поколения Assemble Primitives Геометрический процессор Геометрический процессор
13 GPU Конвейер : Преобразования Вершинный процессор (несколько параллельных) –Преобразования из глобальной системы координат в систему координат изображения –Повершенное вычисление света
14 GPU Конвейер : Растеризация Растеризатор –Перевод геометрического пр. (вершины) в плоское пр. (фрагменты) Фрагмент = фрагмент изображения –Пиксель + связанные с ним данные: цвет, глубина, трафарет, etc. –Интерполирование повершенных данных через пиксели
15 GPU Конвейер : Тени Фрагментный процессор (несколько параллельных) –Вычисление цвета для каждого пикселя –Возможность чтения из текстур (изображений)
16 CPU-GPU Аналогии : Память CPU GPU Поток/Массив данных = Текстура Чтение памяти = Выборка из Текстуры
17 CPU-GPU Аналогии : Ядро A + B GPUCPU for( int i = 0; i< x_size; i++) for( int j = 0; j
18 CPU-GPU Аналогии : Feedback Вычисление = Отрисовка ( рендеринг ) Результат : текстура (GPU) -> массив данных(CPU)
19 Литература 1. David Luebke. General-Purpose Computation on Graphics Hardware. University of Virginia. 2. Mark Harris. Mapping Computational Concepts to GPUs. NVIDIA
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.