accelerator (Clase)

Un acelerador es una funcionalidad de hardware optimizada para el procesamiento de datos en paralelo. Un acelerador puede ser un dispositivo conectado a un bus PCIe (por ejemplo, un procesador GPU) o puede ser un conjunto de instrucciones extendidas en la CPU principal.

Sintaxis

class accelerator;

Miembros

Constructores públicos

Nombre Descripción
Constructor de accelerator Inicializa una nueva instancia de la clase accelerator.
Destructor de ~accelerator Destruye el objeto accelerator.

Métodos públicos

Nombre Descripción
create_view Crea y devuelve un objeto accelerator_view en este acelerador.
get_all Devuelve un vector de objetos accelerator que representan todos los aceleradores disponibles.
get_auto_selection_view Devuelve la selección automática accelerator_view.
get_dedicated_memory Devuelve la memoria dedicada de accelerator, en kilobytes.
get_default_cpu_access_type Devuelve el valor de access_type predeterminado de los búferes creados en este acelerador.
get_default_view Devuelve el objeto predeterminado accelerator_view asociado a accelerator.
get_description Devuelve una breve descripción del dispositivo accelerator.
get_device_path Devuelve la ruta de acceso del dispositivo.
get_has_display Determina si accelerator está asociado a una pantalla.
get_is_debug Determina si accelerator tiene habilitada la capa DEBUG para informes extensos de errores.
get_is_emulated Determina si se ha emulado accelerator.
get_supports_cpu_shared_memory Determina si accelerator admite la memoria compartida.
get_supports_double_precision Determina si accelerator está asociado a una pantalla.
get_supports_limited_double_precision Determina si accelerator tiene compatibilidad limitada con cálculos matemáticos de doble precisión.
get_version Devuelve la versión de accelerator.
set_default Devuelve la ruta de acceso del acelerador predeterminado.
set_default_cpu_access_type Establece el access_type predeterminado de la CPU para matrices y asignaciones de memoria implícitas realizadas en este accelerator.

Operadores públicos

Nombre Descripción
operator!= Compara este objeto accelerator con otro y devuelve false si son iguales; en caso contrario, devuelve true.
operator= Copia el contenido del objeto accelerator especificado en este.
operator== Compara este objeto accelerator con otro y devuelve true si son iguales; en caso contrario, devuelve false.

Miembros de datos públicos

Nombre Descripción
cpu_accelerator Obtiene una constante de cadena para accelerator de la CPU.
dedicated_memory Obtiene la memoria dedicada de accelerator, en kilobytes.
default_accelerator Obtiene una constante de cadena para el valor predeterminado accelerator.
default_cpu_access_type Obtiene o establece el access_type predeterminado de la CPU para matrices y asignaciones de memoria implícitas realizadas en este accelerator.
default_view Obtiene el objeto predeterminado accelerator_view asociado a accelerator.
descripción Obtiene una breve descripción del dispositivo accelerator.
device_path Obtiene la ruta de acceso del dispositivo.
direct3d_ref Obtiene una constante de cadena para una clase accelerator de referencia de Direct3D.
direct3d_warp Obtiene la constante de cadena de un objeto accelerator que puede usar para ejecutar código de C++ AMP en CPU de varios núcleos que usan extensiones SIMD de streaming (SSE).
has_display Obtiene un valor booleano que indica si accelerator está asociado a una pantalla.
is_debug Indica si accelerator tiene habilitada la capa DEBUG para informes extensos de errores.
is_emulated Indica si se ha emulado accelerator.
supports_cpu_shared_memory Indica si accelerator admite la memoria compartida.
supports_double_precision Indica si el acelerador admite cálculos matemáticos de doble precisión.
supports_limited_double_precision Indica si el acelerador admite de forma limitada cálculos matemáticos de doble precisión.
version Obtiene la versión de accelerator.

Jerarquía de herencia

accelerator

Comentarios

Un acelerador es una funcionalidad de hardware optimizada para el procesamiento de datos en paralelo. Un acelerador suele ser un procesador GPU discreto, pero también puede ser una entidad virtual en el lado host, como un dispositivo DirectX REF, un WARP (un dispositivo en el lado de la CPU que se acelera mediante instrucciones de SSE) o la propia CPU.

Para construir un objeto accelerator, enumere los dispositivos disponibles u obtenga el dispositivo predeterminado, el dispositivo de referencia o el dispositivo WARP.

Requisitos

Encabezado: amprt.h

