Espacio de nombres de simultaneidad (C++ AMP)

Proporciona clases y funciones que aceleran la ejecución de código C++ en el hardware de datos en paralelo. Para obtener más información, consulte Información general sobre C++ AMP.

Sintaxis

namespace Concurrency;

Members

Espacios de nombres

Nombre Descripción
Concurrency::direct3d (espacio de nombres) Proporciona funciones que admiten interoperabilidad de D3D. Habilita el uso sin problemas de los recursos D3D para el cálculo en el código AMP y el uso de los recursos creados con AMP en código D3D, sin crear copias intermedias redundantes. Puede usar C++ AMP para acelerar incrementalmente las secciones de cálculo intensivo de las aplicaciones DirectX y usar la API D3D en los datos producidos por los cálculos de AMP.
Concurrency::fast_math (espacio de nombres) Las funciones del espacio de nombres fast_math no cumplen con el estándar C99. Solo se proporcionan versiones de precisión sencilla de cada función. Estas funciones usan las funciones intrínsecas de DirectX, que son más rápidas que las funciones correspondientes del espacio de nombres precise_math y no requieren la compatibilidad de doble precisión extendida en el acelerador, pero son menos precisas. Hay dos versiones de cada función para la compatibilidad de nivel de origen con el código C99; ambas toman y devuelven valores de precisión sencilla.
Concurrency::graphics (espacio de nombres) Proporciona tipos y funciones que están diseñados para la programación de gráficos.
Concurrency::precise_math (espacio de nombres) Las funciones del espacio de nombres precise_math cumplen con el estándar C99. Se incluyen las versiones de simple precisión y de doble precisión de cada función. Estas funciones, incluidas las funciones de precisión simple, requieren la compatibilidad de doble precisión extendida en el acelerador.

Clases

NOMBRE Descripción
accelerator (clase) Representa una abstracción de un nodo de cálculo físico optimizado para DP.
accelerator_view (clase) Representa una abstracción del dispositivo virtual en un acelerador C++ AMP de datos en paralelo.
accelerator_view_removed (clase) La excepción que se produce cuando una llamada de DirectX subyacente produce un error debido al mecanismo de detección de tiempo de espera y recuperación de Windows.
array (clase) Un agregado de datos de una accelerator_view en el dominio de la cuadrícula. Es una colección de variables, una para cada elemento de un dominio de la cuadrícula. Cada variable contiene un valor correspondiente a algún tipo de C++.
array_view (clase) Representa una vista de los datos de una matriz<T,N>.
completion_future (clase) Representa un futuro que corresponde a la operación asincrónica de C++ AMP.
Clase extent Representa un vector de valores enteros de N que especifican los límites de un espacio de N dimensiones que tiene un origen de 0. Los valores del vector de coordenadas se ordenan desde el más significativo al menos significativo. Por ejemplo, en el espacio cartesiano de 3 dimensiones, el vector de medida (7,5,3) representa un espacio en el cual la coordenada Z está comprendida entre 0 y 7, la coordenada Y está comprendida entre 0 y 5 y la coordenada x está comprendida entre 0 y 3.
index (clase) Define un punto de índice de n dimensiones.
invalid_compute_domain (clase) La excepción que se produce cuando el runtime no puede iniciar un kernel mediante el dominio del cálculo especificado en el sitio de llamada parallel_for_each.
out_of_memory (clase) La excepción se produce cuando un método produce un error debido a la falta de memoria del sistema o del dispositivo.
runtime_exception (clase) El tipo base para las excepciones en la biblioteca de C++ AMP.
tile_barrier (clase) Una clase de capacidad que solo puede crear el sistema y que se pasa a una expresión lambda en mosaico parallel_for_each como parte del parámetro tiled_index. Proporciona un método, wait(), cuyo propósito es sincronizar la ejecución de subprocesos que se ejecutan en el grupo de subprocesos (mosaico).
tiled_extent (clase) Un objeto tiled_extent es un objeto extent de una a tres dimensiones que divide el espacio de la extensión en un mosaico de una, dos o tres dimensiones.
tiled_index (clase) Proporciona un índice en un objeto tiled_grid. Esta clase tiene propiedades para tener acceso a elementos relacionados con el origen local del mosaico y con el origen global.
uninitialized_object (clase) La excepción que se produce cuando se usa un objeto no inicializado.
unsupported_feature (clase) La excepción que se produce cuando se usa una función no compatible.

Enumeraciones

Nombre Descripción
access_type (enumeración) Especifica el tipo de acceso de los datos.
queuing_mode Enumeration Especifica los modos de la puesta en cola que se admiten en el acelerador.

