Compartir por


Acelerador (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 accelerator objetos 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 para el accelerator, en kilobytes.
get_default_cpu_access_type Devuelve el access_type predeterminado de los búferes creados en este acelerador.
get_default_view Devuelve el objeto accelerator_view predeterminado asociado con el accelerator.
descripcion_obtener Devuelve una breve descripción del dispositivo accelerator.
get_device_path Devuelve la ruta de acceso del dispositivo.
get_has_display Determina si el accelerator está conectado a una pantalla.
get_is_debug Determina si el accelerator tiene habilitada la capa DEBUG para información detallada de errores.
get_is_emulated Determina si el accelerator se ha emulado.
get_supports_cpu_shared_memory Determina si el accelerator admite la memoria compartida.
get_supports_double_precision Determina si el accelerator está asociado a una pantalla.
get_supports_limited_double_precision Determina si el accelerator tiene soporte limitado para 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 tipo de acceso de CPU predeterminado para arreglos y asignaciones de memoria implícitas realizadas en este accelerator.

Operadores públicos

Nombre Descripción
operator!= Compara este accelerator objeto con otro y devuelve false si son iguales; en caso contrario, devuelve true.
operator= Copia el contenido del objeto especificado accelerator en este objeto.
operator== Compara este accelerator objeto 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 la variable de la CPU accelerator.
dedicated_memory Obtiene la memoria dedicada para el accelerator, en kilobytes.
default_accelerator Obtiene una constante de cadena de texto para el valor predeterminado accelerator.
default_cpu_access_type Obtiene o establece el access_type de CPU predeterminado 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 referencia accelerator de Direct3D.
direct3d_warp Obtiene la constante de cadena para un objeto accelerator que puede usar para ejecutar código C++ AMP en CPUs multinúcleo que utilizan extensiones SIMD de streaming (SSE).
has_display Obtiene un valor booleano que indica si el 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 el accelerator está emulado.
soporta_memoria_compartida_cpu Indica si el accelerator admite la memoria compartida.
soporte_precision_doble 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.
versión Obtiene la versión del 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.

Puedes construir un objeto accelerator enumerando los dispositivos disponibles, o obteniendo el dispositivo predeterminado, el dispositivo de referencia o el dispositivo WARP.

Requisitos

Encabezado: amprt.h

Espacio de nombres: Concurrencia

~acelerador

Destruye el objeto accelerator.

~accelerator();

Valor devuelto

acelerador

Inicializa una nueva instancia de la clase acelerador.

accelerator();

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

accelerator(const accelerator& _Other);

Parámetros

_Device_path
Ruta de acceso del dispositivo físico.

_Other
El acelerador para copiar.

acelerador_de_CPU

Obtiene una constante de cadena del acelerador de la CPU.

static const wchar_t cpu_accelerator[];

crear_vista

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

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.

memoria dedicada

Obtiene la memoria dedicada para el accelerator, en kilobytes.

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

acelerador_predeterminado

Obtiene una constante de cadena para el valor predeterminado accelerator.

static const wchar_t default_accelerator[];

tipo_de_acceso_a_la_cpu_predeterminado

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;

vista_predeterminada

Obtiene la vista de acelerador predeterminada asociada con el 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;

ruta_del_dispositivo

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 que puede usar para ejecutar su código C++ AMP en CPUs multinúcleo 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

vista_selección_automática_obtener

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

Selección automática de accelerator_view.

get_dedicated_memory

Devuelve la memoria dedicada para accelerator, en kilobytes.

size_t get_dedicated_memory() const;

Valor devuelto

Memoria dedicada para el accelerator, en kilobytes.

get_default_cpu_access_type

Obtiene el tipo de acceso de CPU predeterminado para los búferes creados en este acelerador.

access_type get_default_cpu_access_type() const;

Valor devuelto

El valor predeterminado del access_type de CPU para los búferes creados en este acelerador.

get_default_view

Devuelve el objeto predeterminado accelerator_view asociado con el accelerator.

accelerator_view get_default_view() const;

Valor devuelto

El objeto accelerator_view predeterminado que está 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 el accelerator puede enviar una señal a una pantalla.

bool get_has_display() const;

Valor devuelto

true si el accelerator puede generar salida a una pantalla; en caso contrario, false.

get_is_debug

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

bool get_is_debug() const;

Valor devuelto

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

get_is_emulated (obtener_si_se_emula)

Determina si el accelerator está emulado.

bool get_is_emulated() const;

Valor devuelto

true si el accelerator está emulado. En caso contrario, false.

get_supports_memoria_compartida_cpu

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

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

obtener_admite_doble_precisión

Devuelve un valor booleano que indica si el acelerador admite cálculos matemáticos de doble precisión, incluidas las operaciones de suma y multiplicación fusionadas (FMA), la división, el recíproco 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 ofrece soporte limitado, entonces no se admitirán las operaciones de multiplicación y suma 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.

obtener_versión

Devuelve la versión del accelerator.

unsigned int get_version() const;

Valor devuelto

La versión del accelerator.

tiene_pantalla

Obtiene un valor Booleano que indica si accelerator puede enviar salida a una pantalla.

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

is_debug

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

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

es_emulado

Obtiene un valor booleano que indica si el accelerator está emulado.

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

operator!=

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

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

Parámetros

_Other
El objeto accelerator para comparar con este.

Valor devuelto

false es si los dos acelerador objetos son iguales; de lo contrario, true es.

operador =

Copia el contenido del objeto especificado accelerator en este objeto.

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 accelerator objeto 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

_Ruta
Ruta de acceso al acelerador.

Valor devuelto

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

establecer_tipo_de_acceso_predeterminado_para_cpu

Establezca el tipo de acceso predeterminado de la cpu para los arreglos creados en este acelerador o para las asignaciones de memoria implícitas como parte de las vista_de_arreglos 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 tipo de acceso CPU predeterminado que se usará para las asignaciones de memoria de array o array_view en este acelerador.

Valor devuelto

Un valor booleano que indica si el tipo de acceso predeterminado de la CPU para el acelerador se ha establecido correctamente.

admite memoria compartida de cpu

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;

soporta_doble_precisión

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;

admite_precision_doble_limitada

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 ofrece soporte limitado, entonces no se admitirán las operaciones de multiplicación y suma 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;

Versión

Obtiene la versión del accelerator.

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

Consulte también

Espacio de nombres Concurrency (C++ AMP)