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
Ortak Oluşturucular
Ad |
Tanımlama |
---|---|
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 nesnesini yok eder. |
Ortak Yöntemler
Ad |
Tanımlama |
---|---|
Bir array_view nesnesinin içeriğini belirtilen hedefe copy(*this, dest) çağırarak kopyalar. |
|
Bir array_view 'a ait ham dataları işaret eden bir işaretçi döner. |
|
Bu görünümün temelindeki geçerli verinin atılmasına neden olur. |
|
extent nesnesini , array_view nesnesine ait olan, döndürür. |
|
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 nesnesinin bütün tek boyutlu ögelerini barındıran diziyi döndürür. |
|
array_view belirtilen kaynak ve isteğe bağlı nesnenin belirtilen uzantıda alt bölümlerini döndürür. |
|
array_view nesnesinde yapılan bütün değişiklikleri kaynak verileriyle sekronize eder. |
|
array_view nesnesine yapılan tüm değişiklikleri zaman uyumsuz olarak kaynak veriyle geri eşitler. |
|
Bu array_view nesnesinin verisini kullanarak farklı boyut sayısına sahip bir array_view nesnesi üretir. |
Ortak İşleçler
Ad |
Tanımlama |
---|---|
Belirtilen parametre veya parametreler tarafından belirtilen öğenin değerini döndürür. |
|
Parametreler ile belirtilen öğeyi döndürür. |
|
Belirtilen array_view nesnesinin içeriğini bu nesnenin içine kopyalar. |
Genel Sabitler
Ad |
Tanımlama |
---|---|
array_view nesnesinin boyut sayısını tutar. |
Veri üyeleri
Ad |
Tanımlama |
---|---|
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