Partilhar via


Namespace Concurrency (C++ AMP)

Fornece as classes e funções que aceleram a execução de código C++ no hardware de dados paralelos. Para obter mais informações, consulte Visão geral do C++ AMP

namespace Concurrency;

Membros

Namespaces

Nome

Descrição

Namespace Concurrency::direct3d

Fornece funções que suportam a interoperabilidade D3D Permite o uso direto de recursos de D3D para o cálculo no código de AMP e o uso de recursos criados no AMP no código de D3D, sem criar cópias intermediários redundantes. Você pode usar o C++ AMP acelerar de forma crescente as seções intensas de cálculo dos seus aplicativos DirectX, e usar o D3D API em dados gerados pelos cálculos AMP.

Namespace Concurrency::fast_math

As funções no namespace de fast_math não são compatíveis com C99. São fornecidas apenas versões de precisão simples de cada função. 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 de precisão dupla estendido no acelerador, mas são menos exatas. Há duas versões de cada função para compatibilidade no nível de fonte com o código C99; as duas versões adotam e retornam valores de precisão simples.

Namespace Concurrency::graphics

Fornece tipos e funções projetadas para a programação de elementos gráficos.

Namespace Concurrency::precise_math

As funções no namespace de precise_math são compatíveis com C99. As versões de precisão simples e de precisão dupla de cada função são incluídas. Essas funções, incluindo as funções de precisão simples, exigem suporte de precisão dupla estendido no acelerador.

Classes

Nome

Descrição

Classe accelerator

Representa uma abstração de um nó de cálculo físico otimizado por DP.

Classe accelerator_view

Representa uma abstração de dispositivo virtual em um acelerador de dados paralelo do C++ AMP.

Classe accelerator_view_removed

A exceção que é lançada quando uma chamada subjacente de DirectX falha devido ao mecanismo de detecção e de recuperação de tempo limite do Windows.

Classe array

Uma agregação de dados em um accelerator_view no domínio da grade. Ela é uma coleção de variáveis, uma para cada elemento em um domínio da grade. Cada variável mantém um valor que corresponde a algum tipo do C++.

Classe array_view

Representa uma visualização nos dados em uma matriz<T,N>.

Classe completion_future

Representa um futuro que corresponde à operação assíncrona de C++ AMP.

Classe extent (C++ AMP)

Representa um vetor de N valores inteiros que especificam os limites de um espaço N-dimensional que tenha uma origem em 0. Os valores no vetor de coordenadas são ordenados do mais significativo para o menos significativo. Por exemplo, no espaço cartesiano tridimensional, 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 a coordenada x varia de 0 a 3.

Classe index

Define um ponto de índice N dimensional.

Classe invalid_compute_domain

A exceção que é lançada quando o tempo de execução não pode iniciar um kernel usando o domínio de cálculo especificado no site de chamada de parallel_for_each.

Classe out_of_memory

A exceção que é lançada quando um método falha devido a perda 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 recurso que pode ser criada somente pelo sistema e é passada para um lambda parallel_for_each lado a lado como parte do parâmetro de tiled_index. Ela fornece um método, wait(), cujo objetivo é sincronizar a execução de threads em execução no grupo de segmentos (tile).

Classe tiled_extent

Um objeto tiled_extent é um objeto extent de uma das três dimensões que subdividem o espaço de extensão em blocos de uma, duas ou três dimensões.

Classe tiled_index

Fornece um índice em um objeto tiled_grid. Essa classe possui propriedades para acessar o elemento relacionado à origem do grupo local e relativo à 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

Enumeração access_type

Especifica o tipo de acesso aos dados.

Enumeração queuing_mode

Especifica os modos de fila que são suportados no acelerador.

Operadores

Operador

Descrição

Operador operator== (C++ AMP)

Determina se as estruturas de dados especificadas são iguais.

Operador operator!= (C++ AMP)

Determina se as estruturas de dados especificadas são desiguais.

Operador operator+ (C++ AMP)

Calcula a soma em todo componente dos argumentos especificados.

Operador operator- (C++ AMP)

Calcula a diferença em todo o componente entre os argumentos especificados.

Operador operator* (C++ AMP)

