Condividi tramite


Spazio dei nomi Concurrency (C++ AMP)

Fornisce classi e funzioni che accelerano l'esecuzione del codice C++ su hardware parallelo ai dati. Per altre informazioni, vedere Panoramica di C++ AMP

Sintassi

namespace Concurrency;

Membri

Namespaces (Spazi dei nomi)

Nome Descrizione
Spazio dei nomi Concurrency::direct3d Fornisce funzioni che supportano l'interoperabilità D3D. Consente di usare facilmente le risorse D3D per il calcolo nel codice AMP e l'uso delle risorse create in AMP nel codice D3D, senza creare copie intermedie ridondanti. È possibile usare C++ AMP per accelerare in modo incrementale le sezioni a elevato utilizzo di calcolo delle applicazioni DirectX e usare l'API D3D sui dati prodotti dai calcoli AMP.
Spazio dei nomi Concurrency::fast_math Le funzioni nello spazio dei fast_math nomi non sono conformi a C99. Vengono fornite solo versioni a precisione singola di ogni funzione. Queste funzioni usano le funzioni intrinseche DirectX, che sono più veloci delle funzioni corrispondenti nello precise_math spazio dei nomi e non richiedono il supporto esteso a precisione doppia sull'acceleratore, ma sono meno accurate. Esistono due versioni di ogni funzione per la compatibilità a livello di origine con il codice C99; entrambe le versioni accettano e restituiscono valori a precisione singola.
Spazio dei nomi Concurrency::graphics Fornisce tipi e funzioni progettati per la programmazione grafica.
Spazio dei nomi Concurrency::precise_math Le funzioni nello spazio dei precise_math nomi sono conformi a C99. Sono incluse sia versioni a precisione singola che a precisione doppia di ogni funzione. Queste funzioni, incluse le funzioni a precisione singola, richiedono un supporto esteso a precisione doppia sull'acceleratore.

Classi

Nome Descrizione
Classe accelerator Rappresenta un'astrazione di un nodo di calcolo fisico ottimizzato per dp.
Classe accelerator_view Rappresenta un'astrazione del dispositivo virtuale in un acceleratore di dati C++ AMP.
Classe accelerator_view_removed Eccezione generata quando una chiamata DirectX sottostante non riesce a causa del meccanismo di rilevamento e ripristino di timeout di Windows.
Classe array Aggregazione dei dati in un accelerator_view oggetto nel dominio della griglia. Si tratta di una raccolta di variabili, una per ogni elemento in un dominio griglia. Ogni variabile contiene un valore che corrisponde a un tipo C++.
Classe array_view Rappresenta una visualizzazione nei dati di una matrice<T,N>.
Classe completion_future Rappresenta un futuro che corrisponde a un'operazione asincrona C++ AMP.
Classe extent Rappresenta un vettore di valori interi N che specificano i limiti di uno spazio N-dimensionale che ha un'origine pari a 0. I valori nel vettore di coordinate vengono ordinati dal più significativo al meno significativo. Ad esempio, nello spazio tridimensionale cartesiano, il vettore di extent (7,5,3) rappresenta uno spazio in cui la coordinata z varia da 0 a 7, la coordinata y è compresa tra 0 e 5 e la coordinata x varia da 0 a 3.
Classe index Definisce un punto di indice N-dimensionale.
Classe invalid_compute_domain Eccezione generata quando il runtime non può avviare un kernel usando il dominio di calcolo specificato nel sito di parallel_for_each chiamata.
Classe out_of_memory Eccezione generata quando un metodo non riesce a causa di una mancanza di memoria del sistema o del dispositivo.
Classe runtime_exception Tipo di base per le eccezioni nella libreria AMP C++.
Classe tile_barrier Classe di funzionalità creata solo dal sistema e passata a un'espressione lambda affiancata parallel_for_each come parte del tiled_index parametro . Fornisce un metodo, wait(), il cui scopo è sincronizzare l'esecuzione di thread in esecuzione nel gruppo di thread (riquadro).
Classe tiled_extent Un tiled_extent oggetto è un extent oggetto di una o tre dimensioni che suddivide lo spazio extent in riquadri unidimensionali, bidimensionali o tridimensionali.
Classe tiled_index Fornisce un indice in un tiled_grid oggetto . Questa classe ha proprietà per accedere all'elemento relativo all'origine del riquadro locale e rispetto all'origine globale.
Classe uninitialized_object Eccezione generata quando viene utilizzato un oggetto non inizializzato.
Classe unsupported_feature Eccezione generata quando viene usata una funzionalità non supportata.

Enumerazioni

