Condividi tramite


Classe array

Rappresenta un contenitore di dati utilizzato per spostare i dati in un acceleratore.

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

Parametri

  • _Value_type
    Il tipo di elemento dei dati.

  • _Rank
    Specifica il numero di dimensioni della matrice.

Membri

Costruttori pubblici

Nome

Descrizione

Costruttore array::array

Inizializza una nuova istanza della classe array.

Distruttore array::~array

Elimina l'oggetto array.

Metodi pubblici

Nome

Descrizione

Metodo array::copy_to

Copia il contenuto della matrice in un'altra matrice.

Metodo array::data

Restituisce un puntatore ai dati non elaborati dell' array.

Metodo array::get_accelerator_view

Restituisce l'oggetto accelerator_view che rappresenta la posizione in cui la matrice viene allocata. È possibile accedere a questa proprietà solo sulla CPU.

Metodo array::get_associated_accelerator_view

Ottiene il secondo oggetto accelerator_view passato come parametro quando un costruttore di gestione temporanea è chiamato per istanziare l'oggetto matrice.

Metodo array::get_cpu_access_type

Restituisce l'oggetto access_type della matrice. È possibile accedere a questo metodo solo sulla CPU.

Metodo array::get_extent

Restituisce l'oggetto extent della matrice.

Metodo array::reinterpret_as

Restituisce una matrice unidimensionale contenente tutti gli elementi dell'oggetto array.

Metodo array::section

Restituisce una sottosezione dell'oggetto array presente all'origine specificata e, facoltativamente, con l'extent specificato.

Metodo array::view_as

Restituisce un oggetto array_view che viene costruito dall'oggetto array.

Operatori pubblici

Nome

Descrizione

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

Utilizzare copy(*this, vector) per convertire in modo implicito la matrice in un oggetto std::vector.

Operatore array::operator()

Restituisce il valore dell'elemento specificato dai parametri.

Operatore array::operator[]

Restituisce l'elemento che corrisponde all'indice specificato.

Operatore array::operator=

Copia il contenuto dell'oggetto array specificato in questo oggetto.

Costanti pubbliche

Nome

Descrizione

Costante array::rank

Memorizza il rango della matrice.

Membri dati pubblici

Nome

Descrizione

Membro dati array::accelerator_view

Ottiene l'oggetto accelerator_view che rappresenta la posizione in cui la matrice viene allocata. È possibile accedere a questa proprietà solo sulla CPU.

Membro dati array::associated_accelerator_view

Ottiene il secondo oggetto accelerator_view passato come parametro quando un costruttore di gestione temporanea è chiamato per istanziare l'oggetto matrice.

Membro dati array::cpu_access_type

Ottiene access_type che rappresenta la modalità in cui la CPU può accedere all'archiviazione della matrice.

Membro dati array::extent

Ottiene l'extent che definisce la forma della matrice.

Note

Il tipo array<T,N> rappresenta una matrice densa e regolare (non matrice di matrice) N-matrice dimensionale che si trova in una posizione specifica, ad esempio in un acceleratore o nella CPU. Il tipo di dato degli elementi della matrice è T, che deve essere di un tipo compatibile con l'acceleratore di destinazione. Sebbene il rango, N, della matrice è determinato staticamente e fa parte del tipo, l'extent della matrice è determinato dal runtime e viene espresso tramite la classe extent<N>.

Una matrice può avere un qualsiasi numero di dimensioni, anche se alcune funzionalità sono specializzate per oggetti array con rango uno, due o tre. Se si omette l'argomento dimensione, l'impostazione predefinita è 1.

I dati della matrice sono disposti in modo contiguo nella memoria. Gli elementi che differiscono di uno nella dimensione meno significativa sono adiacenti in memoria.

Le matrici sono considerate logicamente come tipi di valore, perché quando una matrice viene copiata in un altra matrice, viene eseguita una copia completa. Due matrici non puntano mai agli stessi dati.

Il tipo array<T,N> viene utilizzato in molti scenari:

  • Come contenitore di dati che può essere utilizzato nei calcoli in un acceleratore.

  • Come contenitore di dati per mantenere la memoria nella CPU host (che può essere utilizzato per copiare da e su altre matrici).

  • Come oggetto di gestione temporanea che agisce da intermediario veloce nelle copie da host a dispositivo.

Gerarchia di ereditarietà

array

Requisiti

Intestazione: amp.h

Spazio dei nomi: Concurrency

Vedere anche

Riferimenti

Spazio dei nomi Concurrency (C++ AMP)