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, true
es .
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;