Partilhar via


Classe do acelerador

Um acelerador é um recurso de hardware otimizado para computação paralela de dados. Um acelerador pode ser um dispositivo conectado 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
acelerador Construtor Inicializa uma nova instância da classe accelerator.
~acelerador Destruidor Destrói o accelerator objeto.

Métodos Públicos

Nome Descrição
create_view Cria e retorna um accelerator_view objeto neste acelerador.
obter_tudo Retorna um vetor de accelerator objetos que representam todos os aceleradores disponíveis.
get_auto_selection_view Devolve a seleção automática accelerator_view.
get_dedicated_memory Retorna a memória dedicada para o accelerator, em kilobytes.
get_default_cpu_access_type Retorna o access_type padrão para buffers criados neste acelerador.
get_default_view Retorna o objeto padrão accelerator_view associado ao accelerator.
get_description Retorna uma breve descrição do accelerator dispositivo.
get_device_path Retorna o caminho do dispositivo.
get_has_display Determina se accelerator está anexado a um ecrã.
get_is_debug Determina se a accelerator camada DEBUG está habilitada para relatórios de erros extensos.
get_is_emulated Determina se o accelerator é emulado.
get_supports_cpu_shared_memory Determina se o accelerator suporta memória compartilhada
get_supports_double_precision Determina se o accelerator está anexado a um ecrã.
get_supports_limited_double_precision Determina se o accelerator tem 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 neste accelerator.

Operadores Públicos

Nome Descrição
operator!= Compara este accelerator objeto com outro e retorna false se forem os mesmos, caso contrário, retorna true.
operador= Copia o conteúdo do objeto especificado accelerator para este.
operador== Compara este accelerator objeto com outro e retorna true se forem os mesmos, caso contrário, retorna 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 kilobytes.
default_accelerator Obtém uma constante de string para o padrão accelerator.
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 neste accelerator.
default_view Obtém o objeto padrão accelerator_view associado ao accelerator.
descrição Obtém uma breve descrição do accelerator dispositivo.
device_path Obtém o caminho do dispositivo.
direct3d_ref Obtém uma constante de cadeia de caracteres para uma referência Direct3D accelerator.
direct3d_warp Obtém a constante de cadeia de caracteres para um accelerator objeto que você pode usar para executar código AMP C++ em CPUs multi-core que usam Streaming SIMD Extensions (SSE).
has_display Obtém um valor booleano que indica se o accelerator está anexado a uma exibição.
is_debug Indica se a accelerator camada DEBUG está habilitada para relatórios de erros extensos.
is_emulated Indica se o accelerator é emulado.
suporta_memória_partilhada_da_CPU Indica se o accelerator suporta memória compartilhada.
suporta_dupla_precisão Indica se o acelerador suporta matemática de precisão dupla.
suporta precisão dupla limitada Indica se o acelerador tem suporte limitado para matemática de precisão dupla.
Versão Obtém a versão do accelerator.

Hierarquia de herança

accelerator

Observações

Um acelerador é um recurso de hardware otimizado 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 DirectX REF, 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 accelerator objeto enumerando os dispositivos disponíveis ou obtendo o dispositivo padrão, o dispositivo de referência ou o dispositivo WARP.

Requerimentos

Cabeçalho: amprt.h

Namespace: Concorrência

~acelerador

Destrói o accelerator objeto.

~accelerator();

Valor de retorno

tecla de atalho

Inicializa uma nova instância da classe aceleradora.

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 para copiar.

acelerador de CPU

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

static const wchar_t cpu_accelerator[];

create_view

Cria e retorna um objeto accelerator_view neste 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 neste acelerador, utilizando o modo de enfileiramento especificado.

memória dedicada

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

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

acelerador_padrão

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

static const wchar_t default_accelerator[];

tipo_de_acesso_cpu_padrão

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

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

default_view

Obtém a visualização aceleradora padrão associada ao accelerator.

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

descrição

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

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

caminho_do_dispositivo

Obtém o caminho do acelerador. O caminho é único 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 accelerator objeto que você pode usar para executar seu código AMP C++ em CPUs multi-core usando Streaming SIMD Extensions (SSE).

static const wchar_t direct3d_warp[];

get_all

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

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

Valor de retorno

O vetor de aceleradores disponíveis

obter_visão_de_seleção_automática

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 tempo de execução. Para todos os outros fins, 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 de accelerator_view.

obter_memória_dedicada

Retorna a memória dedicada para o accelerator, em kilobytes.

size_t get_dedicated_memory() const;