Espacio de nombres: simultaneidad

~accelerator

Destruye el objeto accelerator.

~accelerator();

Valor devuelto

acelerador

Inicializa una nueva instancia de la clase accelerator.

accelerator();

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

accelerator(const accelerator& _Other);

Parámetros

_Device_path
Ruta de acceso del dispositivo físico.

_Other
Acelerador que se va a copiar.

cpu_accelerator

Obtiene una constante de cadena del acelerador de la CPU.

static const wchar_t cpu_accelerator[];

create_view

Crea y devuelve un objeto accelerator_view en este acelerador mediante el modo de puesta en cola especificado. Si no se especifica el modo de puesta en cola, el nuevo objeto accelerator_view usa el modo de puesta en cola queuing_mode::immediate.

accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);

Parámetros

qmode
Modo de puesta en cola.

Valor devuelto

Un nuevo objeto accelerator_view en este acelerador mediante el modo de puesta en cola especificado.

dedicated_memory

Obtiene la memoria dedicada de accelerator, en kilobytes.

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

default_accelerator

Obtiene una constante de cadena para el valor predeterminado accelerator.

static const wchar_t default_accelerator[];

default_cpu_access_type

El access_type predeterminado de la CPU para matrices y asignaciones de memoria implícitas realizadas en este accelerator.

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

default_view

Obtiene la vista de acelerador predeterminada asociada a accelerator.

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

descripción

Obtiene una breve descripción del dispositivo accelerator.

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

device_path

Obtiene la ruta de acceso del acelerador. La ruta de acceso es única en el sistema.

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

direct3d_ref

Obtiene una constante de cadena para un acelerador de referencia de Direct3D.

static const wchar_t direct3d_ref[];

direct3d_warp

Obtiene la constante de cadena de un objeto accelerator que puede usar para ejecutar código de C++ AMP en CPU de varios núcleos mediante extensiones SIMD de streaming (SSE).

static const wchar_t direct3d_warp[];

get_all

Devuelve un vector de objetos accelerator que representan todos los aceleradores disponibles.

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

Valor devuelto

Vector de aceleradores disponibles

get_auto_selection_view

Devuelve el objeto accelerator_view de selección automática, el cual cuando se especifica como destino de parallel_for_each da como resultado el objeto accelerator_view de destino para ejecutar el kernel de parallel_for_each que el entorno de ejecución va a seleccionar automáticamente. Para todos los demás fines, el objeto accelerator_view devuelto por este método es el mismo que el objeto accelerator_view predeterminado del acelerador predeterminado.

static accelerator_view __cdecl get_auto_selection_view();

Valor devuelto

Objeto accelerator_view de selección automática.

get_dedicated_memory

Devuelve la memoria dedicada de accelerator, en kilobytes.

size_t get_dedicated_memory() const;

Valor devuelto

Memoria dedicada de accelerator, en kilobytes.

get_default_cpu_access_type

Obtiene el valor predeterminado de access_type de la CPU de los búferes creados en este acelerador.

access_type get_default_cpu_access_type() const;

Valor devuelto

Valor predeterminado de access_type de la CPU de los búferes creados en este acelerador.

get_default_view

Devuelve el objeto predeterminado accelerator_view asociado a accelerator.

accelerator_view get_default_view() const;

Valor devuelto

Objeto predeterminado accelerator_view asociado a accelerator.

get_description

Devuelve una breve descripción del dispositivo accelerator.

std::wstring get_description() const;

Valor devuelto

Breve descripción del dispositivo accelerator.

get_device_path

Devuelve la ruta de acceso del acelerador. La ruta de acceso es única en el sistema.

std::wstring get_device_path() const;

Valor devuelto

Ruta de acceso única de la instancia del dispositivo en todo el sistema.

get_has_display

Devuelve un valor booleano que indica si accelerator puede generar una presentación.

bool get_has_display() const;

Valor devuelto

true si accelerator puede generar una presentación; en caso contrario, false.

get_is_debug

Determina si accelerator tiene habilitada la capa DEBUG para informes extensos de errores.

bool get_is_debug() const;

Valor devuelto

true si accelerator tiene habilitada la capa DEBUG para informes extensos de errores. En caso contrario, es false.

get_is_emulated

Determina si se ha emulado accelerator.

bool get_is_emulated() const;

Valor devuelto

true si se emula accelerator. En caso contrario, es false.

get_supports_cpu_shared_memory

