Aracılığıyla paylaş


Eşzamanlılık Ad Alanı (C++ AMP)

C++ kodunun veri paralel donanımda yürütülmesini hızlandıran sınıflar ve işlevler sağlar. Daha fazla bilgi için bkz. C++ AMP'ye Genel Bakış

Sözdizimi

namespace Concurrency;

Üyeler

Ad alanları

Veri Akışı Adı Açıklama
Concurrency::direct3d Ad Alanı D3D birlikte çalışabilirliğini destekleyen işlevler sağlar. Yedekli ara kopyalar oluşturmadan, AMP kodunda işlem için D3D kaynaklarının sorunsuz bir şekilde kullanılmasını ve D3D kodunda AMP'de oluşturulan kaynakların kullanılmasını sağlar. DirectX uygulamalarınızın işlem yoğunluklu bölümlerini artımlı olarak hızlandırmak için C++ AMP kullanabilir ve AMP hesaplamalarından üretilen verilerde D3D API'sini kullanabilirsiniz.
Concurrency::fast_math Ad Alanı Ad alanı işlevleri fast_math C99 uyumlu değildir. Her işlevin yalnızca tek duyarlıklı sürümleri sağlanır. Bu işlevler, ad alanında karşılık gelen işlevlerden daha hızlı olan ve hızlandırıcıda precise_math genişletilmiş çift duyarlık desteği gerektirmeyen DirectX iç işlevlerini kullanır, ancak daha az doğru olur. C99 koduyla kaynak düzeyinde uyumluluk için her işlevin iki sürümü vardır; her iki sürüm de tek duyarlıklı değerler alır ve döndürür.
Concurrency::graphics Ad Alanı Grafik programlama için tasarlanmış türler ve işlevler sağlar.
Concurrency::precise_math Ad Alanı Ad alanı işlevleri precise_math C99 uyumlu. Her işlevin hem tek duyarlıklı hem de çift duyarlıklı sürümleri dahil edilir. Bu işlevler (bu, tek duyarlıklı işlevleri içerir) hızlandırıcıda genişletilmiş çift duyarlık desteği gerektirir.

Sınıflar

Veri Akışı Adı Açıklama
accelerator Sınıfı Fiziksel DP için iyileştirilmiş işlem düğümünün özetini temsil eder.
accelerator_view Sınıfı C++ AMP veri paralel hızlandırıcısı üzerindeki sanal cihaz soyutlama değerini temsil eder.
accelerator_view_removed Sınıfı Temel alınan bir DirectX çağrısı Windows zaman aşımı algılama ve kurtarma mekanizması nedeniyle başarısız olduğunda oluşan özel durum.
array Sınıfı Kılavuz etki alanındaki bir accelerator_view üzerinde veri toplama. Bir kılavuz etki alanındaki her öğe için bir tane olmak üzere bir değişken koleksiyonudur. Her değişken, bir C++ türüne karşılık gelen bir değere sahiptir.
array_view Sınıfı T,N> dizisindeki<verilerin görünümünü temsil eder.
completion_future Sınıfı C++ AMP zaman uyumsuz işlemine karşılık gelen bir geleceği temsil eder.
extent Sınıfı 0 çıkış noktası olan N boyutlu bir boşluğun sınırlarını belirten N tamsayı değerlerinin vektörlerini temsil eder. Koordinat vektördeki değerler en önemliden en az önemliye doğru sıralanır. Örneğin Kartezyen 3 boyutlu uzayda, kapsam vektör (7,5,3), z koordinatı 0 ile 7 arasında, y koordinatı 0 ile 5 arasında ve x koordinatı 0 ile 3 arasında değişen bir alanı temsil eder.
index Sınıfı N boyutlu bir dizin noktası tanımlar.
invalid_compute_domain Sınıfı Çalışma zamanı çağrı sitesinde belirtilen parallel_for_each işlem etki alanını kullanarak bir çekirdeği başlatamayınca oluşan özel durum.
out_of_memory Sınıfı Sistem veya cihaz belleği eksikliği nedeniyle bir yöntem başarısız olduğunda oluşan özel durum.
runtime_exception Sınıfı C++ AMP kitaplığındaki özel durumlar için temel tür.
tile_barrier Sınıfı Yalnızca sistem tarafından oluşturabilen ve parametresinin tiled_index bir parçası olarak kutucuklu parallel_for_each lambdaya geçirilen bir yetenek sınıfı. Amacı iş wait()parçacığı grubunda (kutucuk) çalışan iş parçacıklarının yürütülmesini eşitlemek olan tek bir yöntem sağlar.
tiled_extent Sınıfı tiled_extent Nesne, kapsam alanını tek boyutlu, iki boyutlu veya üç boyutlu kutucuklara bölen bir-üç boyutlu bir extent nesnedir.
tiled_index Sınıfı Bir nesneye tiled_grid dizin sağlar. Bu sınıf, yerel kutucuk kaynağına göre ve genel çıkış noktasıyla ilgili olarak öğeye erişmek için özelliklere sahiptir.
uninitialized_object Sınıfı Başlatılmamış bir nesne kullanıldığında oluşan özel durum.
unsupported_feature Sınıfı Desteklenmeyen bir özellik kullanıldığında oluşan özel durum.

Listelemeler

