Partilhar via


Classe accelerator

Um acelerador é uma funcionalidade de hardware otimizada para computação paralela de dados. Um acelerador pode ser um dispositivo anexado a um barramento PCIe (como uma GPU) ou pode ser um conjunto de instruções estendido na CPU principal.

Sintaxe

class accelerator;

Membros

Construtores públicos

Nome Descrição
accelerator Constructor Inicializa uma nova instância da classe accelerator.
~accelerator Destructor Destrói o objeto accelerator.

Métodos públicos

Nome Descrição
create_view Cria e retorna um objeto accelerator_view neste acelerador.
get_all Retorna um vetor de objetos accelerator que representam todos os aceleradores disponíveis.
get_auto_selection_view Retorna a seleção automática accelerator_view.
get_dedicated_memory Retorna a memória dedicada para o accelerator em quilobytes.
get_default_cpu_access_type Retorna o access_type padrão para buffers criados nesse acelerador.
get_default_view Retorna o objeto accelerator_view padrão associado ao accelerator.
get_description Retorna uma descrição breve do dispositivo accelerator.
get_device_path Retorna o caminho do dispositivo.
get_has_display Determina se accelerator está anexado a uma exibição.
get_is_debug Determina se o accelerator tem a camada DEBUG habilitada para relatórios de erros extensivos.
get_is_emulated Determina se o accelerator é emulado.
get_supports_cpu_shared_memory Determina se o accelerator possui suporte à memória compartilhada
get_supports_double_precision Determina se accelerator está anexado a uma exibição.
get_supports_limited_double_precision Determina se o accelerator possui suporte limitado para matemática de precisão dupla.
get_version Retorna a versão do accelerator.
set_default Retorna o caminho do acelerador padrão.
set_default_cpu_access_type Define o access_type de CPU padrão para matrizes e alocações de memória implícitas feitas nesse accelerator.

Operadores públicos

Nome Descrição
operator!= Compara esse objeto accelerator com outro e retorna false se forem iguais; caso contrário, retornará true.
operator= Copia o conteúdo do objeto accelerator especificado para este objeto.
operator== Compara esse objeto accelerator com outro e retorna true se forem iguais; caso contrário, retornará false.

Membros de Dados Públicos

Nome Descrição
cpu_accelerator Obtém uma constante de cadeia de caracteres para a CPU accelerator.
dedicated_memory Obtém a memória dedicada para o accelerator em quilobytes.
default_accelerator Obtém uma constante de cadeia de caracteres para o accelerator padrão.
default_cpu_access_type Obtém ou define o access_type de CPU padrão para matrizes e alocações de memória implícitas feitas nesse accelerator.
default_view Obtém o objeto accelerator_view padrão associado à accelerator.
descrição Obtém uma breve descrição do dispositivo accelerator.
device_path Obtém o caminho do dispositivo.
direct3d_ref Obtém uma constante de cadeia de caracteres para um accelerator de referência Direct3D.
direct3d_warp Obtém a constante de cadeia de caracteres para um objeto accelerator que você pode usar para executar código C++ AMP em CPUs de vários núcleos que usam SSE (Extensões SIMD de Streaming).
has_display Obtém um valor booliano que indica se accelerator está anexado a uma exibição.
is_debug Indica se o accelerator tem a camada DEBUG habilitada para relatórios de erros extensivos.
is_emulated Indica se accelerator é emulado.
supports_cpu_shared_memory Indica se o accelerator possui suporte à memória compartilhada.
supports_double_precision Indica se o acelerador dá suporte à matemática de precisão dupla.
supports_limited_double_precision Indica se o acelerador possui suporte ilimitado à matemática de precisão dupla.
version Obtém a versão do accelerator.

Hierarquia de herança

accelerator

Comentários

Um acelerador é uma funcionalidade de hardware otimizada para computação paralela de dados. Um acelerador geralmente é uma GPU discreta, mas também pode ser uma entidade virtual do lado do host, como um dispositivo REF DirectX, um WARP (um dispositivo do lado da CPU que é acelerado por meio de instruções SSE) ou a própria CPU.

Você pode construir um objeto accelerator enumerando os dispositivos disponíveis ou obtendo o dispositivo padrão, o dispositivo de referência ou o dispositivo WARP.

Requisitos

Cabeçalho: amprt.h

