次の方法で共有


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オブジェクト。

メンバー

Hh305260.collapse_all(ja-jp,VS.110).gifパブリック コンストラクター

名前

Description

array_view::array_view コンストラクター

array_view クラスの新しいインスタンスを初期化します。既定のコンス トラクターはありませんarray<T,N>。すべてのコンス トラクターは、CPU 上でのみ実行するのに制限されているので、Direct3D のターゲット上では実行できません。

array_view::~array_view デストラクター

array_view オブジェクトを破棄します。

Hh305260.collapse_all(ja-jp,VS.110).gifパブリック メソッド

名前

Description

array_view::copy_to メソッド

内容のコピー、 array_viewオブジェクトで呼び出すと、指定した場所にcopy(*this, dest)。

array_view::data メソッド

生データへのポインターを返します、 array_view

array_view::discard_data メソッド

このビューの基になる、現在のデータを破棄します。

array_view::get_extent メソッド

Array_view オブジェクトの範囲オブジェクトを返します。

array_view::refresh メソッド

Array_view の通知オブジェクトの array_view インターフェイスの外部の連結のメモリが変更されていること。このメソッドの呼び出しを古いキャッシュ内のすべての情報を表示します。

array_view::reinterpret_as メソッド

すべての要素を含む 1 次元配列が返されます、 array_viewオブジェクト。

array_view::section メソッド

サブセクションを返します、 array_view指定された原点で、必要に応じて、オブジェクトが、指定されたエクステント。

array_view::synchronize メソッド

Array_view オブジェクトは、ソース データに加えた変更を同期します。

array_view::synchronize_async メソッド

加えられる変更を非同期に同期、 array_view のソース データへのオブジェクト。

array_view::view_as メソッド

生成、 array_viewオブジェクトを別のランクのarray_viewオブジェクトのデータ。

Hh305260.collapse_all(ja-jp,VS.110).gifパブリック演算子

名前

Description

array_view::operator() 演算子

パラメーターまたはパラメーターで指定された要素の値を返します。

array_view::operator[] 演算子

パラメーターで指定された要素を返します。

array_view::operator= 演算子

指定の内容をコピー array_viewには、この 1 つのオブジェクト。

Hh305260.collapse_all(ja-jp,VS.110).gifパブリック定数

名前

Description

array_view::rank 定数

ランクを格納、 array_viewオブジェクト。

Hh305260.collapse_all(ja-jp,VS.110).gifデータ メンバー

名前

Description

array_view::extent データ メンバー

取得、 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

参照

関連項目

Concurrency 名前空間 (C++ AMP)