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

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

Примечания

[править | править код]
  1. DirectCompute. Дата обращения: 24 ноября 2013. Архивировано 2 декабря 2013 года.
  2. 1 2 3 4 Андрей Воробьев, Алексей Берилло. ATI RADEON HD 5870 1024MB PCI-E. iXBT.com (23 сентября 2009). Дата обращения: 20 октября 2010. Архивировано 26 сентября 2009 года.
  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