Nome Descrizione
Enumerazione access_type Specifica il tipo di accesso ai dati.
Enumerazione queuing_mode Specifica le modalità di accodamento supportate nell'acceleratore.

Operatori

Operatore Descrizione
Operatore operator== (C++ AMP) Determina se le strutture di dati specificate sono uguali.
Operatore operator!= (C++ AMP) Determina se le strutture di dati specificate non sono uguali.
Operatore operator+ (C++ AMP) Calcola la somma a livello di componente degli argomenti specificati.
Operatore operator- (C++ AMP) Calcola la differenza per componente tra gli argomenti specificati.
Operatore* (C++ AMP) Calcola il prodotto a livello di componente degli argomenti specificati.
Operatore operator/ (C++ AMP) Calcola il quoziente a livello di componente degli argomenti specificati.
Operatore operator% (C++ AMP) Calcola il modulo del primo argomento specificato dal secondo argomento specificato.

Funzioni

Nome Descrizione
all_memory_fence Blocca l'esecuzione di tutti i thread in un riquadro fino al completamento di tutti gli accessi alla memoria.
amp_uninitialize Annulla l'inizializzazione del runtime C++ AMP.
atomic_compare_exchange Con overload. Se il valore archiviato nella posizione specificata corrisponde al primo valore specificato, il secondo valore specificato viene archiviato nella stessa posizione di un'operazione atomica.
atomic_exchange Con overload. Imposta il valore archiviato nella posizione specificata sul valore specificato come operazione atomica.
atomic_fetch_add Con overload. Imposta il valore archiviato nella posizione specificata sulla somma di tale valore e un valore specificato come operazione atomica.
atomic_fetch_and Con overload. Imposta il valore archiviato nella posizione specificata sul bit per and bit di tale valore e un valore specificato come operazione atomica.
atomic_fetch_dec Con overload. Decrementa il valore archiviato nella posizione specificata e archivia il risultato nella stessa posizione di un'operazione atomica.
atomic_fetch_inc Con overload. Incrementa il valore archiviato nella posizione specificata e archivia il risultato nella stessa posizione di un'operazione atomica.
atomic_fetch_max Con overload. Imposta il valore archiviato nella posizione specificata sul valore maggiore di tale valore e un valore specificato come operazione atomica.
atomic_fetch_min Con overload. Imposta il valore archiviato nella posizione specificata sul valore minore di tale valore e un valore specificato come operazione atomica.
atomic_fetch_or Con overload. Imposta il valore archiviato nella posizione specificata sul bit per or bit di tale valore e un valore specificato come operazione atomica.
atomic_fetch_sub Con overload. Imposta il valore archiviato nella posizione specificata sulla differenza di tale valore e un valore specificato come operazione atomica.
atomic_fetch_xor Con overload. Imposta il valore archiviato nella posizione specificata sul bit per xor bit di tale valore e un valore specificato come operazione atomica.
copy Copia un oggetto C++ AMP. Vengono soddisfatti tutti i requisiti di trasferimento dei dati sincroni. I dati non possono essere copiati quando il codice è in esecuzione su un acceleratore. La forma generale di questa funzione è copy(src, dest).
copy_async Copia un oggetto C++ AMP e restituisce completion_future in attesa. I dati non possono essere copiati quando il codice è in esecuzione su un acceleratore. La forma generale di questa funzione è copy(src, dest).
direct3d_abort Interrompe l'esecuzione di una funzione con la restrict(amp) clausola di restrizione.
direct3d_errorf Stampa una stringa formattata nella finestra Output di Visual Studio e genera un'eccezione runtime_exception con la stessa stringa di formattazione.
direct3d_printf Stampa una stringa formattata nella finestra Output di Visual Studio. Viene chiamato da una funzione con la restrict(amp) clausola di restrizione.
global_memory_fence Blocca l'esecuzione di tutti i thread in un riquadro fino al completamento di tutti gli accessi alla memoria globale.
Funzione parallel_for_each (C++ AMP) Esegue una funzione nel dominio di calcolo.
tile_static_memory_fence Blocca l'esecuzione di tutti i thread in un riquadro fino al tile_static completamento degli accessi alla memoria.

Costanti

Nome Descrizione
Costante HLSL_MAX_NUM_BUFFERS Numero massimo di buffer consentiti da DirectX.
Costante MODULENAME_MAX_LENGTH Archivia la lunghezza massima del nome del modulo. Questo valore deve essere lo stesso nel compilatore e nel runtime.

Requisiti

Intestazione: amp.h

Vedi anche

Riferimento (C++ AMP)