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


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

Предоставляет классы и функции, которые ускоряют выполнение кода C++ на оборудовании с параллельной обработкой данных. Дополнительные сведения см. в разделе Общие сведения о C++ AMP.

namespace Concurrency;

Члены

Пространства имен

Name

Описание

Пространство имен Concurrency::direct3d

Предоставляет функции, которые поддерживают взаимодействие с D3D Позволяет прозрачным образом использовать ресурсы D3D в коде AMP, а также использовать созданные в AMP ресурсы в коде D3D без создания избыточных временных копий. Существует возможность в C++ AMP инкрементально ускорять вычислительно затратные части DirectX приложений, и использовать D3D API на данных, полученных из AMP вычислений.

Пространство имен Concurrency::fast_math

Функции, находящиеся в пространстве имен fast_math, несовместимы с C99. Предоставляются только версии одиночной точности каждой функции. Эти функции используют встроенные функции DirectX быстрее, чем соответствующие функции в пространстве имен precise_math, и не требуют выдвинутой двойной точности поддержки в сочетании клавиш, но они являются менее точными. Существует две версии каждой функции для исходного кода на уровне совместимости с кодом C99; обе версии имеют и возвращают значения одиночной точности.

Пространство имен Concurrency::graphics

Предоставляет типы и функции для программирования графики.

Пространство имен Concurrency::precise_math

Функции, находящиеся в пространстве имен precise_math, совместимы с C99. Для каждой функции включены версии одинарной и двойной точности. Эти функции, в том числе функции одиночной точности, требуют расширенной поддержки двойной точности в ускорителе.

Классы

Name

Описание

Класс accelerator

Представляет абстракцию физического DP-оптимизированного вычислительного узла.

Класс accelerator_view

Представляет абстракцию виртуального устройства на ускорителе с параллельными данными C++ AMP.

Класс accelerator_view_removed

Исключение, вызываемое при сбое основного вызова DirectX из-за механизм Windows обнаружения и восстановления времени ожидания.

Класс array

Статистические данные accelerator_view в домене сетки. Это коллекция переменных, по одной для каждого элемента в домене сетки. Каждая переменная содержит значение, соответствующее некоторому типу C++.

Класс array_view

Является представлением данных в array<T,N>.

Класс completion_future

Представляет фьючерс, соответствующей асинхронной операции C++ AMP.

Касс extent (C++ AMP)

Представляет вектор из N целочисленных значений, которые определяют границы N-мерного пространства с началом координат в 0. Значения в координатном векторе упорядочены от наиболее значимых к наименее значимым. Например, в прямоугольном трехмерном пространстве, пространственный вектор (7,5,3) представляет пространство, в котором координата z находится в диапазоне от 0 до 7, координата y находится в диапазоне от 0 до 5, и координата х находится в диапазоне от 0 до 3.

Класс index

Определяет N-мерную точку индекса.

Класс invalid_compute_domain

Исключение, выдаваемое в том случае, если среда выполнения не может запустить ядро с использованием вычислительного домена, указанного в месте вызова parallel_for_each.

Класс out_of_memory

Исключение, возникающее, если выполнение метода завершается ошибкой из-за отсутствия памяти системы или устройства.

Класс runtime_exception

Базовый тип для исключений в библиотеке С++ AMP.

Класс tile_barrier

Класс возможности, который может быть создан только системой, и передается заключенному в плитку лямбда-выражению parallel_for_each в качестве части параметра tiled_index. Он предоставляет один метод wait(), цель которого — синхронизировать выполнение потоков, работающих в группе потоков (плитка).

Класс tiled_extent

Объект tiled_extent — это объект extent, имеющий от одного до трех измерений, который разделяет пространство рамки на одно-, двух-, или трехмерную мозаику.

Класс tiled_index

Предоставляет индекс в объект tiled_grid. Этот класс содержит свойства для доступа к элементам относительно локального начального положения плитки и относительно глобального начального положения.

Класс uninitialized_object

