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

Namespace

Veri Akışı Adı Açıklama
Concurrency::direct3d Namespace 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. Yalnızca her fonksiyonun tek hassasiyetli sürümleri sağlanır. Bu işlevler, precise_math ad alanındaki karşılık gelen işlevlerden daha hızlı olan ve hızlandırıcıda genişletilmiş çift duyarlık desteği gerektirmeyen DirectX iç işlevlerini kullanır, ancak daha az doğrudurlar. 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ı precise_math ad alanındaki işlevler C99 uyumludur. 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ı üzerindeki sanal cihaz soyutlamasını temsil eder.
accelerator_view_removed Sınıfı Bir Windows zaman aşımı algılama ve kurtarma mekanizması nedeniyle temel alınan bir DirectX çağrısının başarısız olması durumunda atılan istisna.
array Sınıfı Şebeke alanındaki bir accelerator_view veri kümesi. Kılavuz etki alanındaki her bir öğe için bir değişkenden oluşan bir koleksiyondur. 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 Class 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 parallel_for_each bir parçası olarak kutucuklu tiled_index lambdaya geçirilen bir yetenek sınıfı. Bu yöntem, iş parçacığı grubunda (döşeme) çalışan iş parçacıklarının yürütülmesini eşitlemek amacıyla sağlanır.
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 tiled_grid nesnesi içine dizin sunar. Bu sınıf, yerel kutucuk başlangıcına göre ve küresel başlangıç noktasına göre öğ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

Operatör 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/ Operatör (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 bir döşemedeki tüm iş parçacıklarının yürütülmesini durdurur.
amp_uninitialize C++ AMP çalışma zamanını başlatmayı geri alır.
atomic_compare_exchange Aşırı yüklü 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üklü Belirtilen konumda depolanan değeri, atomik işlem olarak belirtilen değere ayarlar.
atomic_fetch_add Aşırı yüklü Belirtilen konumdaki depolanan değeri, atomik bir işlem olarak o değerin ve belirtilen değerin toplamına ayarlar.
atomic_fetch_and Aşırı yüklü 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üklü Belirtilen konumda depolanan değeri azaltma ve sonucu atomik işlemle aynı konumda depolama.
atomic_fetch_inc Aşırı yüklü Belirtilen konumda depolanan değeri artırır ve sonucu atomik işlemle aynı konumda depolar.
atomic_fetch_max Aşırı yüklü 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üklü 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üklü 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üklü Belirtilen konumda depolanan değeri, bu değer ile belirtilen değer arasındaki fark olarak atomik bir işlemle ayarlar.
atomic_fetch_xor Aşırı yüklü 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 üzerinde beklenebilen bir 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 restrict(amp) kısıtlama yan tümcesine sahip bir işlevin yürütülmesini 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 döşemedeki tüm iş parçacıklarının çalışmasını durdurur.
parallel_for_each İşlevi (C++ AMP) Hesaplama 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 Sabit 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.

Referans (C++ AMP)