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
Construtores Públicos
Nome |
Descrição |
---|---|
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. |
|
Destrói o objeto array_view. |
Métodos Públicos
Nome |
Descrição |
---|---|
Copia o conteúdo do objeto array_view ao destino especificado chamando copy(*this, dest). |
|
Retorna um ponteiro para os dados brutos do array_view. |
|
Descarta os dados atuais subjacentes esta exibição. |
|
Retorna o objeto extent do objeto array_view. |
|
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. |
|
Retorna uma matriz de uma dimensão que contém todos os elementos no objeto array_view. |
|
Retorna uma subseção do objeto array_view que está na origem especificada e, opcionalmente, que tem a extensão especificada. |
|
Sincroniza qualquer modificação feita ao objeto array_view de volta ao seu dado da fonte. |
|
Sincroniza de forma assíncrona qualquer modificação feita ao objeto array_view de volta para o dado da fonte. |
|
Gera um objeto array_view de uma classificação diferente usando os dados desse objeto array_view. |
Operadores Públicos
Nome |
Descrição |
---|---|
Retorna o valor do elemento que é especificado pelo(s) parâmetro(s). |
|
Retorna o elemento que é especificado pelos parâmetros. |
|
Copia o conteúdo do objeto array_view especificado para esse outro. |
Constantes Públicas
Nome |
Descrição |
---|---|
Armazena a classificação do objeto array_view. |
Membros de Dados
Nome |
Descrição |
---|---|
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