array::array コンストラクター
新しいインスタンスを初期化する、 アレイクラス。既定のコンス トラクターはありませんarray<T,N>。すべてのコンス トラクターは、CPU 上でのみ実行されます。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
) ;
パラメーター
_Associated_Av
Accelerator_view は、配列の優先ターゲットの場所を指定します。_Av
Accelerator_view 配列の場所を指定するオブジェクト。_Extent
配列の各次元の範囲。_E0
このセクションの範囲の最上位のコンポーネントです。_E1
このセクションの大きさの次へ-する-最上位のコンポーネントです。_E2
このセクションの範囲の最下位のコンポーネントです。InputIterator
入力の: イテレータの種類を指定します。_Src
オブジェクトをコピーするには。_Src_first
最初の反復子はソース コンテナーに。_Src_last
終了反復子はソース コンテナーにします。_Other
その他のデータ ソース。_Rank
セクションのランク。_Value_type
コピーされる要素のデータ型。
解説
ステージングのコンス トラクターが 2 つある accelerator_view オブジェクト コンス トラクターのパラメーターとしてします。ステージングの配列は、ヒントとして CPU と、Direct3D アクセラレータの間の 2 つのアクセラレータの間繰り返しコピーを最適化するために使用されます。ステージングのアレイでは、データ転送用に最適化された、安定のユーザー領域のメモリはありません。CPU とアクセラレータ間を効率的にダイレクト メモリ アクセス (DMA) 転送があるかどうかを確認するのには、適切なハードウェアの配置が DirectX ステージング バッファーによってバックアップされます。accelerator_viewのステージングの配列プロパティで構築された最初のアクセラレータの引数の値を返します。変更または転送操作では、関係している場合、次のコードに示すように、ステージングの配列の内容を確認することができません。
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());
}
};
必要条件
ヘッダー: amp.h
名前空間: Concurrency