Valor de retorno

A memória dedicada para o accelerator, em kilobytes.

get_default_cpu_access_type

Obtém o tipo de acesso padrão da CPU para buffers criados neste acelerador

access_type get_default_cpu_access_type() const;

Valor de retorno

O access_type padrão da CPU para os buffers criados neste acelerador.

obter_visão_padrão

Retorna o objeto padrão accelerator_view associado ao accelerator.

accelerator_view get_default_view() const;

Valor de retorno

O objeto padrão accelerator_view associado ao accelerator.

get_description

Retorna uma breve descrição do accelerator dispositivo.

std::wstring get_description() const;

Valor de retorno

Uma breve descrição do accelerator dispositivo.

obter_caminho_dispositivo

Retorna o caminho do acelerador. O caminho é único no sistema.

std::wstring get_device_path() const;

Valor de retorno

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

get_has_display

Retorna um valor booleano que indica se a accelerator pode ser exibida.

bool get_has_display() const;

Valor de retorno

true se o accelerator puder enviar para um display; caso contrário, false.

get_is_debug

Determina se a accelerator camada DEBUG está habilitada para relatórios de erros extensos.

bool get_is_debug() const;

Valor de retorno

true se a accelerator camada DEBUG estiver 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 é emulado. Caso contrário, false.

get_supports_cpu_shared_memory (verificar se o sistema suporta memória compartilhada da CPU)

Retorna um valor booleano que indica se o acelerador suporta memória acessível pelo acelerador e pela CPU.

bool get_supports_cpu_shared_memory() const;

Valor de retorno

true se o acelerador suporta memória partilhada da CPU; caso contrário, false.

get_supports_double_precision

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

bool get_supports_double_precision() const;

Valor de retorno

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

get_supports_limited_double_precision

Retorna um valor booleano que indica se o acelerador tem suporte limitado para matemática de precisão dupla. Se o acelerador tiver apenas suporte limitado, então a adição de multiplicação fundida (FMA), divisão, recíproca e transmissão entre int e double não são suportadas.

bool get_supports_limited_double_precision() const;

Valor de retorno

true se o acelerador tiver suporte limitado para matemática de precisão dupla; caso contrário, false.

obter_versão

Retorna a versão do accelerator.

unsigned int get_version() const;

Valor de retorno

A versão do accelerator.

tem_ecrã

Obtém um valor booleano que indica se a accelerator pode produzir para uma exibição.

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

is_debug

Obtém um valor booleano que indica se a accelerator camada DEBUG está habilitada para relatórios de erros extensos.

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

is_emulated

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

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

operador!=

Compara este accelerator objeto com outro e retorna false se forem os mesmos, caso contrário, retorna 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 accelerator objetos forem os mesmos, caso contrário, true.

operador=

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

accelerator& operator= (const accelerator& _Other);

Parâmetros

_Other
O accelerator objeto do qual copiar.

Valor de retorno

Uma referência a este objeto accelerator.

Operador==

Compara este accelerator objeto com outro e retorna true se forem os mesmos, caso contrário, retorna 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 accelerator objeto for igual a este accelerator objeto, caso contrário, false.

definir_padrão

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 tempo de execução 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 definição do acelerador padrão. Caso contrário, false.

definir_tipo_de_acesso_cpu_padrão

Defina o tipo de acesso de CPU padrão para matrizes criadas neste acelerador ou para alocações implícitas de memória, como parte de "array_views" acedidos neste 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 para esse método e o tempo de execução selecionado default_cpu_access_type para esse acelerador ainda não tiver sido usado para alocar uma matriz ou para uma alocação de memória implícita que dê 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 tipo de acesso padrão da CPU a ser usado para alocações de memória de array/vista_de_array neste acelerador.

Valor de retorno

Um valor booleano que indica se o tipo de acesso de CPU padrão para o acelerador foi definido com êxito.

suporta_memória_partilhada_da_cpu

Obtém um valor booleano que indica se o accelerator suporta memória compartilhada.

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

suporta_precisão_dupla

Obtém um valor booleano que indica se o acelerador suporta matemática de precisão dupla.

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

suporta_precisão_dupla_limitada

Obtém um valor booleano que indica se o acelerador tem suporte limitado para matemática de precisão dupla. Se o acelerador tiver apenas suporte limitado, então a adição de multiplicação fundida (FMA), divisão, recíproca e transmissão entre int e double não são suportadas.

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

versão

Obtém a versão do accelerator.

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

Ver também

Namespace de Concorrência (C++ AMP)