Compartir por


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;

Miembros

Espacios de nombres

Nombre Descripción
Concurrency::direct3d Namespace 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 Namespace Las funciones en el espacio de nombres fast_math no son conformes al estándar C99. Solo se proporcionan versiones de precisión sencilla de cada función. Estas funciones utilizan las funciones intrínsecas de DirectX, que son más rápidas que las funciones correspondientes en el espacio de nombres namespace precise_math y no requieren soporte 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 Namespace Las funciones en el espacio de nombres precise_math son conformes con 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 soporte de doble precisión extendida en el acelerador.

Clases

Nombre Descripción
Acelerador Clase Representa una abstracción de un nodo de cálculo físico optimizado para DP.
accelerator_view Class Representa una abstracción de dispositivo virtual en un acelerador C++ AMP de paralelo de datos.
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.
Clase array Un agregado de datos en un 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>.
Clase completion_future 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 Class Define un punto de índice de n dimensiones.
Clase invalid_compute_domain La excepción que se produce cuando el runtime no puede iniciar un kernel mediante el dominio de cómputo 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.
RuntimeException 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 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 (tile).
Clase tiled_extent Un tiled_extent objeto es un extent objeto de una a tres dimensiones que subdivide el espacio de la extensión en baldosas de uno, 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.
Enumeración queuing_mode 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 != (C++ AMP) Determina si las estructuras de datos especificadas no son iguales.
Operador + (C++ AMP) Calcula la suma de todos los componentes de los argumentos especificados.
Operador (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.

Funciones

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 Desinicializa el entorno de ejecución de C++ AMP.
intercambio_atómico_comparativo Sobrecargado 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 Sobrecargado Establece el valor almacenado en la ubicación especificada en el valor especificado como una operación atómica.
atomic_fetch_add Sobrecargado 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 Sobrecargado Establece el valor almacenado en la ubicación especificada al resultado de la operación bit a bit AND de ese valor y un valor especificado, como una operación atómica.
atomic_fetch_dec Sobrecargado 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 Sobrecargado 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 Sobrecargado 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 Sobrecargado 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 Sobrecargado Establece el valor almacenado en la ubicación especificada en el resultado de la operación AND a nivel de bits de ese valor y un valor especificado como una operación atómica.
atomic_fetch_sub Sobrecargado 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 Sobrecargado Establece el valor almacenado en la ubicación especificada al realizar una operación atómica de AND bit a bit entre ese valor y uno especificado.
copiar 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 completion_future 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 que tiene la cláusula de restricción restrict(amp).
direct3d_errorf Imprime una cadena con formato en la ventana Output de Visual Studio y provoca una excepción runtime_exception que tiene la misma cadena de formato.
direct3d_printf Imprime una cadena formateada en la ventana Salida de Visual Studio. Se llama desde una función que tiene 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) en C++ AMP Ejecuta una función en el dominio de cálculo.
tile_static_memory_fence Bloquea la ejecución de todos los subprocesos en un mosaico hasta que se hayan completado 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)