array_view クラス
別のコンテナーに保持されているデータは、N 次元のビューを表します。
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)>;
パラメーター
_Value_type
内の要素のデータ型、 array_viewオブジェクト。_Rank
ランクのarray_viewオブジェクト。
メンバー
パブリック コンストラクター
名前 |
Description |
---|---|
array_view クラスの新しいインスタンスを初期化します。既定のコンス トラクターはありませんarray<T,N>。すべてのコンス トラクターは、CPU 上でのみ実行するのに制限されているので、Direct3D のターゲット上では実行できません。 |
|
array_view オブジェクトを破棄します。 |
パブリック メソッド
名前 |
Description |
---|---|
内容のコピー、 array_viewオブジェクトで呼び出すと、指定した場所にcopy(*this, dest)。 |
|
生データへのポインターを返します、 array_view。 |
|
このビューの基になる、現在のデータを破棄します。 |
|
Array_view オブジェクトの範囲オブジェクトを返します。 |
|
Array_view の通知オブジェクトの array_view インターフェイスの外部の連結のメモリが変更されていること。このメソッドの呼び出しを古いキャッシュ内のすべての情報を表示します。 |
|
すべての要素を含む 1 次元配列が返されます、 array_viewオブジェクト。 |
|
サブセクションを返します、 array_view指定された原点で、必要に応じて、オブジェクトが、指定されたエクステント。 |
|
Array_view オブジェクトは、ソース データに加えた変更を同期します。 |
|
加えられる変更を非同期に同期、 array_view のソース データへのオブジェクト。 |
|
生成、 array_viewオブジェクトを別のランクのarray_viewオブジェクトのデータ。 |
パブリック演算子
名前 |
Description |
---|---|
パラメーターまたはパラメーターで指定された要素の値を返します。 |
|
パラメーターで指定された要素を返します。 |
|
指定の内容をコピー array_viewには、この 1 つのオブジェクト。 |
パブリック定数
名前 |
Description |
---|---|
ランクを格納、 array_viewオブジェクト。 |
データ メンバー
名前 |
Description |
---|---|
取得、 extentの形状を定義するオブジェクトをarray_viewオブジェクト。 |
解説
array_viewクラスに含まれるデータのビューを表す、 アレイオブジェクトやサブセクションのarrayオブジェクト。
アクセスすることができます、 array_view (ローカルに)、ソース データが保存されている場所、または別のアクセラレータや一貫性のドメイン上のオブジェクト (リモート)。オブジェクトをリモートでアクセスすると、ビューはコピーし、必要に応じてキャッシュします。自動キャッシュの効果を除いてarray_viewオブジェクトに同様のパフォーマンス プロファイルのあるarrayオブジェクト。ビューを介してデータにアクセスすると、若干のパフォーマンスの低下です。
リモートの 3 つの状況です。
ビューはシステム メモリ ポインターによって渡される、 parallel_for_each コールにアクセラレータとアクセラレータでアクセスします。
ビューには、アクセラレータである配列によって渡される、 parallel_for_each他のアクセラレータを呼び出すし、がアクセスされます。
ビューのアクセラレータがある配列に CPU にアクセスします。
このようなシナリオの 1 つで、参照先のビューでは、ランタイムによって、リモートの場所にコピーされますへの呼び出しによって変更された場合、 array_viewオブジェクトをローカルの場所にコピーされます。ランタイムの変更を元にコピーするプロセスを最適化することがあるには、変更された要素だけをコピーする可能性があります。 または変更しない部分もコピー可能性があります。重複array_view 1 つのデータ ソース オブジェクトは遠隔地での参照の整合性を維持するために保証します。
同じデータ ソースへのマルチ スレッド アクセスを同期する必要があります。
ランタイム内のデータのキャッシュについては、次の保証になりますarray_viewオブジェクト。
Well-synchronized のすべてのアクセスをarrayオブジェクトとarray_viewプログラムの順序でのオブジェクトは、シリアルに従い行われます-関係の前に。
重複するすべての well-synchronized アクセスarray_viewオブジェクトで、同じのアクセラレータを 1 つのarrayオブジェクトは、エイリアスをarrayオブジェクト。合計強制的に実行が発生、プログラムの順序に従います関係の前に。キャッシュがありません。場合は、 array_view別のアクセラレータを実行するオブジェクトで、アクセスの順序は、競合状態を作成する定義されていません。
作成するときに、 array_viewシステム メモリ内のポインターを使用してオブジェクトのビューを変更する必要がありますarray_viewだけを通じてオブジェクト、 array_viewポインター。代わりに、呼び出す必要がありますrefresh()の 1 つに、 array_view 、基になるネイティブ メモリ直接を通じての代わりに変更すると、システムのポインターに関連付けられているオブジェクトはarray_viewオブジェクト。いずれかの操作を通知、 array_viewオブジェクトの基になるネイティブ メモリを変更すること、およびアクセラレータ上に配置されているすべてのコピーが最新であります。これらのガイドラインに従うと、ポインタ ・ ベースのビューは、ビューのデータ並列配列に提供されると同じです。
継承階層
_Array_view_shape
_Array_view_base
array_view
必要条件
ヘッダー: amp.h
名前空間: Concurrency