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;