Condividi tramite


Spazio dei nomi Concurrency (C++ AMP)

Fornisce le classi e le funzioni che consentono di accelerare l'esecuzione del codice C++ su hardware parallelo. Per ulteriori informazioni, vedere Cenni preliminari su C++ AMP.

namespace Concurrency;

Membri

Spazi dei nomi

Nome

Descrizione

Spazio dei nomi Concurrency::direct3d

Fornisce funzioni che supportano l'interoperabilità D3D. Abilita il solo utilizzo delle risorse D3D per il calcolo in codice AMP e l'utilizzo delle risorse create in AMP nel codice D3D, senza creare copie intermedie ridondanti. È possibile utilizzare C++ AMP per accelerare gradualmente le sezioni impegnative in termini di calcolo delle applicazioni DirectX e le API D3D sui dati prodotti derivanti dai calcoli AMP.

Spazio dei nomi Concurrency::fast_math

Le funzioni nello spazio dei nomi fast_math non sono conformi a C99. Solo le versioni e precisione singola di ogni funzione vengono fornite. Queste funzioni utilizzano le funzioni intrinseche di DirectX, che sono più veloci delle funzioni corrispondenti nello spazio dei nomi precise_math e non richiedono il supporto a precisione doppia estesa sull'acceleratore, ma sono meno accurate. Esistono due versioni di ciascuna 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 le funzioni progettati per la programmazione grafica.

Spazio dei nomi Concurrency::precise_math

Le funzioni nello spazio dei nomi precise_math sono conformi a C99. Sono incluse sia le versioni a precisione singola sia a precisione doppia di ogni funzione. Queste funzioni, incluse le funzioni a singola precisione, richiedono il supporto a precisione doppia estesa sull'acceleratore.

Classi

Nome

Descrizione

Classe accelerator

Rappresenta un'astrazione di un nodo fisico di calcolo DP-ottimizzato.

Classe accelerator_view

Rappresenta un'astrazione del dispositivo virtuale in un acceleratore di dati paralleli AMP C++ .

Classe accelerator_view_removed

L'eccezione che viene generata quando una chiamata sottostante di DirectX ha esito negativo a causa del meccanismo di rilevamento e di ripristino del timeout di Windows.

Classe array

Aggregato di dati in accelerator_view nel dominio della griglia. È una raccolta di variabili, una per ogni elemento in un dominio della rete. Ogni variabile contiene un valore che corrisponde a un tipo C++.

Classe array_view

Rappresenta una visualizzazione dei dati in una matrice <T,N>.

Classe completion_future

Rappresenta un corrispondente futuro alle operazioni asincrone di C++ AMP.

Classe extent (C++ AMP)

Rappresenta un vettore di N valori interi che specificano i limiti di uno spazio di dimensione N avente origine in 0. I valori del vettore delle coordinate sono ordinati dal più significativo al meno significativo. Ad esempio, nello spazio cartesiano a 3 dimensioni, il vettore extent (7,5,3) rappresenta uno spazio in cui la coordinata z varia tra 0 e 7, la coordinata y varia da 0 a 5 e la coordinata x varia tra 0 e 3.

Classe index

Definisce un punto di indice a N-dimensioni.

Classe invalid_compute_domain

Eccezione generata quando il runtime non può iniziare il kernel utilizzando il dominio di calcolo specificato nel sito di chiamata parallel_for_each.

Classe out_of_memory

L'eccezione che è generata quando un metodo ha esito negativo a causa della mancanza di memoria del sistema o del dispositivo.

Classe runtime_exception

Il tipo di base delle eccezioni nella libreria C++ AMP.

Classe tile_barrier

Classe di funzionalità che può essere creata soltanto dal sistema e che viene passata a una lambda parallel_for_each come parte del parametro tiled_index. Fornisce un metodo, wait(), il cui scopo è la sincronizzazione dell'esecuzione dei thread in esecuzione nel gruppo di thread (sezione).

Classe tiled_extent

Un oggetto tiled_extent è un oggetto extent con dimensioni da 1 a 3 che suddivide lo spazio dell'extent in sezioni a una dimensione, due dimensioni o tre dimensioni.

Classe tiled_index

Fornisce un indice in un oggetto tiled_grid. Tale classe dispone di proprietà per accedere all'elemento relativo all'origine locale della sezione e relativo all'origine globale.

Classe uninitialized_object

Eccezione che viene generata quando viene utilizzato un oggetto non inizializzato.

Classe unsupported_feature

L'eccezione che viene generata quando viene utilizzata 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 dall'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 sono diverse.

Operatore operator+ (C++ AMP)

