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, предоставившей доступ к вычислениям общего назначения на графических процессорах (англ. GPU).[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 может использоваться и в игровой графике. Так, он может использоваться при рендеринге теней, рендеринге полупрозрачных поверхностей без предварительной сортировки (англ. order independent transparency) и некоторых других областях. Также DirectCompute может использоваться для трассировки лучей, обработке и фильтрации цифровых изображений, просчёте алгоритмов игрового искусственного интеллекта и для других задач.[2]

Особенный интерес DirectCompute вызывает при просчёте алгоритмов физических движков. С помощью DirectCompute можно обрабатывать механику твёрдых тел, физику тканей и гидрогазодинамику. Компания AMD активно работает с DirectCompute в рамках проекта Open Physics Initiative.[3]

DirectCompute поддерживается всеми основными компаниями на рынке производства графических процессоров: AMD и nVidia.

  • На графических процессорах производства AMD технология AMD FireStream работает «поверх» DirectCompute. AMD в сотрудничестве с Pixelux Entertainment и Эрвином Кумансом в рамках проекта Open Physics Initiative работает над переносом физических вычислений на GPU. Кроме этого, в сотрудничестве с компанией CyberLink AMD работает над «переносом» на DirectCompute алгоритмов кодирования и декодирования видеоданных, редактирования видео, распознавания лиц.[4]

Существует специальный бенчмарк, тестирующий DirectCompute.[6][7]

Примечания[править | править исходный текст]

  1. DirectCompute
  2. 1 2 3 4 Андрей Воробьев, Алексей Берилло. ATI RADEON HD 5870 1024MB PCI-E. iXBT.com (23 сентября 2009 года). Проверено 20 октября 2010. Архивировано из первоисточника 17 марта 2012.
  3. Gus Class. DirectCompute Lecture Series 230: GPU Accelerated Physics (англ.). MSDN (11 августа 2010 года). Проверено 20 октября 2010. Архивировано из первоисточника 3 июля 2012.
  4. AMD. AMD and CyberLink Accelerate Video Applications with Windows 7 DirectX 11 DirectCompute (англ.). BmR (9 октября 2009 года). Проверено 20 октября 2010. Архивировано из первоисточника 3 июля 2012.
  5. DirectCompute (англ.). Официальный сайт nVidia. Проверено 20 октября 2010. Архивировано из первоисточника 20 октября 2010 года.
  6. Regeneration. First DirectCompute Benchmark Released (англ.). NGOHQ (4 ноября 2009 года). Проверено 20 октября 2010. Архивировано из первоисточника 3 июля 2012.
  7. напр., ComputeMark

Ссылки[править | править исходный текст]