Исключение, которое вызывается, когда используется неинициализированный объект.

Класс unsupported_feature

Исключение, вызываемое в том случае, если используется неподдерживаемая функция.

Перечисления

Name

Описание

Перечисление access_type

Определяет тип доступа к данным.

Перечисление queuing_mode

Определяет режимы организации очереди, поддерживаемые ускорителем.

Операторы

Оператор

Описание

Оператор operator== (C++ AMP)

Определяет, равны ли две заданных структуры данных.

Оператор operator!= (C++ AMP)

Определяет, являются ли две заданных структуры данных неравными.

Оператор operator+ (C++ AMP)

Вычисляет покомпонентную сумму двух заданных аргументов.

Оператор operator- (C++ AMP)

Вычисляет разность между указанными аргументами для каждого компонента.

Оператор operator* (C++ AMP)

Вычисляет покомпонентное произведение заданных входных аргументов.

Оператор operator/ (C++ AMP)

Вычисляет покомпонентное частное двух заданных аргументов.

Оператор operator% (C++ AMP)

Вычисляет остаток деления первого заданного аргумента на второй заданный аргумент.

Функции

Name

Описание

Функция all_memory_fence

Блокирует выполнение всех потоков в плитке до тех пор, пока все операции обращения к памяти не будут завершены.

Функция amp_uninitialize

Отменяет инициализацию среды выполнения C++ AMP.

Функция atomic_compare_exchange

Перегружен. Если значения, хранящееся в указанном месте, в результате сравнения оказывается равным первому указанному значению, второе указанное значение сохраняется в том же месте в виде атомарной операции.

Функция atomic_exchange (C++ AMP)

Перегружен. Задает значение, сохраненное в заданном расположении, в значение, заданное в качестве атомарной операции.

Функция atomic_fetch_add (C++ AMP)

Перегружен. Задает значение, сохраненное в заданном расположение, в сумму этого значения и значения, заданного в качестве атомарной операции.

Функция atomic_fetch_and (C++ AMP)

Перегружен. Задает значение, сохраненное в заданном расположении, в побитовое and для этого значения и заданное значение в качестве атомарной операции.

Функция atomic_fetch_dec

Перегружен. Уменьшает значение, хранящееся в указанном месте и сохраняет результат в том же месте в виде атомарной операции.

Функция atomic_fetch_inc

Перегружен. Увеличивает значение, хранящееся в указанном месте и сохраняет результат в том же месте в виде атомарной операции.

Функция atomic_fetch_max

Перегружен. Задает значение, сохраненное в заданном расположение, в наибольшее из этого значения и значения, заданного в качестве атомарной операции.

Функция atomic_fetch_min

Перегружен. Задает значение, сохраненное в заданном расположении, в наименьшее из этого значения и значения, заданного в качестве атомарной операции.

Функция atomic_fetch_or (C++ AMP)

Перегружен. Задает значение, сохраненное в заданном расположении, в побитовое or для этого значения и заданное значение в качестве атомарной операции.

Функция atomic_fetch_sub (C++ AMP)

Перегружен. Задает значение, сохраненное в заданном расположении, в разницу этого значения и заданного значения в качестве атомарной операции.

Функция atomic_fetch_xor (C++ AMP)

Перегружен. Задает значение, сохраненное в заданном расположении, в побитовое xor для этого значения и заданное значение в качестве атомарной операции.

Функция copy

Копирует объект C++ AMP. Все требования синхронной передачи данных выполняются. Данные нельзя копировать, когда код выполняет код на ускорителе. Общая форма этой функции — copy(src, dest).

Функция copy_async

Копирует объект С++ 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.

Константы

Name

Описание

Константа HLSL_MAX_NUM_BUFFERS

Максимальное количество буферов, допускаемое DirectX.

Константа MODULENAME_MAX_LENGTH

Хранит максимальную длину имени модуля. Это значение должно быть одинаковым в компиляторе и среде выполнения.

Требования

Заголовок: amp.h

См. также

Другие ресурсы

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