Operadores

Operador Descripción
Operador operator== (C++ AMP) Determina si las estructuras de datos especificadas son iguales.
Operador operator!= (C++ AMP) Determina si las estructuras de datos especificadas no son iguales.
Operador operator+ (C++ AMP) Calcula la suma de todos los componentes de los argumentos especificados.
Operador operator- (C++ AMP) Calcula la diferencia de todos los componentes entre los argumentos especificados.
Operador operator* (C++ AMP) Calcula el producto de todos los componentes de los argumentos especificados.
operator/ (Operador) (C++ AMP) Calcula el cociente de todos los componentes de los argumentos especificados.
Operador operator% (C++ AMP) Calcula el módulo del primer argumento especificado dividido por el segundo argumento especificado.

Functions

Nombre Descripción
all_memory_fence Bloquea la ejecución de todos los subprocesos de un mosaico hasta que se hayan completado todos los accesos a memoria.
amp_uninitialize Anula la inicialización del runtime de C++ AMP.
atomic_compare_exchange Con sobrecarga. Si el valor almacenado en la ubicación especificada es igual al primer valor especificado, el segundo valor especificado se almacena en la misma ubicación como una operación atómica.
atomic_exchange Con sobrecarga. Establece el valor almacenado en la ubicación especificada en el valor especificado como una operación atómica.
atomic_fetch_add Con sobrecarga. Establece el valor almacenado en la ubicación especificada en la suma de ese valor y un valor especificado como una operación atómica.
atomic_fetch_and Con sobrecarga. Establece el valor almacenado en la ubicación especificada en el operador and bit a bit de ese valor y un valor especificado como una operación atómica.
atomic_fetch_dec Con sobrecarga. Disminuye el valor almacenado en la ubicación especificada y almacena el resultado en la misma ubicación como una operación atómica.
atomic_fetch_inc Con sobrecarga. Incrementa el valor almacenado en la ubicación especificada y almacena el resultado en la misma ubicación como una operación atómica.
atomic_fetch_max Con sobrecarga. Establece el valor almacenado en la ubicación especificada en el mayor entre ese valor y un valor especificado como una operación atómica.
atomic_fetch_min Con sobrecarga. Establece el valor almacenado en la ubicación especificada en el menor entre ese valor y un valor especificado como una operación atómica.
atomic_fetch_or Con sobrecarga. Establece el valor almacenado en la ubicación especificada en el operador or bit a bit de ese valor y un valor especificado como una operación atómica.
atomic_fetch_sub Con sobrecarga. Establece el valor almacenado en la ubicación especificada en la diferencia entre ese valor y un valor especificado como una operación atómica.
atomic_fetch_xor Con sobrecarga. Establece el valor almacenado en la ubicación especificada en el operador xor bit a bit de ese valor y un valor especificado como una operación atómica.
copy Copia un objeto C++ AMP. Se cumplen todos los requisitos sincrónicos de transferencia de datos. Los datos no se pueden copiar cuando el código está ejecutando código en un acelerador. La forma general de esta función es copy(src, dest).
copy_async Copia un objeto C++ AMP y devuelve un objeto completion_future por el que se puede esperar. Los datos no se pueden copiar cuando el código se está ejecutando en un acelerador. La forma general de esta función es copy(src, dest).
direct3d_abort Anula la ejecución de una función con la cláusula de restricción restrict(amp).
direct3d_errorf Imprime una cadena con formato en la ventana Salida de Visual Studio y provoca una excepción runtime_exception que tiene la misma cadena de formato.
direct3d_printf Imprime una cadena con formato en la ventana Salida de Visual Studio. Se le llama desde una función con la cláusula de restricción restrict(amp).
global_memory_fence Bloquea la ejecución de todos los subprocesos de un mosaico hasta que se hayan completado todos los accesos a memoria globales.
función parallel_for_each (C++ AMP) Ejecuta una función en el dominio de cálculo.
tile_static_memory_fence Bloquea la ejecución de todos los subprocesos de un mosaico hasta que se hayan completado todos los accesos a memoria de tile_static.

Constantes

Nombre Descripción
constante HLSL_MAX_NUM_BUFFERS El número máximo de búferes permitido por DirectX.
MODULENAME_MAX_LENGTH (constante) Almacena la longitud máxima del nombre del módulo. Este valor debe ser el mismo en el compilador y en el runtime.

Requisitos

Encabezado: amp.h

Consulte también

Referencia (C++ AMP)