Veri Akışı Adı Açıklama
access_type Numaralandırması Veri erişim türünü belirtir.
queuing_mode Numaralandırması Hızlandırıcıda desteklenen kuyruğa alma modlarını belirtir.

İşleçler

Operator Açıklama
operator== İşleci (C++ AMP) Belirtilen veri yapılarının eşit olup olmadığını belirler.
operator!= İşleci (C++ AMP) Belirtilen veri yapılarının eşit olup olmadığını belirler.
operator+ İşleci (C++ AMP) Belirtilen bağımsız değişkenlerin bileşen açısından toplamını hesaplar.
operator- İşleci (C++ AMP) Belirtilen bağımsız değişkenler arasındaki bileşen açısından farkı hesaplar.
operator* İşleci (C++ AMP) Belirtilen bağımsız değişkenlerin bileşen açısından çarpımını hesaplar.
operator/ Operator (C++ AMP) Belirtilen bağımsız değişkenlerin bileşen açısından bölüm değerini hesaplar.
operator% İşleci (C++ AMP) belirtilen ilk bağımsız değişkenin modüllerini belirtilen ikinci bağımsız değişkene göre hesaplar.

İşlevler

Veri Akışı Adı Açıklama
all_memory_fence Tüm bellek erişimleri tamamlanana kadar kutucuktaki tüm iş parçacıklarının yürütülmesini engeller.
amp_uninitialize C++ AMP çalışma zamanının başlatılmaz.
atomic_compare_exchange Aşırı yüklendi. Belirtilen konumda depolanan değer, belirtilen ilk değere eşitse, belirtilen ikinci değer atomik işlemle aynı konumda depolanır.
atomic_exchange Aşırı yüklendi. Belirtilen konumda depolanan değeri, atomik işlem olarak belirtilen değere ayarlar.
atomic_fetch_add Aşırı yüklendi. Belirtilen konumda depolanan değeri bu değerin toplamına ve belirtilen değeri atomik işlem olarak ayarlar.
atomic_fetch_and Aşırı yüklendi. Belirtilen konumda depolanan değeri bu değerin bit düzeyinde and ve belirtilen değeri atomik işlem olarak ayarlar.
atomic_fetch_dec Aşırı yüklendi. Belirtilen konumda depolanan değeri azaltma ve sonucu atomik işlemle aynı konumda depolama.
atomic_fetch_inc Aşırı yüklendi. Belirtilen konumda depolanan değeri artırır ve sonucu atomik işlemle aynı konumda depolar.
atomic_fetch_max Aşırı yüklendi. Belirtilen konumda depolanan değeri bu değerin daha büyük bir değerine ve atomik işlem olarak belirtilen bir değere ayarlar.
atomic_fetch_min Aşırı yüklendi. Belirtilen konumda depolanan değeri bu değerin daha küçük bir değerine ve atomik işlem olarak belirtilen bir değere ayarlar.
atomic_fetch_or Aşırı yüklendi. Belirtilen konumda depolanan değeri bu değerin bit düzeyinde or ve belirtilen değeri atomik işlem olarak ayarlar.
atomic_fetch_sub Aşırı yüklendi. Belirtilen konumda depolanan değeri, bu değerin farkıyla atomik işlem olarak belirtilen değeri ayarlar.
atomic_fetch_xor Aşırı yüklendi. Belirtilen konumda depolanan değeri bu değerin bit düzeyinde xor ve belirtilen değeri atomik işlem olarak ayarlar.
kopya etmek C++ AMP nesnesini kopyalar. Tüm zaman uyumlu veri aktarımı gereksinimleri karşılanıyor. Kod hızlandırıcıda kod çalıştırırken veriler kopyalanamaz. Bu işlevin genel biçimi şeklindedir copy(src, dest).
copy_async Bir C++ AMP nesnesini kopyalar ve beklenebilen completion_future döndürür. Kod hızlandırıcı üzerinde çalışırken veriler kopyalanamaz. Bu işlevin genel biçimi şeklindedir copy(src, dest).
direct3d_abort Kısıtlama yan tümcesine sahip bir işlevin yürütülmesini restrict(amp) durdurur.
direct3d_errorf Biçimlendirilmiş bir dizeyi Visual Studio Çıktı penceresine yazdırır ve aynı biçimlendirme dizesine sahip bir runtime_exception özel durumu oluşturur.
direct3d_printf Biçimlendirilmiş bir dizeyi Visual Studio Çıkış penceresine yazdırır. Kısıtlama yan tümcesine restrict(amp) sahip bir işlevden çağrılır.
global_memory_fence Tüm genel bellek erişimleri tamamlanana kadar kutucuktaki tüm iş parçacıklarının yürütülmesini engeller.
parallel_for_each İşlevi (C++ AMP) İşlem etki alanı genelinde bir işlev çalıştırır.
tile_static_memory_fence Bellek erişimleri tamamlanana kadar tile_static kutucuktaki tüm iş parçacıklarının yürütülmesini engeller.

Sabitler

Veri Akışı Adı Açıklama
HLSL_MAX_NUM_BUFFERS Sabiti DirectX tarafından izin verilen en fazla arabellek sayısı.
MODULENAME_MAX_LENGTH Sabiti Modül adının uzunluk üst sınırını depolar. Bu değer derleyicide ve çalışma zamanında aynı olmalıdır.

Gereksinimler

Üst bilgi: amp.h

Ayrıca bkz.

Başvuru (C++ AMP)