- •Оглавление
- •Глава 1 Устройство графических процессоров 4
- •Глава 2 gpgpu – «gpu общего назначения» 12
- •Глава 3 Примеры внедрения nvidia cuda 21
- •Введение
- •Глава 1 Устройство графических процессоров
- •1.1 Принцип работают графического процессора
- •1.2 Устройство графического конвейера
- •1.2.1 Преобразование вершин
- •1.2.2 Построение примитивов и растеризация
- •1.2.3 Текстурирование и окрашивание
- •1.3 Совершенствование графических конвейеров
- •Глава 2 gpgpu – «gpu общего назначения»
- •2.1 Общий обзор
- •2.2 Разница между cpu и gpu в параллельных расчётах
- •2.3 Первые попытки применения расчётов на gpu
- •2.4 Возможности nvidia cuda
- •2.5 Преимущества и ограничения cuda
- •Глава 3 Примеры внедрения nvidia cuda
- •3.1 Мини-суперкомпьютер для томографии
- •3.2 Distributed Password Recovery — высокоскоростное восстановление паролей
- •3.3 Nvidia PhysX — физические расчёты в играх и dcc приложениях
- •3.4 Ускоренная версия пакета утилит текстурного сжатия nvidia Texture Tools 2
- •Заключение
- •Библиографический список
3.4 Ускоренная версия пакета утилит текстурного сжатия nvidia Texture Tools 2
Практически все современные игры используют текстурное сжатие. Причём, текстуры сжимаются на стадии разработки и поставляются уже в сжатом виде для снижения требований к объему носителей. Чаще всего применяется сжатие в DXT--форматах, и при большом количестве и размере текстур эта работа занимает довольно приличное время. Сжатие текстур постоянно используется во время процесса разработки, и ускорение соответствующих утилит облегчает жизнь 3D-разработчиков.
Компания NVIDIA выпустила CUDA-ускоренную версию пакета утилит текстурного сжатия, последняя версия которого поддерживает качественное сжатие текстур в распространённые DXT-форматы, поддерживаемые DirectX: DXT1-DXT5 (BC1-BC3), а также сжатие карт нормалей в форматах BC4 и BC5 (ранее известны как ATI1 и ATI2). Также новая версия Texture Tools отличается поддержкой новых текстурных форматов DirectX 10, включает возможности высококачественной фильтрации для мип-уровней и масштабирование изображений.
Следует отметить, что на данный момент не вся функциональность пакета утилит, работающего на CPU, была портирована в эту CUDA-версию, некоторые расширенные возможности в ней недоступны. Поэтому для отдельных специфических целей придётся использовать старые версии пакета или сторонний софт.
По заявлению компании NVIDIA, CUDA-ускоренная версия пакета обеспечивает 10-12-кратное превосходство в производительности над предыдущими CPU версиями, при более высоком качестве компрессии (DXT — формат сжатия с потерями). Приводимый ими график показывает сравнительную скорость сжатия текстур размером 1536x1536 пикселей, измеряемую количеством обработанных текстур за секунду. Сравнивались все известные DXT-компрессоры, в качестве центрального процессора использовался Intel Core 2 Duo X6800 [6].
Заключение
В силу широкого распространения видеокарт в мире, развитие параллельных вычислений на GPU сильно повлияет на индустрию высокопроизводительных вычислений. Сегодня графические процессоры из устройств с традиционным фиксированным набором функций конвейера трехмерной графики постепенно превращаются в гибкий вычислительный механизм общего назначения. Так же стало популярным использование современных графических процессоров для осуществления высокопроизводительных математических вычислений. Это позволяет значительно увеличить скорость вычислений по сравнению с теми, что обычно выполняются на центральном процессоре компьютера.
Эти возможности уже вызвали большой интерес в научных кругах. Ведь потенциальные возможности ускорения хорошо поддающихся распараллеливанию алгоритмов на доступном, относительно дешевом аппаратном обеспечении сразу в десятки раз бывают не так часто. По сути, все нуждающиеся в быстрых вычислителях теперь могут получить недорогой персональный суперкомпьютер на своем столе, иногда даже не вкладывая дополнительных средств.
На текущем этапе развития GPGPU имеет и ряд недостатков: приходится вручную создавать потоки и планировать доступ к памяти, что усложняет задачи по сравнению с привычным программированием. Однако данная проблема в скором времени должна решится. Компания nVivdia уже сделала первые шаги в сторону облегчения работы программистов, тесно интегрировав язык C++ в свою технологию CUDA, что еще больше будет способствовать скорейшему распространению новых технологий параллельных вычислений.