Calcula o produto em todo componente dos argumentos especificados.

Operador operator/ (C++ AMP)

Calcula o quociente em todo componente dos argumentos especificados.

Operador operator% (C++ AMP)

Calcula o módulo do primeiro argumento especificado pelo segundo argumento especificado.

Funções

Nome

Descrição

Função all_memory_fence

Impede a execução de todos os segmentos em um bloco até que todos os acessos à memória sejam concluídos.

Função amp_uninitialize

Encerra o tempo de execução do C++ AMP.

Função atomic_compare_exchange

Sobrecarregado. Se o valor armazenado no local especificado for considerado como igual ao primeiro valor especificado, então o segundo valor especificado será armazenado no mesmo local da operação atômica.

Função atomic_exchange (C++ AMP)

Sobrecarregado. Define o valor armazenado no local especificado como o valor especificado como uma operação atômica.

Função atomic_fetch_add (C++ AMP)

Sobrecarregado. Define o valor armazenado no local especificado como a soma desse valor e um valor especificado como uma operação atômica.

Função atomic_fetch_and (C++ AMP)

Sobrecarregado. Define o valor armazenado no local especificado como a combinação bit a bit and desse valor e um valor especificado como uma operação atômica.

Função atomic_fetch_dec

Sobrecarregado. Decrementa o valor armazenado no local especificado e armazena o resultado no mesmo local da operação atômica.

Função atomic_fetch_inc

Sobrecarregado. Incrementa o valor armazenado no local especificado e armazena o resultado no mesmo local da operação atômica.

Função atomic_fetch_max

Sobrecarregado. Define o valor armazenado no local especificado como o maior desse valor e um valor especificado como uma operação atômica.

Função atomic_fetch_min

Sobrecarregado. Define o valor armazenado no local especificado como o menor desse valor e um valor especificado como uma operação atômica.

Função atomic_fetch_or (C++ AMP)

Sobrecarregado. Define o valor armazenado no local especificado como a combinação bit a bit or desse valor e um valor especificado como uma operação atômica.

Função atomic_fetch_sub (C++ AMP)

Sobrecarregado. Define o valor armazenado no local especificado como a diferença desse valor e um valor especificado como uma operação atômica.

Função atomic_fetch_xor (C++ AMP)

Sobrecarregado. Define o valor armazenado no local especificado como a combinação bit a bit xor desse valor e um valor especificado como uma operação atômica.

Função copy

Copia um objeto de C++ AMP. Todos os requisitos de transferência síncrona de dados são atendidos. Os dados não podem ser copiados quando o código estiver sendo executado em um acelerador. A forma geral dessa função é copy(src, dest).

Função copy_async

Copia um objeto C++ AMP e retorna completion_future que pode ser atendido. Os dados não podem ser copiados quando o código estiver sendo executado em um acelerador. A forma geral dessa função é copy(src, dest).

Função direct3d_abort

Anula a execução de uma função que tem a cláusula da restrição restrict(amp).

Função direct3d_errorf

Imprime uma cadeia de caracteres formatada para a janela de Saída do Visual Studio e gerencia uma exceção de runtime_exception que possui a mesma cadeia de caracteres de formatação.

Função direct3d_printf

Imprime uma cadeia de caracteres formatada na janela de Saída do Visual Studio. É chamada de uma função que possui a cláusula da restrição restrict(amp).

Função global_memory_fence

Impede a execução de todos os segmentos em um bloco até que todos os acessos de memória globais estejam concluídos.

Função parallel_for_each (C++ AMP)

Executa uma função através do domínio do cálculo.

Função tile_static_memory_fence

Impede a execução de todos os segmentos em um bloco até que os acessos de memória tile_static estejam concluídos.

Constantes

Nome

Descrição

Constante HLSL_MAX_NUM_BUFFERS

O número máximo de buffers permitido pelo DirectX.

Constante MODULENAME_MAX_LENGTH

Armazena o comprimento máximo do nome do módulo. Esse valor deve ser o mesmo no compilador e no tempo de execução.

Requisitos

Cabeçalho: amp.h

Consulte também

Outros recursos

Referência (C++ AMP)