Partilhar via


Classe array

Representa um contêiner de dados usado para mover dados a um acelerador.

template <
   typename _Value_type,
   int _Rank
>
friend class array;

Parâmetros

  • _Value_type
    O tipo de elemento dos dados.

  • _Rank
    A classificação da matriz.

Membros

Construtores Públicos

Nome

Descrição

Construtor array::array

Inicializa uma nova instância da classe array.

Destruidor array::~array

Destrói o objeto array.

Métodos Públicos

Nome

Descrição

Método array::copy_to

Copia o conteúdo da matriz em outra matriz.

Método array::data

Retorna um ponteiro para os dados brutos da array.

Método array::get_accelerator_view

Retorna o objeto accelerator_view que representa o local no qual a matriz está alocada. Esta propriedade pode ser acessada apenas no CPU.

Método array::get_associated_accelerator_view

Obtém o segundo objeto accelerator_view que é passado como um parâmetro quando um construtor de teste é chamado para instanciar o objeto matriz.

Método array::get_cpu_access_type

Retorna o access_type da matriz. Este método pode ser acessado apenas no CPU.

Método array::get_extent

Retorna o objeto extent da matriz.

Método array::reinterpret_as

Retorna uma matriz de uma dimensão que contém todos os elementos no objeto array.

Método array::section

Retorna uma seção do objeto matriz que está na fonte especificada e que, opcionalmente, tem a extensão especificada.

Método array::view_as

Retorna um objeto array_view que é construído a partir do objeto array.

Operadores Públicos

Nome

Descrição

Operador array::operator std::vector<_Value_type>

Usa copy(*this, vector) para converter implicitamente a matriz para um objeto std::vector .

Operador array::operator()

Retorna o valor do elemento que é especificado pelos parâmetros.

Operador array::operator[]

Retorna o elemento que está no índice especificado.

Operador array::operator=

Copia o conteúdo do objeto array especificado para esse outro.

Constantes públicas

Nome

Descrição

Constante array::rank

Armazena a classificação do array (matriz).

Membros de Dados Públicos

Nome

Descrição

Membro de dados array::accelerator_view

Obtém o objeto accelerator_view que representa o local onde a matriz está alocada. Esta propriedade pode ser acessada apenas no CPU.

Membro de dados array::associated_accelerator_view

Obtém o segundo objeto accelerator_view que é passado como um parâmetro quando um construtor de teste é chamado para instanciar o objeto matriz.

Membro de Dados array::cpu_access_type

Obtém access_type que representa como a CPU pode acessar o armazenamento da matriz.

Membro de dados array::extent

Obtém a extensão que define a forma da matriz.

Comentários

O tipo array<T,N> representa uma matriz dimensional N densa e regular (não denteada) que está localizada em um local específico, como um acelerador ou CPU. O tipo de dados dos elementos da matriz é T, que deve ser de um tipo que seja compatível com o acelerador de destino. Apesar da classificação da matriz, N, (é determinado estaticamente e é parte do tipo, a extensão da matriz é determinada em tempo de execução e expressa usando a classe extent<N>.

Uma matriz pode ter qualquer número de dimensões, embora algumas funcionalidades sejam especializadas para objetos array com dimensão um, dois e três. Se você omitir o argumento de dimensão, o padrão será 1.

Os dados de matriz são dispostos contiguamente na memória. Os elementos que diferem por um na dimensão menos significativa são adjacentes na memória.

Matrizes são logicamente consideradas tipos de valor, porque quando uma matriz é copiada a outra matriz, uma cópia profunda é executada. Duas matrizes nunca apontam para os mesmos dados.

O tipo array<T,N> é usado em vários cenários:

  • Como um recipiente de dados que pode ser usado nos cálculos em um acelerador.

  • Como um recipiente de dados para armazenar a memória do CPU host (que pode ser usado para copiar para e de outros arrays).

  • Como um objeto de teste para atuar como intermediário rápido em cópia de host em dispositivo.

Hierarquia de Herança

array

Requisitos

Cabeçalho: amp.h

Namespace: Simultaneidade

Consulte também

Referência

Namespace Concurrency (C++ AMP)