Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет классы и функции, которые ускоряют выполнение кода C++ на оборудовании, параллельном с данными. Дополнительные сведения см. в обзоре C++ AMP
Синтаксис
namespace Concurrency;
Участники
Пространства имен
| Имя | Описание |
|---|---|
| Пространство имен Concurrency::direct3d | Предоставляет функции, поддерживающие взаимодействие D3D. Обеспечивает простое использование ресурсов D3D для вычислений в коде AMP и использования ресурсов, созданных в коде AMP в D3D, без создания избыточных промежуточных копий. С помощью C++ AMP можно постепенно ускорить вычислительные разделы приложений DirectX и использовать API D3D для данных, созданных из вычислений AMP. |
| Пространство имен Concurrency::fast_math | Функции в fast_math пространстве имен не соответствуют C99. Предоставляются только версии функций одинарной точности. Эти функции используют встроенные функции DirectX, которые быстрее, чем соответствующие функции в precise_math пространстве имен, и не требуют расширенной поддержки двойной точности на акселераторе, но они менее точны. Существуют две версии каждой функции для совместимости на уровне исходного кода с кодом C99; обе версии принимают и возвращают числовые значения одинарной точности. |
| Пространство имен Concurrency::graphics | Предоставляет типы и функции, предназначенные для программирования графики. |
| Пространство имен Concurrency::precise_math | Функции в precise_math пространстве имен соответствуют C99. Включены версии каждой функции как одинарной точности, так и двойной точности. Эти функции, в том числе функции одинарной точности, требуют поддержки расширенной двойной точности на ускорителе. |
Классы
| Имя | Описание |
|---|---|
| Класс Ускоритель | Представляет абстракцию физического вычислительного узла, оптимизированного для DP. |
| Класс accelerator_view | Представляет абстракцию виртуального устройства в асинхронном параллельном акселераторе данных C++ AMP. |
| Класс accelerator_view_removed | Исключение, которое выбрасывается, когда вызов DirectX завершается ошибкой из-за механизма обнаружения и восстановления сбоев по тайм-ауту в Windows. |
| Класс array | Агрегат данных в accelerator_view сетевом домене. Это коллекция переменных, по одному для каждого элемента в домене сетки. Каждая переменная содержит значение, соответствующее определенному типу C++. |
| Класс array_view | Представляет представление данных в массиве<T,N>. |
| Класс completion_future | Представляет будущее, соответствующее асинхронной операции C++ AMP. |
| Класс Extent | Представляет вектор целочисленных значений N, указывающих границы N-размерного пространства с источником 0. Значения в векторе координат упорядочены от наиболее значимых до наименее значимых. Например, в декартовом трехмерном пространстве вектор протяженности (7,5,3) представляет пространство, в котором координата z имеет диапазон от 0 до 7, координата y — от 0 до 5, а координата x — от 0 до 3. |
| Класс index | Определяет точку N-мерного индекса. |
| Класс invalid_compute_domain | Исключение, которое возникает, когда среда выполнения не может запустить ядро с помощью вычислительного домена, указанного на parallel_for_each сайте вызова. |
| Класс out_of_memory | Исключение, которое возникает при сбое метода из-за нехватки памяти системы или устройства. |
| Класс runtime_exception | Базовый тип исключений в библиотеке C++ AMP. |
| Класс tile_barrier | Класс возможностей, создаваемый только системой, который передается в плиточную parallel_for_each лямбду в качестве части параметра tiled_index. Он предоставляет один метод, wait()цель которого — синхронизировать выполнение потоков, выполняемых в группе потоков (плитка). |
| Класс tiled_extent |
tiled_extent Объект — это extent объект одного, двух или трех измерений, который разделяет пространство областей на одномерные, двухмерные или трехмерные плитки. |
| Класс tiled_index | Предоставляет индекс объекта tiled_grid. Этот класс имеет свойства для доступа к элементу относительно локального начала координат плиток и относительно глобального начала координат. |
| Uninitialized_Object класс | Исключение, возникающее при использовании неинициализированного объекта. |
| Класс Unsupported_feature | Исключение, которое возникает при использовании неподдерживаемой функции. |
Перечисления
| Имя | Описание |
|---|---|
| Перечисление access_type | Указывает тип доступа к данным. |
| Перечисление queuing_mode | Указывает режимы очереди, поддерживаемые в акселераторе. |
Операторы
| Оператор | Описание |
|---|---|
| operator== Оператор (C++ AMP) | Определяет, равны ли указанные структуры данных. |
| оператор!= оператор (C++ AMP) | Определяет, являются ли указанные структуры данных неравными. |
| оператор + (C++ AMP) | Вычисляет поэлементную сумму заданных аргументов. |
| оператор - оператор (C++ AMP) | Вычисляет покомпонентную разницу между указанными аргументами. |
| оператор* (C++ AMP) | Вычисляет покомпонентное произведение указанных аргументов. |
| operator/ Operator (C++ AMP) | Вычисляет покомпонентное частное указанных аргументов. |
| Оператор operator% (C++ AMP) | Вычисляет модуль первого указанного аргумента вторым заданным аргументом. |
Функции
| Имя | Описание |
|---|---|
| all_memory_fence | Блокирует выполнение всех потоков на плитке до завершения всех обращений к памяти. |
| amp_uninitialize | Деинициализирует среду выполнения C++ AMP. |
| atomic_compare_exchange | Перегружен. Если значение, хранящееся в указанном расположении, равно первому указанному значению, то второе указанное значение хранится в том же расположении как атомарная операция. |
| atomic_exchange | Перегружен. Задает значение, хранящееся в указанном расположении, в качестве атомарной операции. |
| atomic_fetch_add | Перегружен. Задает значение, хранящееся в указанном расположении, для суммы этого значения и указанного значения в качестве атомарной операции. |
| atomic_fetch_and | Перегружен. Задает значение, хранящееся в указанном расположении, побитовое and значение этого значения и указанное значение в качестве атомарной операции. |
| atomic_fetch_dec | Перегружен. Уменьшает значение, хранящееся в указанном расположении, и сохраняет результат в том же расположении, что и атомарная операция. |
| atomic_fetch_inc | Перегружен. Увеличивает значение, хранящееся в указанном расположении, и сохраняет результат в том же расположении, что и атомарная операция. |
| atomic_fetch_max | Перегружен. Устанавливает значение, хранящееся в указанном месте, равным наибольшему из этого значения и указанного значения как атомарная операция. |
| atomic_fetch_min | Перегружен. Устанавливает значение, хранящееся в указанном месте, равным меньшему из текущего и заданного значений, в качестве атомарной операции. |
| atomic_fetch_or | Перегружен. Задает значение, хранящееся в указанном расположении, побитовое or значение этого значения и указанное значение в качестве атомарной операции. |
| atomic_fetch_sub | Перегружен. Устанавливает значение, хранящееся в указанном месте, равным разности между этим значением и указанным значением как атомарную операцию. |
| atomic_fetch_xor | Перегружен. Задает значение, хранящееся в указанном расположении, побитовое xor значение этого значения и указанное значение в качестве атомарной операции. |
| копировать | Копирует объект AMP на C++. Выполняются все требования к синхронной передаче данных. Невозможно скопировать данные, когда код выполняется на акселераторе. Общая форма этой функции copy(src, dest). |
| copy_async | Копирует объект C++ AMP и возвращает completion_future, которое можно ожидать. Невозможно скопировать данные при выполнении кода в акселераторе. Общая форма этой функции copy(src, dest). |
| direct3d_abort | Прерывает выполнение функции с условием ограничения restrict(amp). |
| direct3d_errorf | Выводит форматированную строку в окно вывода Visual Studio и вызывает исключение "runtime_exception" с той же строкой форматирования. |
| direct3d_printf | Печатает отформатированную строку в окно вывода Visual Studio. Он вызывается из функции, которая имеет условие ограничения restrict(amp). |
| global_memory_fence | Блокирует выполнение всех потоков на плитке до завершения всех доступов к глобальной памяти. |
| функция parallel_for_each (C++ AMP) | Выполняет функцию в вычислительном домене. |
| tile_static_memory_fence | Блокирует выполнение всех потоков на плитке до завершения tile_static доступа к памяти. |
Константы
| Имя | Описание |
|---|---|
| Константа HLSL_MAX_NUM_BUFFERS | Максимальное количество буферов, разрешенных DirectX. |
| Константа MODULENAME_MAX_LENGTH | Сохраняет максимальную длину имени модуля. Это значение должно совпадать с компилятором и средой выполнения. |
Требования
Заголовок : amp.h