Namespace: Simultaneidade

~accelerator

Destrói o objeto accelerator.

~accelerator();

Valor de retorno

acelerador

Inicializa uma nova instância da classe accelerator.

accelerator();

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

accelerator(const accelerator& _Other);

Parâmetros

_Device_path
O caminho do dispositivo físico.

_Other
O acelerador a ser copiado.

cpu_accelerator

Obtém uma constante de cadeia de caracteres para o acelerador de CPU.

static const wchar_t cpu_accelerator[];

create_view

Cria e retorna um objeto accelerator_view nesse acelerador usando o modo de enfileiramento especificado. Quando o modo de enfileiramento não é especificado, o novo accelerator_view usa o modo de enfileiramento queuing_mode::immediate.

accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);

Parâmetros

qmode
O modo de enfileiramento.

Valor de retorno

Um novo objeto accelerator_view nesse acelerador usando o modo de enfileiramento especificado.

dedicated_memory

Obtém a memória dedicada para o accelerator em quilobytes.

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

default_accelerator

Obtém uma constante de cadeia de caracteres para o accelerator padrão.

static const wchar_t default_accelerator[];

default_cpu_access_type

O access_type de CPU padrão para matrizes e alocações de memória implícitas feitas nesse accelerator.

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

default_view

Obtém a exibição do acelerador padrão associada ao accelerator.

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

descrição

Obtém uma breve descrição do dispositivo accelerator.

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

device_path

Obtém o caminho do acelerador. O caminho é exclusivo no sistema.

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

direct3d_ref

Obtém uma constante de cadeia de caracteres para um acelerador de referência Direct3D.

static const wchar_t direct3d_ref[];

direct3d_warp

Obtém a constante de cadeia de caracteres para um objeto accelerator que você pode usar para executar seu código C++ AMP em CPUs de vários núcleos que usem SSE (Extensões SIMD de Streaming).

static const wchar_t direct3d_warp[];

get_all

Retorna um vetor de objetos accelerator que representam todos os aceleradores disponíveis.

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

Valor de retorno

O vetor de aceleradores disponíveis

get_auto_selection_view

Retorna o accelerator_view de seleção automática que, quando especificado como o destino parallel_for_each, resulta no accelerator_view de destino para executar o kernel parallel_for_each a ser selecionado automaticamente pelo runtime. Para todas as outras finalidades, o accelerator_view retornado por esse método é o mesmo que o accelerator_view padrão do acelerador padrão

static accelerator_view __cdecl get_auto_selection_view();

Valor de retorno

A seleção automática do accelerator_view.

get_dedicated_memory

Retorna a memória dedicada para o accelerator em quilobytes.

size_t get_dedicated_memory() const;

Valor de retorno

A memória dedicada para o accelerator em quilobytes.

get_default_cpu_access_type

Obtém o access_type da CPU padrão para buffers criados nesse acelerador

access_type get_default_cpu_access_type() const;

Valor de retorno

O access_type de CPU padrão para buffers criados nesse acelerador.

get_default_view

Retorna o objeto accelerator_view padrão associado ao accelerator.

accelerator_view get_default_view() const;

Valor de retorno

O objeto accelerator_view padrão associado ao accelerator.

get_description

Retorna uma descrição breve do dispositivo accelerator.

std::wstring get_description() const;

Valor de retorno

Uma breve descrição do dispositivo accelerator.

get_device_path

Retorna o caminho do acelerador. O caminho é exclusivo no sistema.

std::wstring get_device_path() const;

Valor de retorno

O caminho da instância do dispositivo exclusivo em todo o sistema.

get_has_display

Retorna um valor booliano que indica se o accelerator pode gerar saída para uma exibição.

bool get_has_display() const;

Valor de retorno

true se accelerator puder gerar saída para uma exibição; caso contrário, false.

get_is_debug

Determina se o accelerator tem a camada DEBUG habilitada para relatórios de erros extensivos.

bool get_is_debug() const;

Valor de retorno

true se accelerator tiver a camada DEBUG habilitada para relatórios de erros extensivos. Caso contrário, false.

get_is_emulated

Determina se o accelerator é emulado.

bool get_is_emulated() const;

Valor de retorno

true se o accelerator for emulado. Caso contrário, false.

get_supports_cpu_shared_memory

