Русская Википедия:DirectCompute
DirectCompute — интерфейс программирования приложений (API), который входит в состав DirectX (набора API от Microsoft), который предназначен для работы на IBM PC-совместимых компьютерах под управлением операционных систем семейства Microsoft Windows. DirectCompute предназначен для выполнения вычислений общего назначения на графических процессорах, являясь реализацией концепции GPGPU, наряду с программными интерфейсами CUDA, ATI Stream и OpenCL[1].
Изначально DirectCompute был опубликован в составе DirectX 11, однако позже стал доступен и для DirectX 10 и DirectX 10.1.
Технологическое описание
DirectCompute, впервые появившись в составе DirectX 11, стал одним из важнейших его нововведений, первой технологией в составе DirectX, предоставившей доступ к вычислениям общего назначения на графических процессорах (Шаблон:Lang-en).[2]
DirectCompute присутствует в трёх версиях:[2]
- DirectCompute 10 для GPU, которые поддерживают Direct3D 10;
- DirectCompute 10.1 для GPU, которые поддерживают Direct3D 10.1;
- DirectCompute 11 для GPU, которые поддерживают Direct3D 11.
Если версии DirectCompute 10 и DirectCompute 10.1 почти одинаковы по функциональным возможностям, то DirectCompute 11 предоставляет существенно больше функций[2]:
- 3D Thread Dispatch предоставляет возможность при помощи одного трёхмерного потока массива заменить несколько двумерных;
- Максимальное количество потоков по сравнению с DirectCompute 10/10.1 увеличено на 33 %: с 768 до 1024;
- Объём памяти, выделяемый на группу потоков, был увеличен с 16 Кб до 32 Кб;
- Улучшен доступ к памяти: если для DirectCompute 10/10.1 возможность чтения и записи были возможны лишь в область памяти размером 256 Кб, то в DirectCompute 11 этот размер уменьшен до 32 Кб;
- Появились т. н. атомарные операции, которые дали возможность каждому потоку использовать защищенные области памяти;
- добавлены вычисления с двойной точностью;
- добавлена Gather4 — выборка из графической памяти, скорость работы которой при определённых условиях может в четыре раза превышать скорость предыдущих выборок.
Использование и поддержка
Несмотря на нацеленность на неграфические вычисления общего назначения, DirectCompute может использоваться и в игровой графике. Так, он может использоваться при рендеринге теней, рендеринге полупрозрачных поверхностей без предварительной сортировки (Шаблон:Lang-en) и некоторых других областях. Также DirectCompute может использоваться для трассировки лучей, обработке и фильтрации цифровых изображений, просчёте алгоритмов игрового искусственного интеллекта и для других задач.[2]
Особенный интерес DirectCompute вызывает при просчёте алгоритмов физических движков. С помощью DirectCompute можно обрабатывать механику твёрдых тел, физику тканей и гидрогазодинамику. Компания AMD активно работает с DirectCompute в рамках проекта Open Physics Initiative.[3]
DirectCompute поддерживается всеми основными компаниями на рынке производства графических процессоров: AMD и nVidia.
- На графических процессорах производства AMD, технология DirectCompute работает «поверх» AMD FireStream. AMD в сотрудничестве с Pixelux Entertainment и Эрвином Кумансом в рамках проекта Open Physics Initiative работает над переносом физических вычислений на GPU. Кроме этого, в сотрудничестве с компанией CyberLink AMD работает над «переносом» на DirectCompute алгоритмов кодирования и декодирования видеоданных, редактирования видео, распознавания лиц.[4]
- На графических процессорах производства nVidia DirectCompute работает «поверх» CUDA. На Game Developers Conference 2009 nVidia показала свои первые три технологические демонстрации DirectCompute, которые выполнялись на GeForce GTX 280.[5]
Существует специальный бенчмарк, тестирующий DirectCompute.[6][7]
Примечания
Ссылки
- ↑ Шаблон:Cite web
- ↑ 2,0 2,1 2,2 2,3 Ошибка цитирования Неверный тег
<ref>
; для сносокixbt_article
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ напр., ComputeMark