Compartilhar via


array_view classe

Representa uma visualização de N dimensões sobre os dados mantidos em outro contêiner.

template <
   typename _Value_type,
   int _Rank = 1
>
class array_view : public _Array_view_base<_Rank,sizeof(_Value_type)/sizeof(int)>;
                     
template <
   typename _Value_type,
   int _Rank                     
>
class array_view<const _Value_type, _Rank> : public _Array_view_base<_Rank,sizeof(_Value_type)/sizeof(int)>;

Parâmetros

  • _Value_type
    O tipo de dado dos elementos no objeto array_view .

  • _Rank
    A classificação do objeto array_view.

Membros

Hh305260.collapse_all(pt-br,VS.110).gifConstrutores Públicos

Nome

Descrição

Construtor de array_view::array_view

Inicializa uma nova instância da classe array_view.Não há construtor padrão para array<T,N>.Todos os construtores são restritos a serem executados somente na CPU e não podem ser executados em um destino Direct3D.

array_view:: ~ array_view destruidor

Destrói o objeto array_view.

Hh305260.collapse_all(pt-br,VS.110).gifMétodos Públicos

Nome

Descrição

Método de array_view::copy_to

Copia o conteúdo do objeto array_view ao destino especificado chamando copy(*this, dest).

Método de array_view::data

Retorna um ponteiro para os dados brutos do array_view.

Método de array_view::discard_data

Descarta os dados atuais subjacentes esta exibição.

Método de array_view::get_extent

Retorna o objeto extent do objeto array_view.

Método de array_view::Refresh

Notifica o objeto array_view que sua memória associada foi alterada fora da interface do array_view.Uma chamada para este método processa toda informação obsoleta em cache.

Método de array_view::reinterpret_as

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

Método de array_view::Section

Retorna uma subseção do objeto array_view que está na origem especificada e, opcionalmente, que tem a extensão especificada.

Método de array_view::Synchronize

Sincroniza qualquer modificação feita ao objeto array_view de volta ao seu dado da fonte.

Método array_view::synchronize_async

Sincroniza de forma assíncrona qualquer modificação feita ao objeto array_view de volta para o dado da fonte.

Método de array_view::view_as

Gera um objeto array_view de uma classificação diferente usando os dados desse objeto array_view.

Hh305260.collapse_all(pt-br,VS.110).gifOperadores Públicos

Nome

Descrição

Operador de array_view::Operator()

Retorna o valor do elemento que é especificado pelo(s) parâmetro(s).

[] de array_view::Operator operador

Retorna o elemento que é especificado pelos parâmetros.

array_view::Operator = operador

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

Hh305260.collapse_all(pt-br,VS.110).gifConstantes Públicas

Nome

Descrição

Constante de array_view::Rank

Armazena a classificação do objeto array_view.

Hh305260.collapse_all(pt-br,VS.110).gifMembros de Dados

Nome

Descrição

Membro de dados de array_view::Extent

Obtém o objeto extent que define a forma do objeto array_view.

Comentários

A classe array_view representa uma exibição dos dados que estão contidos em um objeto array ou em uma subseção de um objeto array.

Você pode acessar o objeto array_view onde os dados de origem estão localizados (localmente) ou em um acelerador diferente ou em um domínio de coerência (remotamente).Quando você acessa o objeto remotamente, exibições são copiadas e armazenadas em cache conforme necessário.Exceto pelos efeitos de cache automático, os objetos array_view têm um perfil de desempenho semelhante aos objetos array.Há pequena uma penalidade de desempenho quando você acessa os dados atravéz de visualizações.

Há três cenários de uso remotos:

  • Uma exibição de um ponteiro de memória do sistema é passada por meio de uma chamada parallel_for_each a um acelerador e acessada no acelerador.

  • Uma exibição de uma matriz localizada em um acelerador é passada por meio de uma chamada parallel_for_each para outro acelerador e acessada lá.

  • Uma exibição de uma matriz localizada em um acelerador é acessada na CPU.

Em qualquer um desses cenários, as visualizações de referência são copiadas pelo tempo de execução para o local remoto e, se modificadas por chamadas para o objeto array_view , são copiadas de volta para a localização local.O tempo de execução pode otimizar o processo de copiar as alterações de volta, pode copiar apenas os elementos alterados, ou pode copiar partes inalteradas também.Objetos array_view sobrepostos em uma fonte de dados não são garantidos para manter a integridade referencial em um local remoto.

Você deve sincronizar qualquer acesso multisegmentado à mesma fonte de dados.

O tempo de execução faz as seguintes garantias sobre o armazenamento em cache de dados de objetos array_view :

  • Todos os acessos bem sincronizados a um objeto array e a um objeto array_view nele na ordem do programa obedecem a uma série acontece-antes-da-relação.

  • Alias de todos os acessos bem sincronizados a objetos array_view sobrepostos no mesmo acelerador em um único objeto array são feitos pelo objeto array.Eles induzem um ocorre-antes-do-relacionamento total que obedece a ordem do programa.Não há armazenamento em cache.Se os objetos array_view estão sendo executados em aceleradores diferentes, a ordem de acesso é indefinida, criando uma condição de corrida.

Quando você cria um objeto array_view usando um ponteiro na memória do sistema, você deve alterar a exibição do objeto array_view somente atravéz do ponteiro array_view.Alternativamente, você deve chamar refresh()em um dos objetos array_view que estão anexados ao ponteiro do sistema, se a memória nativa subjacente é modificada diretamente, em vez de através do objeto array_view.Qualquer ação notifica ao objeto array_view que a memória nativa subjacente está modificada e que qualquer cópia localizada em um acelerador está desatualizada.Se você segue estas diretrizes, as visualizações baseadas em ponteiro são idênticas àquelas fornecidas para as exibições de matrizes de dados paralelos.

Hierarquia de Herança

_Array_view_shape

_Array_view_base

array_view

Requisitos

Cabeçalho: amp.h

Namespace: Concurrency

Consulte também

Referência

Namespace de simultaneidade (AMP C++)