并发命名空间 (C++ AMP)
提供加速 C++ 代码在数据并行硬件上执行的类和函数。 有关详细信息,请参阅 C++ AMP 概述
语法
namespace Concurrency;
成员
命名空间
名称 | 描述 |
---|---|
Concurrency::direct3d 命名空间 | 提供支持 D3D 互操作性的函数。 支持在 AMP 代码中无缝使用 D3D 资源进行计算,以及在 D3D 代码中使用在 AMP 中创建的资源,而无需创建冗余的中间副本。 可以使用 C++ AMP 以增量方式加速 DirectX 应用程序的计算密集型部分,并使用 D3D API 处理 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 异步操作对应的 future。 |
extent 类 | 表示一个包含 N 个整数值的向量,这些值指定以 0 为原点的 N 维空间的边界。 坐标向量中的值从最高有效位到最低有效位排序。 例如,在笛卡尔 3 维空间中,盘区向量 (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 类 | 只能由系统创建并作为 tiled_index 参数的一部分传递给平铺 parallel_for_each Lambda 的功能类。 它提供了一种方法 wait() ,其目的是同步线程组 (tile) 中运行的线程的执行。 |
tiled_extent 类 | tiled_extent 对象是一个一到三维的 extent 对象,它将盘区空间细分为一维、二维或三维 tile。 |
tiled_index 类 | 提供 tiled_grid 对象中的索引。 此类具有访问相对于本地 tile 原点和相对于全局原点的元素的属性。 |
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 | 已重载。 以原子操作的形式将存储在指定位置的值设置为指定值。 |
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 | 复制 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 内存访问完成之前,阻止 tile 中所有线程的执行。 |
常量
名称 | 描述 |
---|---|
HLSL_MAX_NUM_BUFFERS 常量 | DirectX 支持的最大缓冲区数。 |
MODULENAME_MAX_LENGTH 常量 | 存储模块名的最大长度。 该值在编译器和运行时上必须相同。 |
要求
标头: amp.h