accelerator 类

快捷键是针对数据并行计算进行优化的硬件功能。 快捷键可以是连接到 PCIe 总线的设备(例如 GPU),也可以是主 CPU 上的扩展指令集。

语法

class accelerator;

成员

公共构造函数

名称 描述
accelerator Constructor 初始化 accelerator 类的新实例。
~accelerator Destructor 销毁 accelerator 对象。

公共方法

名称 描述
create_view 在快捷键上创建并返回一个 accelerator_view 对象。
get_all 返回表示所有可用快捷键的 accelerator 对象的向量。
get_auto_selection_view 返回自动选择 accelerator_view
get_dedicated_memory 返回 accelerator 的专用内存(单位为 KB)。
get_default_cpu_access_type 返回在此快捷键上创建的缓冲区的默认 access_type
get_default_view 返回与 accelerator 关联的默认 accelerator_view 对象。
get_description 返回 accelerator 设备的简短说明。
get_device_path 返回设备的路径。
get_has_display 确定 accelerator 是否附加到显示器。
get_is_debug 确定 accelerator 对象是否为广泛的错误报告启用了调试层。
get_is_emulated 确定是否模拟 accelerator
get_supports_cpu_shared_memory 确定 accelerator 是否支持共享内存
get_supports_double_precision 确定 accelerator 是否附加到显示器。
get_supports_limited_double_precision 确定 accelerator 是否对双精度算术只提供有限的支持。
get_version 返回 accelerator 的版本。
set_default 设置默认快捷键的路径。
set_default_cpu_access_type 为在此 accelerator 上进行的数组和隐式内存分配设置默认 CPU access_type

公共运算符

“属性” 描述
operator!= 将此 accelerator 对象与另一个进行比较,相同则返回 false,否则返回 true
operator= 将指定 accelerator 对象的内容复制到此对象中。
operator== 将此 accelerator 对象与另一个进行比较,相同则返回 true,否则返回 false

公共数据成员

“属性” 描述
cpu_accelerator 获取 CPU accelerator 的字符串常数。
dedicated_memory 获取 accelerator 的专用内存(单位为 KB)。
default_accelerator 获取默认 accelerator 的字符串常数。
default_cpu_access_type 获取或设置在此 accelerator 上进行的数组和隐式内存分配的默认 CPU access_type
default_view accelerator 关联的默认 accelerator_view 对象。
说明 获取 accelerator 设备的简短说明。
device_path 获取设备的路径。
direct3d_ref 获取 Direct3D 引用 accelerator 的字符串常数。
direct3d_warp 获取 accelerator 对象的字串符常数,该对象可用于在使用流式处理 SIMD 扩展 (SSE) 的多核 CPU 上执行 C++ AMP 代码。
has_display 获取一个布尔值,该值指示 accelerator 是否附加到显示器。
is_debug 指示 accelerator 对象是否为广泛的错误报告启用了调试层。
is_emulated 指示是否模拟 accelerator
supports_cpu_shared_memory 指示 accelerator 是否支持共享内存。
supports_double_precision 指示快捷键是否支持双精度算术。
supports_limited_double_precision 指示快捷键是否对双精度算术只提供有限的支持。
version 获取 accelerator 的版本。

继承层次结构

accelerator

注解

快捷键是针对数据并行计算进行优化的硬件功能。 快捷键通常是单独的 GPU,但也可以是虚拟主机端实体,例如 DirectX REF 设备、WARP(通过 SSE 指令加速的 CPU 端设备)或 CPU 本身。

可以通过枚举可用设备或获取默认设备、引用设备或 WARP 设备来构造 accelerator 对象。

要求

标头:amprt.h

命名空间: 并发

~accelerator

销毁 accelerator 对象。

~accelerator();

返回值

加速器

初始化 accelerator 类的新实例。

accelerator();

explicit accelerator(const std::wstring& _Device_path);

accelerator(const accelerator& _Other);

参数

_Device_path
物理设备的路径。

