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


Класс accelerator

Акселератор — это аппаратная возможность, оптимизированная для параллельных вычислений данных. Ускоритель может быть устройством, подключенным к шине PCIe (например, GPU), или может быть расширенным набором инструкций на основном ЦП.

Синтаксис

class accelerator;

Участники

Открытые конструкторы

Имя Описание
Конструктор акселератора Инициализирует новый экземпляр класса accelerator.
~акселератор деструктор Уничтожает accelerator объект.

Открытые методы

Имя Описание
create_view Создает и возвращает accelerator_view объект в этом акселераторе.
get_all Возвращает вектор accelerator объектов, представляющих все доступные акселераторы.
get_auto_selection_view Возвращает автоматический выбор accelerator_view.
get_dedicated_memory Возвращает выделенную память для килобайтов accelerator.
get_default_cpu_access_type Возвращает access_type по умолчанию для буферов, созданных на этом акселераторе.
get_default_view Возвращает объект по умолчанию accelerator_view , связанный с acceleratorобъектом .
get_description Возвращает краткое описание accelerator устройства.
get_device_path Возвращает путь устройства.
get_has_display Определяет, подключен ли он accelerator к экрану.
get_is_debug Определяет, включен ли accelerator уровень DEBUG для обширных отчетов об ошибках.
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 Задает access_typeЦП по умолчанию для массивов и неявных выделений памяти, сделанных для этогоaccelerator.

Открытые операторы

Имя Описание
оператор!= Сравнивает этот accelerator объект с другим и возвращает false , если они одинаковы; в противном случае возвращается true.
operator= Копирует содержимое указанного accelerator объекта в этот объект.
operator== Сравнивает этот accelerator объект с другим и возвращает true , если они одинаковы; в противном случае возвращается false.

Открытые члены данных

Имя Описание
cpu_accelerator Возвращает строковую константу для ЦП accelerator.
dedicated_memory Возвращает выделенную память для acceleratorкилобайтов.
default_accelerator Возвращает строковую константу по умолчанию accelerator.
default_cpu_access_type Возвращает или задает access_typeЦП по умолчанию для массивов и неявных выделений памяти, сделанных для этогоaccelerator.
default_view Возвращает объект по умолчанию accelerator_view , связанный с объектом accelerator.
описание Возвращает краткое описание accelerator устройства.
device_path Возвращает путь устройства.
direct3d_ref Возвращает строковую константу для ссылки acceleratorDirect3D.
direct3d_warp Возвращает строку константы для объекта, который можно использовать для выполнения кода C++ AMP на accelerator многоядерных ЦП, использующих расширения SIMD потоковой передачи (SSE).
has_display Возвращает логическое значение, указывающее, подключен ли он accelerator к экрану.
is_debug Указывает, включен ли accelerator уровень DEBUG для обширных отчетов об ошибках.
is_emulated Указывает, эмулируется ли эмулированный accelerator объект.
supports_cpu_shared_memory Указывает, поддерживает ли accelerator общая память.
supports_double_precision Указывает, поддерживает ли ускоритель математику двойной точности.
supports_limited_double_precision Указывает, имеет ли акселератор ограниченную поддержку математики двойной точности.
version Возвращает версию acceleratorобъекта .

Иерархия наследования

accelerator

Замечания

Акселератор — это аппаратная возможность, оптимизированная для параллельных вычислений данных. Акселератор часто является дискретным GPU, но он также может быть виртуальной сущностью на стороне узла, например устройством DirectX REF, WARP (устройством на стороне ЦП, которое ускоряется с помощью инструкций SSE) или самой ЦП.

Объект можно создать accelerator , перечислив доступные устройства или получив устройство по умолчанию, эталонное устройство или устройство WARP.

Требования

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

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

~акселератор

Уничтожает accelerator объект.

~accelerator();

Возвращаемое значение

Ускоритель

Инициализирует новый экземпляр класса акселератора.

accelerator();

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

accelerator(const accelerator& _Other);

Параметры

_Device_path
Путь физического устройства.

_Other
Акселератор для копирования.

cpu_accelerator

Возвращает строковую константу для акселератора ЦП.

static const wchar_t cpu_accelerator[];

create_view

Создает и возвращает accelerator_view объект в этом акселераторе с помощью указанного режима очереди. Если режим очереди не указан, новое accelerator_view использует режим очереди queuing_mode::интерпретация очереди.

accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);

Параметры

qmode
Режим очереди.

Возвращаемое значение

