Поделиться через


Пространство имен Concurrency (C++ AMP)

Предоставляет классы и функции, которые ускоряют выполнение кода 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

См. также

Справочник (C++ AMP)