Devuelve un valor booleano que indica si el acelerador admite una memoria accesible para el acelerador y la CPU.

bool get_supports_cpu_shared_memory() const;

Valor devuelto

true si el acelerador admite memoria compartida de CPU; de lo contrario, false.

get_supports_double_precision

Devuelve un valor booleano que indica si el acelerador admite cálculos matemáticos de doble precisión, incluida las operaciones de suma y multiplicación fusionadas (FMA), la división, la recíproca y la conversión entre int y double.

bool get_supports_double_precision() const;

Valor devuelto

true si el acelerador admite cálculos matemáticos de doble precisión; en caso contrario, false.

get_supports_limited_double_precision

Devuelve un valor booleano que indica si el acelerador admite de forma limitada cálculos matemáticos de doble precisión. Si el acelerador solo las admite de forma limitada, no se admitirán las operaciones de suma y multiplicación fusionadas (FMA), división, recíproca y la conversión entre int y double.

bool get_supports_limited_double_precision() const;

Valor devuelto

true si el acelerador admite de forma limitada cálculos matemáticos de doble precisión; en caso contrario, false.

get_version

Devuelve la versión de accelerator.

unsigned int get_version() const;

Valor devuelto

Versión de accelerator.

has_display

Obtiene un valor booleano que indica si accelerator puede generar una presentación.

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

is_debug

Obtiene un valor booleano que indica si el objeto accelerator tiene habilitada la capa DEBUG para realizar informes extensos de errores.

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

is_emulated

Obtiene un valor booleano que indica si se emula accelerator.

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

operator!=

Compara este objeto accelerator con otro y devuelve false si son iguales; en caso contrario, devuelve true.

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

Parámetros

_Other
Objeto accelerator que se va a comparar con este.

Valor devuelto

false es si los dos accelerator objetos son los mismos; de lo contrario, truees .

operator=

Copia el contenido del objeto accelerator especificado en este.

accelerator& operator= (const accelerator& _Other);

Parámetros

_Other
El objeto accelerator desde el que se va a copiar.

Valor devuelto

La referencia a este objeto accelerator.

operator==

Compara este objeto accelerator con otro y devuelve true si son iguales; en caso contrario, devuelve false.

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

Parámetros

_Other
Objeto accelerator que se va a comparar con este.

Valor devuelto

true si el otro objeto accelerator es el mismo que este objeto accelerator; en caso contrario, false.

set_default

Establece el acelerador predeterminado que se usará para cualquier operación que use implícitamente este acelerador. Este método solo se realiza correctamente si el acelerador predeterminado seleccionado del entorno de ejecución aún no se ha usado en una operación que use implícitamente dicho acelerador predeterminado.

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

Parámetros

_Path
Ruta de acceso al acelerador.

Valor devuelto

true si la llamada se realiza correctamente al establecer el acelerador predeterminado. En caso contrario, es false.

set_default_cpu_access_type

Establezca el access_type predeterminado de la CPU para las matrices creadas en este acelerador o para las asignaciones de memoria implícitas como parte de las array_views a las que se accede en este acelerador. Este método solo se realiza correctamente si el valor de default_cpu_access_type del acelerador no se ha invalidado mediante una llamada anterior a este método y el valor de default_cpu_access_type del entorno de ejecución seleccionado para este acelerador aún no se ha usado para asignar una matriz o una asignación de memoria implícita que respalde una array_view a la que se ha tenido acceso en este acelerador.

bool set_default_cpu_access_type(access_type _Default_cpu_access_type);

Parámetros

_Default_cpu_access_type
El access_type de la CPU predeterminado que se usará para las asignaciones de memoria de array o array_view en este acelerador.

Valor devuelto

Valor booleano que indica si el access_type predeterminado de la CPU del acelerador se ha establecido correctamente.

supports_cpu_shared_memory

Obtiene un valor booleano que indica si accelerator admite la memoria compartida.

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

supports_double_precision

Obtiene un valor booleano que indica si el acelerador admite cálculos matemáticos de doble precisión.

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

supports_limited_double_precision

Obtiene un valor booleano que indica si el acelerador admite de forma limitada cálculos matemáticos de doble precisión. Si el acelerador solo las admite de forma limitada, no se admitirán las operaciones de suma y multiplicación fusionadas (FMA), división, recíproca y la conversión entre int y double.

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

version

Obtiene la versión de accelerator.

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

Consulte también

Espacio de nombres de simultaneidad (C++ AMP)