Класс 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 | Возвращает строковую константу для ссылки accelerator Direct3D. |
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;
Возвращаемое значение
true
accelerator
Значение , false
если может выводиться на экран; в противном случае .
get_is_debug
Определяет, включен ли accelerator
уровень DEBUG для обширных отчетов об ошибках.
bool get_is_debug() const;
Возвращаемое значение
true
accelerator
Значение , если уровень DEBUG включен для расширенного создания отчетов об ошибках. В противном случае — false
.
get_is_emulated
Определяет, эмулируется ли эмулированный accelerator
объект.
bool get_is_emulated() const;
Возвращаемое значение
true
Значение 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;