_Other
要复制的快捷键。

cpu_accelerator

获取 CPU 快捷键的字符串常数。

static const wchar_t cpu_accelerator[];

create_view

使用指定的排队模式,在快捷键上创建并返回一个 accelerator_view 对象。 如果未指定队列模式,则新的 accelerator_view 使用 queuing_mode::immediate 队列模式。

accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);

参数

qmode
排队模式。

返回值

使用指定队列的模式,在此快捷键上创建的新 accelerator_view 对象。

dedicated_memory

获取 accelerator 的专用内存(单位为 KB)。

__declspec(property(get= get_dedicated_memory)) size_t dedicated_memory;

default_accelerator

获取默认 accelerator 的字符串常数。

static const wchar_t default_accelerator[];

default_cpu_access_type

在此 accelerator 上进行的数组和隐式内存分配的默认 CPU access_type

__declspec(property(get= get_default_cpu_access_type)) access_type default_cpu_access_type;

default_view

获取与 accelerator 关联的默认快捷键视图。

__declspec(property(get= get_default_view)) accelerator_view default_view;

description

获取 accelerator 设备的简短说明。

__declspec(property(get= get_description)) std::wstring description;

device_path

获取快捷键的路径。 该路径在系统上是唯一的。

__declspec(property(get= get_device_path)) std::wstring device_path;

direct3d_ref

获取 Direct3D 引用快捷键的字符串常数。

static const wchar_t direct3d_ref[];

direct3d_warp

获取 accelerator 对象的字串符常数,该对象可用于在使用流式处理 SIMD 扩展 (SSE) 的多核 CPU 上执行 C++ AMP 代码。

static const wchar_t direct3d_warp[];

get_all

返回表示所有可用快捷键的 accelerator 对象的向量。

static inline std::vector<accelerator> get_all();

返回值

可用快捷键的矢量

get_auto_selection_view

返回自动选择 accelerator_view,当指定为 parallel_for_each 目标时,运行时会自动选择用于执行 parallel_for_each 内核的目标 accelerator_view。 对于所有其他用途,此方法返回的 accelerator_view 与默认快捷键的默认 accelerator_view 相同

static accelerator_view __cdecl get_auto_selection_view();

返回值

自动选择 accelerator_view。

get_dedicated_memory

返回 accelerator 的专用内存(单位为 KB)。

size_t get_dedicated_memory() const;

返回值

accelerator 的专用内存(单位为 KB)。

get_default_cpu_access_type

获取在此快捷键上创建的缓冲区的默认 cpu access_type

access_type get_default_cpu_access_type() const;

返回值

在此快捷键上创建的缓冲区的默认 cpu access_type。

get_default_view

返回与 accelerator 关联的默认 accelerator_view 对象。

accelerator_view get_default_view() const;

返回值

accelerator_view 关联的默认 accelerator 对象。

get_description

返回 accelerator 设备的简短说明。

std::wstring get_description() const;

返回值

accelerator 设备的简短说明。

get_device_path

返回快捷键的路径。 该路径在系统上是唯一的。

std::wstring get_device_path() const;

返回值

系统范围的唯一设备实例路径。

get_has_display

返回一个布尔值,该值指示 accelerator 是否可以输出到显示器。

bool get_has_display() const;

返回值

如果 accelerator 可以输出到显示器,则为 true;否则为 false

get_is_debug

确定 accelerator 对象是否为广泛的错误报告启用了调试层。

bool get_is_debug() const;

返回值

如果 accelerator 为广泛的错误报告启用了调试层,则返回值为 true。 否则为 false

get_is_emulated

确定是否模拟 accelerator

bool get_is_emulated() const;

返回值

如果模拟 true,则返回值为 accelerator。 否则为 false

get_supports_cpu_shared_memory

返回一个布尔值,指示快捷键是否支持快捷键和 CPU 均可访问的内存。

bool get_supports_cpu_shared_memory() const;

返回值

如果快捷键支持 CPU 共享内存,则返回值为 true;否则,为 false