Новый accelerator_view объект в этом акселераторе с помощью указанного режима очереди.

dedicated_memory

Возвращает выделенную память для acceleratorкилобайтов.

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

default_accelerator

Возвращает строковую константу по умолчанию accelerator.

static const wchar_t default_accelerator[];

default_cpu_access_type

Access_type ЦП по умолчанию для массивов и неявных выделений acceleratorпамяти.

__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;

описание

Возвращает краткое описание 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 выполнения кода C++ AMP на многоядерных ЦП с помощью расширений SSE потоковой передачи SIMD.

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 приводит к accelerator_view целевого accelerator_view для автоматического выбора ядра parallel_for_each среды выполнения. В других целях accelerator_view, возвращаемые этим методом, совпадают с accelerator_view по умолчанию акселератора по умолчанию.

static accelerator_view __cdecl get_auto_selection_view();

Возвращаемое значение

Автоматическое выделение accelerator_view.

get_dedicated_memory

Возвращает выделенную память для килобайтов accelerator.

size_t get_dedicated_memory() const;

Возвращаемое значение

Выделенная память для килобайтов accelerator.

get_default_cpu_access_type

Возвращает access_type ЦП по умолчанию для буферов, созданных на этом акселераторе.

access_type get_default_cpu_access_type() const;

Возвращаемое значение

Access_type ЦП по умолчанию для буферов, созданных на этом акселераторе.

get_default_view

Возвращает объект по умолчанию accelerator_view , связанный с acceleratorобъектом .

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;

Возвращаемое значение

trueaccelerator Значение , falseесли может выводиться на экран; в противном случае .

get_is_debug

Определяет, включен ли accelerator уровень DEBUG для обширных отчетов об ошибках.

bool get_is_debug() const;

Возвращаемое значение

trueaccelerator Значение , если уровень DEBUG включен для расширенного создания отчетов об ошибках. В противном случае — false.

get_is_emulated

Определяет, эмулируется ли эмулированный accelerator объект.

bool get_is_emulated() const;

Возвращаемое значение

true Значение accelerator . В противном случае — false.

get_supports_cpu_shared_memory

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

bool get_supports_cpu_shared_memory() const;

Возвращаемое значение

true Значение , если акселератор поддерживает общую память ЦП; falseв противном случае .

get_supports_double_precision

Возвращает логическое значение, указывающее, поддерживает ли акселератор двойную точность математики, включая сплавленное умножение (FMA), деление, взаимное и приведение между int и double

bool get_supports_double_precision() const;

Возвращаемое значение

true Значение , если акселератор поддерживает математику двойной точности; falseв противном случае .

get_supports_limited_double_precision

Возвращает логическое значение, указывающее, имеет ли акселератор ограниченную поддержку математики двойной точности. Если акселератор имеет только ограниченную поддержку, то выплавленное умножение (FMA), деление, взаимное приведение и приведение между int и double не поддерживаются.

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 уровень DEBUG для обширной отчетности об ошибках.

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

is_emulated

Возвращает логическое значение, указывающее, эмулируется ли эмулированный accelerator объект.

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

оператор!=

Сравнивает этот accelerator объект с другим и возвращает false , если они одинаковы; в противном случае возвращается true.

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

Параметры

_Other
Объект accelerator для сравнения с этим.

Возвращаемое значение

falseЗначение , trueесли два accelerator объекта одинаковы; в противном случае .

operator=

Копирует содержимое указанного accelerator объекта в этот объект.

accelerator& operator= (const accelerator& _Other);

Параметры

_Other
Объект accelerator , из который нужно скопировать.

Возвращаемое значение

Ссылка на этот accelerator объект.

operator==

Сравнивает этот accelerator объект с другим и возвращает true , если они одинаковы; в противном случае возвращается false.

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

Параметры

_Other
Объект accelerator для сравнения с этим.

Возвращаемое значение

trueЗначение , falseесли другой accelerator объект совпадает с этим accelerator объектом; в противном случае .

set_default

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

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

Параметры

_Путь
Путь к акселератору.

Возвращаемое значение

true Если вызов выполнен успешно при установке акселератора по умолчанию. В противном случае — false.

set_default_cpu_access_type

Задайте 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
Access_type ЦП по умолчанию для выделения памяти массива или array_view на этом акселераторе.

Возвращаемое значение

Логическое значение, указывающее, был ли 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), деление, взаимное приведение и приведение между int и double не поддерживаются.

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

версия

Возвращает версию acceleratorобъекта .

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

См. также

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