Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Inizializza una nuova istanza della classe array.Non è presente un costruttore predefinito per array<T,N>.Tutti i costruttori vengono eseguiti solo sulla CPU.Non possono essere eseguiti su una destinazione Direct3D.
explicit array(
const Concurrency::extent<_Rank> & _Extent
) ;
explicit array(
int _E0
) ;
explicit array(
int _E0,
int _E1
) ;
explicit array(
int _E0,
int _E1,
int _E2
) ;
array(
const Concurrency::extent<_Rank>& _Extent,
Concurrency::accelerator_view _Av
) ;
array(
int _E0,
Concurrency::accelerator_view _Av
) ;
array(
int _E0,
int _E1,
Concurrency::accelerator_view _Av
) ;
array(
int _E0,
int _E1,
int _E2,
Concurrency::accelerator_view _Av
) ;
array(
const Concurrency::extent<_Rank>& _Extent,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
array(
int _E0,
accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
array(
int _E0,
int _E1,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
array(
int _E0,
int _E1,
int _E2,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
_InputIterator _Src_last
) ;
template <
typename _InputIterator
>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first
) ;
template <
typename _InputIterator
>
array(
int _E0,
_InputIterator _Src_first,
_InputIterator _Src_last
) ;
template <
typename _InputIterator
>
array(
int _E0,
_InputIterator _Src_first
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
_InputIterator _Src_last
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
_InputIterator _Src_first
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
_InputIterator _Src_last
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first
) ;
template <
typename _InputIterator
>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
) ;
template <
typename _InputIterator
>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
);
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
template <
typename _InputIterator
>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av
) ;
explicit array(
const array_view<const _Value_type,
_Rank>& _Src
) ;
array(
const array_view<const _Value_type,
_Rank>& _Src,
accelerator_view _Av
) ;
array(
const array_view<const _Value_type,
_Rank>& _Src,
accelerator_view _Av,
accelerator_view _Associated_Av
) ;
array(
const array& _Other
) ;
array(
array && _Other
) ;
Parametri
_Associated_Av
Un accelerator_view che specifica il percorso di destinazione desiderato della matrice._Av
Un oggetto accelerator_view che specifica la posizione della matrice._Extent
L'estensione in ogni dimensione della matrice._E0
Il componente più significativo dell'extent di questa sezione._E1
Un componente di grande importanza dell'extent di questa sezione._E2
Il componente meno significativo dell'extent di questa sezione.InputIterator
Il tipo dell'iteratore di input._Src
L'oggetto da copiare._Src_first
Un iteratore iniziale nel contenitore sorgente._Src_last
Un iteratore finale del contenitore sorgente._Other
Altra sorgente dati._Rank
Il rango della sezione._Value_type
Il tipo dei dati degli elementi che vengono copiati.
Note
I costruttori della gestione temporanea presentano due oggetti accelerator_view come parametri del costruttore.Le matrici della gestione temporanea vengono utilizzate come suggerimenti per ottimizzare le copie ripetute tra due accelerator (tra la CPU e un accelerator Direct3D).Le matrici della gestione temporanea sono ottimizzate per il trasferimento dei dati e non dispongono di uno spazio di memoria stabile.Sono supportati da buffer DirectX per la gestione temporanea che hanno l'allineamento hardware corretto per assicurarsi che sia presente un efficiente trasferimento Direct Memory Access (DMA) tra la CPU e l'accelerator.La proprietà accelerator_view di una matrice della gestione temporanea restituisce il valore del primo argomento accelerator con cui era stata creata.Non è possibile modificare o esaminare il contenuto della matrice della gestione temporanea quando viene eseguita un'operazione di trasferimento, come illustrato nel codice seguente.
class SimulationServer
{
array<float,2> acceleratorArray;
array<float,2> stagingArray;
public:
SimulationServer(const accelerator_view& av)
:acceleratorArray(extent<2>(1000,1000), av),
stagingArray(extent<2>(1000,1000), accelerator("cpu"),
accelerator("gpu"))
{
}
void OnCompute()
{
array<float,2> &a = acceleratorArray;
ApplyNetworkChanges(stagingArray.data());
// Starting here, you can't change or examine contents.
a = stagingArray;
parallel_for_each(a.extents, [&](index<2> idx)
{
// Update a[idx] according to simulation.
}
stagingArray = a;
// Starting here, you can change or examine contents.
SendToClient(stagingArray.data());
}
};
Requisiti
Intestazione: amp.h
Spazio dei nomi: Concurrency