Namespace Concurrency (C++ AMP)
Fornece classes e funções que aceleram a execução do código C++ no hardware paralelo de dados. Para mais informações, confira Visão geral de C++ AMP
Sintaxe
namespace Concurrency;
Membros
Namespaces
Nome | Descrição |
---|---|
Namespace Concurrency::direct3d | Fornece funções que dão suporte à interoperabilidade D3D. Habilita o uso contínuo de recursos D3D para computação no código AMP e o uso de recursos criados em AMP no código D3D, sem criar cópias intermediárias redundantes. Você pode usar o C++ AMP para acelerar incrementalmente as seções com uso intensivo de computação de seus aplicativos DirectX e usar a API D3D em dados produzidos a partir de cálculos AMP. |
Namespace Concurrency::fast_math | As funções no namespace fast_math não estão em conformidade com C99. Somente versões de precisão simples de cada função são fornecidas. Essas funções usam as funções intrínsecas do DirectX, que são mais rápidas do que as funções correspondentes no namespace precise_math e não exigem suporte estendido de precisão dupla no acelerador, mas são menos precisas. Há duas versões de cada função para compatibilidade no nível do código-fonte com código C99; ambas as versões recebem e retornam valores de precisão simples. |
Namespace Concurrency::graphics | Fornece tipos e funções projetados para programação gráfica. |
Namespace Concurrency::precise_math | As funções no namespace precise_math estão em conformidade com C99. As versões de precisão simples e de precisão dupla de cada função estão inclusas. Essas funções, incluindo as funções de precisão simples, exigem suporte estendido de precisão dupla no acelerador. |
Classes
Nome | Descrição |
---|---|
Classe accelerator | Representa uma abstração de um nó de computação com otimização de DP físico. |
Classe accelerator_view | Representa uma abstração de dispositivo virtual em um acelerador paralelo de dados C++ AMP. |
Classe accelerator_view_removed | A exceção gerada quando uma chamada para o DirectX subjacente falha devido ao mecanismo de detecção de tempo limite e recuperação do Windows. |
Classe array | Uma agregação de dados em um accelerator_view no domínio de grade. É uma coleção de variáveis, uma para cada elemento em um domínio de grade. Cada variável contém um valor que corresponde a algum tipo C++. |
Classe array_view | Representa uma exibição dos dados em uma matriz<T,N>. |
Classe completion_future | Representa um futuro que corresponde a uma operação assíncrona do C++ AMP. |
Classe extent | Representa um vetor de valores inteiros N que especificam os limites de um espaço de dimensão N que tem uma origem de zero. Os valores no vetor de coordenadas são ordenados do mais significativo para o menos significativo. Por exemplo, no espaço tridimensional cartesiano, o vetor de extensão (7,5,3) representa um espaço no qual a coordenada z varia de 0 a 7, a coordenada y varia de 0 a 5 e as coordenadas x variam de 0 a 3. |
Classe index | Define um ponto de índice de dimensão N. |
Classe invalid_compute_domain | A exceção gerada quando o runtime não pode iniciar um kernel usando o domínio de computação especificado no site de chamada parallel_for_each . |
Classe out_of_memory | A exceção gerada quando um método falha devido à falta de memória do sistema ou do dispositivo. |
Classe runtime_exception | O tipo base para exceções na biblioteca C++ AMP. |
Classe tile_barrier | Uma classe de funcionalidade que só é criável pelo sistema e é passada para um lambda parallel_for_each em bloco como parte do parâmetro tiled_index . Ele fornece um método wait() , cuja finalidade é sincronizar a execução de threads que estão em execução no grupo de threads (bloco). |
Classe tiled_extent | Um objeto tiled_extent é um objeto extent de uma a três dimensões que subdivide o espaço de extensão em blocos unidimensionais, bidimensionais ou tridimensionais. |
Classe tiled_index | Fornece um índice em um objeto tiled_grid . Essa classe tem propriedades para acessar elementos relativos à origem do bloco local e relativos à origem global. |
Classe uninitialized_object | A exceção que é lançada quando um objeto não inicializado é usado. |
Classe unsupported_feature | A exceção que é lançada quando um recurso sem suporte é usado. |
Enumerações
Nome | Descrição |
---|---|
access_type Enumeração | Especifica o tipo de acesso a dados. |
queuing_mode Enumeração | Especifica os modos de enfileiramento com suporte no acelerador. |
Operadores
Operador | Descrição |
---|---|
operator== Operator (C++ AMP) | Determina se as estruturas de dados especificadas são iguais. |
operator!= Operator (C++ AMP) | Determina se as estruturas de dados especificadas são desiguais. |
operator+ Operator (C++ AMP) | Calcula a soma do componente inteiro dos argumentos especificados. |
operator- Operator (C++ AMP) | Calcula a diferença do componente inteiro entre os argumentos especificados. |
operator* Operator (C++ AMP) | Calcula o produto do componente inteiro dos argumentos especificados. |
operador/Operador (C++ AMP) | Calcula o quociente de componentes dos argumentos especificados. |
operator% Operator (C++ AMP) | Calcula o módulo do primeiro argumento especificado pelo segundo argumento especificado. |
Funções
Nome | Descrição |
---|---|
all_memory_fence | Bloqueia a execução de todos os threads em um bloco até que todos os acessos à memória tenham sido concluídos. |
amp_uninitialize | Cancela a inicialização do runtime C++ AMP. |
atomic_compare_exchange | Sobrecarregado. Se o valor armazenado no local especificado for igual ao primeiro valor especificado, o segundo valor especificado será armazenado no mesmo local que uma operação atômica. |
atomic_exchange | Sobrecarregado. Define o valor armazenado no local especificado para o valor especificado como uma operação atômica. |
atomic_fetch_add | Sobrecarregado. Define o valor armazenado no local especificado para a soma desse valor e um valor especificado como uma operação atômica. |
atomic_fetch_and | Sobrecarregado. Define o valor armazenado no local especificado para o bit a bit and desse valor e um valor especificado como uma operação atômica. |
atomic_fetch_dec | Sobrecarregado. Decrementa o valor armazenado no local especificado e armazena o resultado no mesmo local que uma operação atômica. |
atomic_fetch_inc | Sobrecarregado. Incrementa o valor armazenado no local especificado e armazena o resultado no mesmo local que uma operação atômica. |
atomic_fetch_max | Sobrecarregado. Define o valor armazenado no local especificado para o maior desse valor e um valor especificado como uma operação atômica. |
atomic_fetch_min | Sobrecarregado. Define o valor armazenado no local especificado para o menor desse valor e um valor especificado como uma operação atômica. |
atomic_fetch_or | Sobrecarregado. Define o valor armazenado no local especificado para o bit a bit or desse valor e um valor especificado como uma operação atômica. |
atomic_fetch_sub | Sobrecarregado. Define o valor armazenado no local especificado para a diferença desse valor e um valor especificado como uma operação atômica. |
atomic_fetch_xor | Sobrecarregado. Define o valor armazenado no local especificado para o bit a bit xor desse valor e um valor especificado como uma operação atômica. |
copy | Copia um objeto C++ AMP. Todos os requisitos de transferência de dados síncronos são atendidos. Os dados não podem ser copiados quando o código está executando código em um acelerador. A forma geral dessa função é copy(src, dest) . |
copy_async | Copia um objeto C++ AMP e retorna um completion_future que pode ser aguardado. Os dados não podem ser copiados quando o código está em execução em um acelerador. A forma geral dessa função é copy(src, dest) . |
direct3d_abort | Anula a execução de uma função que tem a cláusula de restrição restrict(amp) . |
direct3d_errorf | Imprime uma cadeia de caracteres formatada na janela Saída do Visual Studio e gera uma exceção runtime_exception que tem a mesma cadeia de caracteres de formatação. |
direct3d_printf | Imprime uma cadeia de caracteres formatada na janela Saída do Visual Studio. Ele é chamado de uma função que tenha a cláusula de restrição restrict(amp) . |
global_memory_fence | Bloqueia a execução de todos os threads em um bloco até que todos os acessos de memória globais tenham sido concluídos. |
Função parallel_for_each (C++ AMP) | Executa uma função no domínio de computação. |
tile_static_memory_fence | Bloqueia a execução de todos os threads em um bloco até que os acessos de memória tile_static tenham sido concluídos. |
Constantes
Nome | Descrição |
---|---|
HLSL_MAX_NUM_BUFFERS constante | O número máximo de buffers permitidos pelo DirectX. |
MODULENAME_MAX_LENGTH constante | Armazena o comprimento máximo do nome do módulo. Esse valor deve ser o mesmo no compilador e no runtime. |
Requisitos
Cabeçalho: amp.h