Partilhar via


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

Confira também

Referência (C++ AMP)