- DirectCompute
-
DirectCompute — интерфейс программирования приложений (API), который входит в состав DirectX — набора API от Microsoft, который предназначен для работы на IBM PC-совместимых компьютерах под управлением операционных систем семейства Microsoft Windows. DirectCompute предназначен для выполнения вычислений общего назначения на графических процессорах, являясь реализацией концепции GPGPU. Изначально DirectCompute был опубликован в составе DirectX 11, однако позже стал доступен и для DirectX 10 и DirectX 10.1.
Содержание
Технологическое описание
DirectCompute, впервые появившись в составе DirectX 11, стал одним из важнейших его нововведений, первой технологией в составе DirectX, предоставившей доступ к вычислениям общего назначения на графических процессорах (англ. GPU).[1]
DirectCompute присутствует в трёх версиях:[1]
- DirectCompute 10 для GPU, которые поддерживают Direct3D 10;
- DirectCompute 10.1 для GPU, которые поддерживают Direct3D 10.1;
- DirectCompute 11 для GPU, которые поддерживают Direct3D 11.
Если версии DirectCompute 10 и DirectCompute 10.1 почти одинаковы по функциональным возможностям, то DirectCompute 11 предоставляет существенно больше функций:
- 3D Thread Dispatch предоставляет возможность при помощи одного трёхмерного потока массива заменить несколько двумерных.
- Максимальное количество потоков по сравнению с DirectCompute 10/10.1 увеличено на 33%: с 768 до 1024.
- Объём памяти, выделяемый на группу потоков, был увеличен с 16 Кб до 32 Кб.
- Улучшен доступ к памяти: если для DirectCompute 10/10.1 возможность чтения и записи были возможны лишь в область памяти размером 256 Кб, то в DirectCompute 11 этот размер уменьшен до 32 Кб.
- Появились т.н. атомарные операции, которые дали возможность каждому потоку использовать защищенные области памяти.
- Были добавлены вычисления с двойной точностью.
- Была добавлена Gather4 — выборка из графической памяти, скорость работы которой при определённых условиях может в четыре раза превышать скорость предыдущих выборок.[1]
Несмотря на нацеленность на неграфические вычисления общего назначения, DirectCompute может использоваться и в игровой графике. Так, он может использоваться при рендеринге теней, рендеринге полупрозрачных поверхностей без предварительной сортировки (англ. order independent transparency) и некоторых других областях. Также DirectCompute может использоваться для трассировки лучей, обработке и фильтрации цифровых изображений, просчёте алгоритмов игрового искусственного интеллекта и для других задач.[1]
Особенный интерес DirectCompute вызывает при просчёте алгоритмов физических движков. С помощью DirectCompute можно обрабатывать механику твёрдых тел, физику тканей и гидрогазодинамику. Компания AMD активно работает с DirectCompute в рамках проекта Open Physics Initiative.[2]
Использование и поддержка
DirectCompute поддерживается всеми основными компаниями на рынке производства графических процессоров: AMD и nVidia. На графических процессорах производства AMD технология AMD FireStream работает «поверх» DirectCompute. AMD в сотрудничестве с Pixelux Entertainment и Эрвином Кумансом в рамках проекта Open Physics Initiative работает над переносом физических вычислений на GPU. Кроме этого, в сотрудничестве с компанией CyberLink AMD работает над «переносом» на DirectCompute алгоритмов кодирования и декодирования видеоданных, редактирования видео, распознавания лиц.[3]
На графических процессорах производства nVidia DirectCompute работает «поверх» CUDA. На Game Developers Conference 2009 nVidia показала свои первые три технологические демонстрации DirectCompute, которые выполнялись на GeForce GTX 280.[4]
Существует специальный бенчмарк, тестирующий DirectCompute.[5]
Примечания
- ↑ 1 2 3 4 Андрей Воробьев, Алексей Берилло ATI RADEON HD 5870 1024MB PCI-E. iXBT.com (23 сентября 2009 года). Архивировано из первоисточника 17 марта 2012. Проверено 20 октября 2010.
- ↑ Gus Class DirectCompute Lecture Series 230: GPU Accelerated Physics (англ.). MSDN (11 августа 2010 года). Архивировано из первоисточника 3 июля 2012. Проверено 20 октября 2010.
- ↑ AMD AMD and CyberLink Accelerate Video Applications with Windows 7 DirectX 11 DirectCompute (англ.). BmR (9 октября 2009 года). Архивировано из первоисточника 3 июля 2012. Проверено 20 октября 2010.
- ↑ DirectCompute (англ.). Официальный сайт nVidia. Архивировано из первоисточника 20 октября 2010 года. Проверено 20 октября 2010.
- ↑ Regeneration First DirectCompute Benchmark Released (англ.). NGOHQ (4 ноября 2009 года). Архивировано из первоисточника 3 июля 2012. Проверено 20 октября 2010.
Внешние ссылки
- Ian McNaughton DirectX 11 – What to expect! (англ.). Официальный сайт AMD (9 сентября 2009 года). Архивировано из первоисточника 29 февраля 2012. Проверено 20 октября 2010.
- Редакция THG Что технология DirectCompute значит для геймеров? (рус.). Tom's Hardware (24 апреля 2012 года). Архивировано из первоисточника 11 мая 2012. Проверено 24 апреля 2012.
Категория:- GPGPU
Wikimedia Foundation. 2010.