Concurrency 命名空间 (C++ AMP)

提供在数据并行硬件上加速 C++ 代码执行的类和函数。 有关更多信息,请参阅C++ AMP 概述

namespace Concurrency;

成员

命名空间

名称

描述

Concurrency::direct3d 命名空间

提供支持 D3D 互操作性的功能。 无缝使用 D3D 资源以在 AMP 代码中进行计算,并使用在 D3D 代码中的 AMP 中创建的资源,而不会创建冗余的中间副本。 可使用 C++ AMP 来增量加速您的 DirectX 应用程序的计算密集型部分,并使用从 AMP 计算生成的数据上的 D3D API。

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 类 (C++ AMP)

表示指定原始为 0 的 N 维空间边界的 N 个整数值的矢量。 坐标矢量中的值按最重要到最不重要的顺序排列。 例如,在笛卡尔坐标三维空间中,区域矢量(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 lambda 成为 tiled_index 参数的一部分的功能类。 提供一种方法,wait() 的目标在于同步执行线程组(图标)中运行的线程。

tiled_extent 类

tiled_extent 对象是到一维到三维的 extent 对象,该对象将区域空间细分成一维、二维或三维平铺。

tiled_index 类

提供 tiled_grid 对象的索引。 该类具有访问相对于本地平铺原点和相对于全局原点的元素的属性。

uninitialized_object 类

使用未初始化的对象时引发的异常。

unsupported_feature 类

使用不支持的功能时引发的异常。

枚举

名称

描述

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)

通过第二个指定的参数计算第一个指定的参数的模数。

函数

名称

描述

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 函数

复制 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 允许的最大缓冲区数目 (&B)。

MODULENAME_MAX_LENGTH 常量

存储模块名称的最大长度。 此值必须在编译器和运行时上相同。

要求

**标头:**amp.h

请参见

其他资源

参考 (C++ AMP)