Calcola la somma per componente degli argomenti specificati.

Operatore operator- (C++ AMP)

Calcola la differenza per componente tra gli argomenti specificati.

Operatore operator* (C++ AMP)

Calcola il prodotto per componente degli argomenti specificati.

Operatore operator/ (C++ AMP)

Calcola il quoziente per componente degli argomenti specificati.

Operatore operator% (C++ AMP)

Calcola il modulo del primo argomento specificato in base al secondo argomento specificato.

Funzioni

Nome

Descrizione

Funzione all_memory_fence

Blocca l'esecuzione di tutti i thread in una sezione finché tutti gli accessi alla memoria sono stati completati.

Funzione amp_uninitialize

Non inizializza il runtime C++ AMP.

Funzione atomic_compare_exchange

Di overload. Se il valore archiviato nel percorso specificato risulta uguale al primo valore specificato, il secondo valore specificato viene memorizzato nello stesso percorso come operazione atomica.

Funzione atomic_exchange (C++ AMP)

Di overload. Imposta il valore archiviato nella posizione specificata sul valore specificato come operazione atomica.

Funzione atomic_fetch_add (C++ AMP)

Di overload. Imposta il valore archiviato nella posizione specificata sulla somma di quel valore e un valore specificato come operazione atomica.

Funzione atomic_fetch_and (C++ AMP)

Di overload. Imposta il valore archiviato nella posizione specificata sull'oggetto and bit per bit di quel valore e un valore specificato come operazione atomica.

Funzione atomic_fetch_dec

Di overload. Decrementa il valore archiviato nella posizione specificata e memorizzato il risultato nella stessa posizione come operazione atomica.

Funzione atomic_fetch_inc

Di overload. Incrementa il valore archiviato nella posizione specificata e memorizzato il risultato nella stessa posizione come operazione atomica.

Funzione atomic_fetch_max

Di overload. Imposta il valore archiviato nella posizione specificata al valore grande di quel valore e un valore specificato come operazione atomica.

Funzione atomic_fetch_min

Di overload. Imposta il valore archiviato nella posizione specificata al valore piccolo di quel valore e un valore specificato come operazione atomica.

Funzione atomic_fetch_or (C++ AMP)

Di overload. Imposta il valore archiviato nella posizione specificata sull'oggetto or bit per bit di quel valore e un valore specificato come operazione atomica.

Funzione atomic_fetch_sub (C++ AMP)

Di overload. Imposta il valore archiviato nella posizione specificata sulla differenza di quel valore e un valore specificato come operazione atomica.

Funzione atomic_fetch_xor (C++ AMP)

Di overload. Imposta il valore archiviato nella posizione specificata sull'oggetto xor bit per bit di quel valore e un valore specificato come operazione atomica.

Funzione copy

Copia un oggetto AMP C++. Tutti i requisiti di trasferimento sincrono dei dati vengano soddisfatti. I dati non possono essere copiati quando il codice sta eseguendo il codice su un tasto di scelta rapida. Il formato generico di questa funzione è copy(src, dest).

Funzione copy_async

Copia un oggetto C++ AMP e restituisce completion_future su cui può esserci attesa. I dati non possono essere copiati quando il codice sta eseguendo il codice su un tasto di scelta rapida. Il formato generico di questa funzione è copy(src, dest).

Funzione direct3d_abort

Interrompe l'esecuzione di una funzione che ha la clausola di restrizione restrict(amp).

Funzione direct3d_errorf

Stampa una stringa formattata nella finestra Output di Visual Studio e genera un'eccezione runtime_exception con la stessa stringa di formattazione.

Funzione direct3d_printf

Stampa una stringa formattata nella finestra di Output di Visual Studio. Viene chiamata da una funzione che ha la clausola di restrizione restrict(amp).

Funzione global_memory_fence

Blocca l'esecuzione di tutti i thread in una sezione finché tutti gli accessi alla memoria globale non sono stati completati.

Funzione parallel_for_each (C++ AMP)

Esegue una funzione tramite il dominio di calcolo.

Funzione tile_static_memory_fence

Blocca l'esecuzione di tutti i thread in una sezione fino a quando gli accessi alla memoria tile_static non sono completati.

Costanti

Nome

Descrizione

Costante HLSL_MAX_NUM_BUFFERS

Numero massimo di buffer consentiti da DirectX.

Costante MODULENAME_MAX_LENGTH

Memorizza la lunghezza massima del nome del modulo. Questo valore deve essere uguale sul compilatore e sul runtime.

Requisiti

Intestazione: amp.h

Vedere anche

Altre risorse

Riferimento (C++ AMP)