Aracılığıyla paylaş


array_view sınıfı

n boyutlu görünüm üzerinden başka bir kapsayıcı içinde tutulan veriyi temsil eder.

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)>;

Parametreler

  • _Value_type
    Bir array_view nesnesi içindeki elemanların veri tipleri.

  • _Rank
    array_view nesnesinin boyut sayısı.

Üyeler

Hh305260.collapse_all(tr-tr,VS.110).gifOrtak Oluşturucular

Ad

Tanımlama

array_view::array_view yapıcı

array_view sınıfının yeni bir örneğini başlatır.Bir array<T,N> için varsayılan oluşturucu yok.Bütün oluşturucular CPU üzerinde çalışacak şekilde kısıtlanır ve her hangi bir Direct3D hedef üzerinde çalışamaz.

array_view:: ~ array_view yıkıcı

array_view nesnesini yok eder.

Hh305260.collapse_all(tr-tr,VS.110).gifOrtak Yöntemler

Ad

Tanımlama

array_view::copy_to yöntemi

Bir array_view nesnesinin içeriğini belirtilen hedefe copy(*this, dest) çağırarak kopyalar.

array_view::Data yöntemi

Bir array_view 'a ait ham dataları işaret eden bir işaretçi döner.

array_view::discard_data yöntemi

Bu görünümün temelindeki geçerli verinin atılmasına neden olur.

array_view::get_extent yöntemi

extent nesnesini , array_view nesnesine ait olan, döndürür.

array_view::Refresh yöntemi

Array_view nesnesinin sınırları array_view arabirimi dışında bir yerde değiştirilmişse bunu bildirir.Bu yöntem çağrısı tüm önbelleğe alınmış eski bilgileri işler.

array_view::reinterpret_as yöntemi

array_view nesnesinin bütün tek boyutlu ögelerini barındıran diziyi döndürür.

array_view::Section yöntemi

array_view belirtilen kaynak ve isteğe bağlı nesnenin belirtilen uzantıda alt bölümlerini döndürür.

array_view::Synchronize yöntemi

array_view nesnesinde yapılan bütün değişiklikleri kaynak verileriyle sekronize eder.

array_view::synchronize_async yöntemi

array_view nesnesine yapılan tüm değişiklikleri zaman uyumsuz olarak kaynak veriyle geri eşitler.

array_view::view_as yöntemi

Bu array_view nesnesinin verisini kullanarak farklı boyut sayısına sahip bir array_view nesnesi üretir.

Hh305260.collapse_all(tr-tr,VS.110).gifOrtak İşleçler

Ad

Tanımlama

array_view::operator() operatörü

Belirtilen parametre veya parametreler tarafından belirtilen öğenin değerini döndürür.

[array_view::operator] operatör

Parametreler ile belirtilen öğeyi döndürür.

array_view::operator = işleci

Belirtilen array_view nesnesinin içeriğini bu nesnenin içine kopyalar.

Hh305260.collapse_all(tr-tr,VS.110).gifGenel Sabitler

Ad

Tanımlama

array_view::RANK sabiti

array_view nesnesinin boyut sayısını tutar.

Hh305260.collapse_all(tr-tr,VS.110).gifVeri üyeleri

Ad

Tanımlama

array_view::Extent veri üyesi

extent nesnesini alan array_view nesnesininin şeklini tanımlar.

Notlar

array_view sınıfı bir dizi nesnesi ya da bir alt array nesnesinde bulunan dataları temsil eder..

Bir array_view nesnesine kaynak verilerin(yerel) yerleri bulunduğunda ya da farklı bir hızlandırıcı üzerinden veya modellenmiş etki alanından erişebilirsiniz(uzaktan).Nesneye uzaktan eriştiğinizde, görünümler kopyalanır ve gerektiği şekilde önbelleğe alınır.Otomatik olarak önbelleğe alma etkileri dışında bir array_view nesnesi bir array nesnelesi ile benzer bir performans profiline sahiptir.View'lar üzerinden verilere ulaştığınız zaman, küçük bir performans sorunu vardır.

Uzaktan kullanımda üç senaryo vardır:

  • Sistem bellek işaretçisini bir view aracılığıyla geçirmek, bir parallel_for_each ile bir hızlandırıcı çağırmak ve çagırılan hızlandırıcıya erişmektir.

  • Hızlandırıcı üzerinde bulunan bir diziyi bir view aracılığıyla geçirmek, bir parallel_for_each ile bir hızlandırıcı çağırmak ve bu hızlandırıcıya orada erişmektir.

  • Bir hızlandırıcı üzerinde bulunan bir dizi görünümüne cpu üzerinde erişilebilir.

Bu senaryolardan herhangi birinde, başvurulan görünümler çalışma zamanında uzak bir konuma kopyalanır ve yapılan çağrılar tarafından değiştirilirse array_view nesnesi, yerel konumana geri kopyalanır.Çalışma zamanı değişiklikleri geri kopyalama işlemini iyileştirebilir, yalnızca değişen öğeleri kopyalayabilir veya değişmeyen bölümleri de kopyalayabilir.Bir array_view nesnesini üst üste bindirmek bir veri kaynağı üzerinde uzak bir konumda tutmak bilgi tutarlılığını garanti etmez.

Aynı veri kaynağına çok iş parçacıklı herhangi bir erişimi eşitlemeniz gerekir.

Çalışma zamanı verileri önbelleğe array_view nesneleri olarak almadan aşşağıdakileri garantiler :

  • Bir array nesnesine yapılan iyi senkronize edilmiş erişimler ve bir array_view nesnesi üzerinden program sırasına göre ilişkilere uyar.

  • Üst üste bindirilmiş ve iyi senkronize edilmiş bir array_view nesnesi üzerinden aynı hızlandırıcı ile tek bir array nesnesi aracılığıyla başka ad verilmiş olan array nesnesine iletilir.Program sırasına uyar ve ilişkiden önce teşvik ederler.Önbellek özelliği yoktur.Eger array_view nesneleri farklı hızlandırıcılar üzerinde çalıştırılıyorlarsa, erişim sırası tahmin edilemez ve bir race condition oluşur.

Sistem belleğinde bir işaretçi kullanarak oluşturduğunuz bir array_view nesnesi yarattığınız zaman, array_view nesnesini sadece array_view işaretçisini kullanarak değiştirmeniz gerekir.Alternatif olarak , refresh()'i sistem işaretçisine bağlı olan array_view nesnesi üzerinden,eger arka plandaki doğal bellek array_view nesnesi üzerinden değil de doğrudan değiştirildiyse, çağırabilirsiniz.Bir array_view nesnesinde alttaki doğal bellek değiştirilir ve hızlandırıcı üzerinde bulunan herhangi bir kopyanın tarihi geçmişse bilgilendirme yapılır.Aşağıdaki yönergeleri izlerseniz, işaretçi temelli görünümler paralel veri dizileri için sağlanan görünümler ile aynıdır.

Devralma Hiyerarşisi

_Array_view_shape

_Array_view_base

array_view

Gereksinimler

Üst bilgi: amp.h

Ad Alanı: Concurrency

Ayrıca bkz.

Başvuru

Eşzamanlılık ad (C++ amp)