Retorna um valor booliano que indica se o acelerador dá suporte à memória acessível tanto pelo acelerador quanto pela CPU.

bool get_supports_cpu_shared_memory() const;

Valor de retorno

true se o acelerador der suporte à memória compartilhada da CPU; caso contrário, false.

get_supports_double_precision

Retorna um valor booliano que indica se o acelerador dá suporte à matemática de precisão dupla, incluindo adição e multiplicação fundida (FMA), divisão, recíproca e conversão entre int e double

bool get_supports_double_precision() const;

Valor de retorno

true se o acelerador der suporte à matemática de precisão dupla; caso contrário, false.

get_supports_limited_double_precision

Retorna um valor booliano que indica se o acelerador possui suporte ilimitado à matemática de precisão dupla. Se o acelerador tiver apenas suporte limitado, então FMA (adição e multiplicação fundida), divisão, recíproco e conversão entre int e double não terão suporte.

bool get_supports_limited_double_precision() const;

Valor de retorno

true se o acelerador possuir suporte ilimitado à matemática de precisão dupla; caso contrário, false.

get_version

Retorna a versão do accelerator.

unsigned int get_version() const;

Valor de retorno

A versão do accelerator.

has_display

Obtém um valor booliano que indica se o accelerator pode gerar saída para uma exibição.

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

is_debug

Obtém um valor booliano que indica se o accelerator tem a camada DEBUG habilitada para relatórios de erros extensivos.

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

is_emulated

Obtém um valor booliano que indica se o accelerator é emulado.

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

operator!=

Compara esse objeto accelerator com outro e retorna false se forem iguais; caso contrário, retornará true.

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

Parâmetros

_Other
O objeto accelerator a ser comparado com este.

Valor de retorno

false se os dois objetos accelerator forem iguais, caso contrário, true.

operator=

Copia o conteúdo do objeto accelerator especificado para este objeto.

accelerator& operator= (const accelerator& _Other);

Parâmetros

_Other
O objeto accelerator do qual copiar.

Valor de retorno

Uma referência a esse objeto accelerator.

operator==

Compara esse objeto accelerator com outro e retorna true se forem iguais; caso contrário, retornará false.

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

Parâmetros

_Other
O objeto accelerator a ser comparado com este.

Valor de retorno

true se o outro objeto accelerator for igual a este objeto accelerator; caso contrário, false.

set_default

Define o acelerador padrão a ser usado para qualquer operação que use implicitamente o acelerador padrão. Esse método só terá êxito se o acelerador padrão selecionado pelo runtime ainda não tiver sido usado em uma operação que usa implicitamente o acelerador padrão

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

Parâmetros

_Path
O caminho para o acelerador.

Valor de retorno

true se a chamada for bem-sucedida na configuração do acelerador padrão. Caso contrário, false.

set_default_cpu_access_type

Define o access_type de CPU padrão para matrizes criadas nesse acelerador ou para alocações de memória implícitas como parte de array_views acessados nesse acelerador. Esse método só terá êxito se o default_cpu_access_type do acelerador ainda não tiver sido substituído por uma chamada anterior a esse método e o default_cpu_access_type selecionado pelo runtime para esse acelerador ainda não tiver sido usado para alocar uma matriz ou para uma alocação de memória implícita com suporte a um array_view acessado nesse acelerador.

bool set_default_cpu_access_type(access_type _Default_cpu_access_type);

Parâmetros

_Default_cpu_access_type
O access_type de CPU padrão a ser usado para alocações de memória de matriz/array_view nesse acelerador.

Valor de retorno

Um valor booliano que indica se o access_type de CPU padrão para o acelerador foi definido com êxito.

supports_cpu_shared_memory

Obtém um valor booliano que indica se o accelerator dá suporte à memória compartilhada.

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

supports_double_precision

Obtém um valor booliano que indica se o acelerador dá suporte à matemática de precisão dupla.

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

supports_limited_double_precision

Obtém um valor booliano que indica se o acelerador possui suporte ilimitado à matemática de precisão dupla. Se o acelerador tiver apenas suporte limitado, então FMA (adição e multiplicação fundida), divisão, recíproco e conversão entre int e double não terão suporte.

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

version

Obtém a versão do accelerator.

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

Confira também

Namespace de simultaneidade (C++ AMP)