Sunday, July 23rd, 2017

Новые возможности DirectX 11: вычислительный шейдер

Published on Март 2, 2009 by   ·   Комментариев нет

Вчера в интервью немецкому сетевому изданию PCGamesHardware Бен Базарик (Ben Basaric), продукт-менеджер Windows, сообщил, что вряд ли в состав финальной версии Windows 7 войдет DirectX 11, хотя на текущий момент, по его же словам, это стоит расценивать лишь в качестве слухов. Однако, эти слухи не помешают нам продолжить рассказ о том, что сулит DirectX 11 для игроков и обычных компьютерных пользователей.

essays online to buy

В сегодняшней статье речь пойдет о так называемом вычислительном шейдере (с англ. compute shader). По своей сути, компьютерный шейдер не является чем-то кардинально новым — это просто формализация тех идей, о которых AMD и Nvidia говорят на протяжении последних нескольких лет. В частности, Nvidia усердно пытается ввести в использование платформу CUDA, начиная с выпуска GeForce 8800 GTX в ноябре 2006 года — эта платформа наиболее близка к тому, что мы сегодня понимаем под массивными параллельными вычислениями. Здесь стоит сказать о скудности сегоднящней кросс-платформенной совместимости, которая может помешать CUDA получить более широкое распространение на рынке. Таким образом, пока что подобные технологии не развиваются в нужном направлении.

Сегодня ясно только то, что в платформе CUDA инженерам Nvidia удалось превратить GPU из куска кремния, который мог выполнять только графические задачи, в нечто, что может ускорить работу широко распараллеленных приложений общего назначения. Главные приложения, использующие ускорение CUDA, уже начинают появляться на рынке, так что теперь даже Intel начинает делать себе заметки.

Вычислительный шейдер compute shader

AMD занимается тем же самым со своей разработкой Stream Computing и скоро на рынке должны появится пользовательские приложения, которые будут ускоряться графикой ATI Radeon. Интересно, что причины, по которым Microsoft включает вычислительный шейдер в DirectX 11, больше ориентированы на игровую сторону вопроса, нежели выполнение общих задач средствами GPU. Однако, согласно информации, полученной из разговоров с некоторыми значимыми для индустрии людьми, новый шейдер, скорее всего, будет использоваться для более широкого круга задач, нежели просто для решения некоторых проблем отдельных игровых разработчиков.

Многое из того, о чем Гии рассказывал во время его презентации на Nvision, было для меня не ново, однако это было новым для DirectX. Такие вещи, как возможность создания кода для общих задач без использования треугольников, распределение данных между потоками и обработка произвольных операций записи возможны и в Stream от AMD, и в компиляторе CUDA от Nvidia, но ни у одной из этих технологий на данный момент нет широкой аппаратной совместимости. Microsoft собирается предоставить эти новые расширения процесса кодирования и средства синтаксиса в обновленной версии HLSL (High Level Shading Language).
Благодаря этому графический конвейер сможет генерировать структуры данных, традиционно ассоциируемые с общими вычислительными задачами, обрабатываемыми на CPU. Используя вычислительный шейдер, эти задачи смогут масштабировать под n ядер, количество которых может увеличиваться до тех пор, пока приложение сможет обеспечивать параллельное выполнение потоков. Согласно Microsoft, основные целевые приложения для вычислительного шейдера включают в себя пост-процессовую обработку, физику, AI и некоторые другие. К числу этих других задач Гии отнес и трассировку лучей.

И хотя здесь была упомянута игровая физика, стоит принимать во внимание один факт. Прямо сейчас все разработчики разделились между тремя доступными вариантами: PhysX, Havok или создание их собственного физического движка. Ни один из этих вариантов, на мой взгляд, не является идеальным, поскольку в любом случае разработчик будет в чем то ограничен.
РhysX ускоряется только на GPU, поддерживающих Nvidia CUDA, но выполняется на CPU, тогда как Havok в скором времени сможет ускоряться на GPU от AMD и снизить свою производительность на CPU. Наконец, написание своего собственного физического движка требует больших усилий, и если вы — разработчик, то скорее всего выберете для этих целей центральный процессор, потому что каждая система, на которой будет работать ваша игра, будет иметь сходный набор функций. Сегодня это не совсем просто, как в случае с GPU, поскольку это сходство ограничивается совместимостью API. Благодаря вычислительному шейдеру (или OpenCL) — у разработчиков перестанет болеть по этому поводу голова и они смогут сосредоточиться на том, как реализовать игровую физику.

Однако, этого не будет до тех пор, пока игровая физика глубоко интегрирована в саму игру — разработчики не смогут ее реализовать, если им придется разбивать игру для любого пользователя, у которого нет возможностей для ускорения игрового движка. Именно поэтому я не думаю, что игровая физика станет действительно востребованной до тех пор, пока DirectX 11 не станет минимальной спецификацией для игровых разработчиков.

Источник: http://www.bit-tech.net




Смотрите также:

Tags:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]