Пространство имен 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. Включены обе версии одной точности и двойной точности каждой функции. Эти функции , включая функции с одной точностью, требуют расширенной поддержки двойной точности на акселераторе.

Классы

Имя Описание
Класс accelerator Представляет абстракцию физического вычислительного узла, оптимизированного для 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 Description
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 значение этого значения и указанное значение в качестве атомарной операции.
copy Копирует объект AMP C++ . Выполняются все требования к синхронной передаче данных. Невозможно скопировать данные при выполнении кода в акселераторе. Общая форма этой функции copy(src, dest).
copy_async Копирует объект AMP C++ и возвращает 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)