Descargar MetaTrader 5
Manual de referencia de MQL5Trabajo con OpenCL 

Trabajo con OpenCL

Los programas en OpenCL sirven para ejecutar los cálculos en las tarjetas gráficas con el soporte del estándar OpenCL 1.1 o superior. Las tarjetas gráficas modernas cuentan con centenares de pequeños procesadores especializados que son capaces de realizar simultáneamente las operaciones matemáticas sencillas con los flujos de datos entrantes. El lenguaje OpenCL se encarga de estos cálculos paralelos y permite alcanzar una aceleración increíble para algunos tipos de tareas.

En algunas tarjetas gráficas, por defecto, está desactivado el modo de trabajo con los números del tipo double lo que provoca el error de compilación 5105. Para activar el modo del soporte de los números double, hay que insertar la siguiente directiva en el texto del programa OpenCL: #pragma OPENCL EXTENSION cl_khr_fp64 : enable. No obstante, si la tarjeta gráfica no soporta double, la inserción de esta directiva no servirá de nada.

Es recomendable escribir el código fuente de OpenCL en archivos CL aparte, que después se puedan incluir en el programa MQL5 con la ayuda de las variables de recurso.

Funciones para ejecutar programas en OpenCL:

Función

Acción

CLHandleType

Devuelve el tipo de manejador OpenCL como un valor de la enumeración ENUM_OPENCL_HANDLE_TYPE

CLGetInfoInteger

Devuelve el valor de una propiedad de números enteros para el objeto o dispositivo OpenCL

CLContextCreate

Crea el contexto OpenCL

CLContextFree

Elimina el contexto OpenCL

CLGetDeviceInfo

Recibe la propiedad del dispositivo desde el controlador de dispositivo OpenCL

CLProgramCreate

Crea un programa OpenCL desde el código fuente

CLProgramFree

Elimina un programa OpenCL

CLKernelCreate

Crea la función del arranque OpenCL

CLKernelFree

Elimina la función del arranque OpenCL

CLSetKernelArg

Establece un parámetro para la función OpenCL

CLSetKernelArgMem

Establece el búfer OpenCL como el parámetro de la función OpenCL

CLSetKernelArgMemLocal

Define el búfer local como argumento de la función núcleo

CLBufferCreate

Crea el búfer OpenCL

CLBufferFree

Elimina el búfer OpenCL

CLBufferWrite

Escribe un array en el búfer OpenCL

CLBufferRead

Lee el búfer OpenCL en un array

CLExecute

Ejecuta un programa OpenCL

CLExecutionStatus

Retorna el estado de ejecución del programa OpenCL

Véase también

OpenCL, Recursos


Actualizado: 2017.01.27