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]
- На графических процессорах производства nVidia DirectCompute работает «поверх» CUDA. На Game Developers Conference 2009 nVidia показала свои первые три технологические демонстрации DirectCompute, которые выполнялись на GeForce GTX 280.[5]
Существует специальный бенчмарк, тестирующий DirectCompute.[6][7]
Примечания
- ↑ DirectCompute. Дата обращения: 24 ноября 2013. Архивировано 2 декабря 2013 года.
- ↑ 1 2 3 4 Андрей Воробьев, Алексей Берилло. ATI RADEON HD 5870 1024MB PCI-E. iXBT.com (23 сентября 2009). Дата обращения: 20 октября 2010. Архивировано 26 сентября 2009 года.
- ↑ Gus Class. DirectCompute Lecture Series 230: GPU Accelerated Physics (англ.). MSDN (11 августа 2010). Дата обращения: 20 октября 2010. Архивировано 3 июля 2012 года.
- ↑ AMD. AMD and CyberLink Accelerate Video Applications with Windows 7 DirectX 11 DirectCompute (англ.). BmR (9 октября 2009). Дата обращения: 20 октября 2010. Архивировано 3 июля 2012 года.
- ↑ DirectCompute (англ.). Официальный сайт nVidia. Дата обращения: 20 октября 2010. Архивировано 20 октября 2010 года.
- ↑ Regeneration. First DirectCompute Benchmark Released (англ.). NGOHQ (4 ноября 2009). Дата обращения: 20 октября 2010. Архивировано 3 июля 2012 года.
- ↑ напр., ComputeMark
Ссылки
- Ian McNaughton. DirectX 11 – What to expect! (англ.). Официальный сайт AMD (9 сентября 2009). Дата обращения: 20 октября 2010. Архивировано 28 февраля 2012 года.
- Редакция THG. Что технология DirectCompute значит для геймеров? Tom's Hardware (24 апреля 2012). Дата обращения: 24 апреля 2012.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.