get_supports_double_precision

返回一个布尔值,指示快捷键是否支持双精度算术,包括融合乘加 (FMA)、除法、倒数以及 intdouble 之间的强制转换

bool get_supports_double_precision() const;

返回值

如果快捷键支持双精度算术,则返回值为 true;否则为 false

get_supports_limited_double_precision

返回一个布尔值,指示快捷键是否限制了对双精度算术的支持。 如果快捷键仅提供有限的支持,则不支持融化乘法加法 (FMA)、除法以及 intdouble 之间的相互转换。

bool get_supports_limited_double_precision() const;

返回值

如果快捷键对双精度算术只提供有限的支持,则返回值为 true;否则为 false

get_version

返回 accelerator 的版本。

unsigned int get_version() const;

返回值

accelerator 的版本。

has_display

获取一个布尔值,指示 accelerator 是否可以输出到显示器。

__declspec(property(get= get_has_display)) bool has_display;

is_debug

获取一个布尔值,指示 accelerator 是否为广泛的错误报告启用了调试层。

__declspec(property(get= get_is_debug)) bool is_debug;

is_emulated

获取一个布尔值,指示是否模拟 accelerator

__declspec(property(get= get_is_emulated)) bool is_emulated;

operator!=

将此 accelerator 对象与另一个进行比较,相同则返回 false,否则返回 true

bool operator!= (const accelerator& _Other) const;

参数

_Other
与此对象相比较的 accelerator 对象。

返回值

如果两个 accelerator 对象相同,则为 false;否则为 true

operator=

将指定 accelerator 对象的内容复制到此对象中。

accelerator& operator= (const accelerator& _Other);

参数

_Other
要从其复制的 accelerator 对象。

返回值

对此 accelerator 对象的引用。

operator==

将此 accelerator 对象与另一个进行比较,相同则返回 true,否则返回 false

bool operator== (const accelerator& _Other) const;

参数

_Other
与此对象相比较的 accelerator 对象。

返回值

如果另一个 accelerator 对象与此 accelerator 对象相同;则返回值为 true;否则,为 false

set_default

设置默认快捷键,将其用于隐式使用默认快捷键的任何操作。 仅当运行时选择的默认快捷键尚未在隐式使用默认快捷键的操作中使用时,此方法才会成功

static inline bool set_default(std::wstring _Path);

参数

_Path
快捷键的路径。

返回值

如果调用成功设置默认快捷键,则返回值为 true。 否则为 false

set_default_cpu_access_type

为在此快捷键上创建的数组或隐式内存分配设置默认 cpu access_type,作为在此快捷键上访问的 array_views 的一部分。 仅当之前对此方法的调用尚未重写快捷键的 default_cpu_access_type 并且为此加速器选择的运行时 default_cpu_access_type 尚未用于分配数组或用于为此快捷键上访问的 array_view 提供支持的隐式内存分配时,此方法才会成功。

bool set_default_cpu_access_type(access_type _Default_cpu_access_type);

参数

_Default_cpu_access_type
用于此快捷键上的 array/array_view 内存分配的默认 cpu access_type。

返回值

一个布尔值,指示是否成功设置快捷键的默认 cpu access_type。

supports_cpu_shared_memory

获取一个布尔值,指示 accelerator 是否支持共享内存。

__declspec(property(get= get_supports_cpu_shared_memory)) bool supports_cpu_shared_memory;

supports_double_precision

获取一个指示快捷键是否支持双精度算术的布尔值。

__declspec(property(get= get_supports_double_precision)) bool supports_double_precision;

supports_limited_double_precision

获取一个布尔值,指示快捷键是否限制了对双精度算术的支持。 如果快捷键仅提供有限的支持,则不支持融化乘法加法 (FMA)、除法以及 intdouble 之间的相互转换。

__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;

版本

获取 accelerator 的版本。

__declspec(property(get= get_version)) unsigned int version;

另请参阅

并发命名空间 (C++ AMP)