Пространство имен 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