Discusión sobre el artículo "Cómo instalar y utilizar OpenCL para efectuar cálculos"

 

Artículo publicado Cómo instalar y utilizar OpenCL para efectuar cálculos:

Ya ha pasado más de un año desde que surgiese en MQL5 la posibilidad de escribir programas para OpenCL. Sin embargo, ni mucho menos todos los usuarios han valorado como merecen las posibilidades que brinda el uso de cálculos paralelos en sus asesores, indicadores y scripts. Este artículo pretende ayudarle a configurar OpenCL en su computadora personal, de manera que usted pueda probar esta tecnología por sí mismo en el terminal comercial MetaTrader 5.

How to Install and Use OpenCL for Calculations

Autor: MetaQuotes Software Corp.

 
Para demostrar la ventaja de usar OpenCL en MQL5, se escribió el script OpenCL_Sample.mq5, que calcula los valores de una función a partir de dos variables en algún conjunto y muestra el resultado en la ventana del gráfico<br/ translate="no">.

TC es también una función, cuyo resultado es algún indicador personalizado. Es decir, el optimizador es un cálculo de los valores de la función en algún conjunto, como en la cita dada.

¿Podemos hablar entonces de la conveniencia de un optimizador OpenCL estándar? ¿O hay escollos que no permitirán obtener aumentos de velocidad tan significativos (> 2 veces)?

Estoy aún más interesado en el trabajo del optimizador en modo mat.

 
OpenCL es muy adecuado para aquellos casos en los que es necesario realizar operaciones de cálculo uniformes en un gran conjunto de datos. Entonces tomamos un conjunto de valores, lo cortamos en trozos y entregamos cada trozo a un procesador distinto para que lo calcule. Esta es la ganancia de tiempo. En dos artículos mencionados en este artículo se describen más detalles sobre la tecnología OpenCL.
 

¿Puedes explicar la decodificación en el registro sobre los dispositivos encontrados con soporte OpenCL.

Primero viene el número de dispositivo en tu caso es device#0 luego el nombre del dispositivo nvidia GTX 580 , versión OpenCL del dispositivo, pero lo que está escrito entre paréntesis no está muy claro. ¿No debería indicarse el número de ALU (para nvidia CODA cores)??? y luego hay una frecuencia muy poco clara, no está claro a qué se refiere, normalmente la frecuencia del núcleo de vídeo no es superior a 1000 MHz.... Por favor descifralo.

OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 

Buenas tardes a todos.

Me podrían asesorar sobre este tema tan interesante:

1. ¿Existen ya Asesores Expertos para trading que utilicen OpenCL para los cálculos?

2. Si hay varias tarjetas de vídeo instaladas en el sistema, ¿se utilizarán todas para los cálculos o sólo una de ellas?

 

2. Cada experto sólo puede utilizar una tarjeta.

3. Varios expertos pueden utilizar varios dispositivos OpenCL al mismo tiempo.

 
Si varios dispositivos de un equipo pueden participar en cálculos OpenCL, ¿se utilizarán todos o sólo uno de ellos?
 
paladin800:
Si varios dispositivos de un ordenador pueden participar en cálculos OpenCL, ¿se utilizarán todos o sólo uno de ellos?

Ya había una respuesta más arriba

Renat:

2. Cada Asesor Experto puede utilizar sólo una tarjeta.

Puedes especificar explícitamente qué dispositivo debe ser utilizado por un programa MQL5 en particular. Mira la función CLContextCreate
 
sigma7i:

¿Puedes explicar la decodificación en el registro sobre los dispositivos encontrados con soporte OpenCL.

Primero viene el número de dispositivo en tu caso es device#0 luego el nombre del dispositivo nvidia GTX 580 , versión OpenCL del dispositivo, pero lo que está escrito entre paréntesis no está muy claro. ¿No debería indicarse el número de ALU (para nvidia CODA cores)??? y luego hay una frecuencia incomprensible, no está claro a qué se refiere, normalmente la frecuencia del núcleo de vídeo no es superior a 1000 MHz... Por favor, descifrarlo.

Incorrectamente hice las preguntas me disculpo....

las preguntas estan basadas en la imagen del articulo:

1. ¿qué significa "16 unidades"? ¿Y por qué no se especifica el número de núcleos de la tarjeta de vídeo?

2. ¿Qué significa 1630 MHz? ¿La frecuencia completa de la tarjeta de vídeo o de los componentes individuales?

foto

 

En primer lugar, OpenCL es su propia especificación de métodos de paralelismo independiente de la implementación de hardware. Por eso no se puede buscar una coincidencia completa con las especificaciones de la GPU.

Las unidades no son núcleos separados, sino grupos de núcleos. Las distintas arquitecturas tienen diferentes métodos para agrupar varios núcleos en unidades. Por ejemplo, NVIDIA puede tener 8, 32, 48 núcleos (o más) en una unidad. En los modos de CPU, las unidades se cuentan como núcleos lógicos de CPU.

La frecuencia la indica el dispositivo (tarjeta de vídeo, por ejemplo).

 
Hay otra ventaja de usar OpenCL, la ejecución de código OpenCL en paralelo con código MQL5.

La cuestión es que la llamada a la función CLExecute no es más que una orden al controlador OpenCL para que inicie la ejecución.
La espera a la finalización de la tarea OpenCL se produce al acceder a la cola de ejecución OpenCL, por ejemplo, al llamar a la función CLBufferRead, como ocurre en este ejemplo.


Entre las llamadas CLExecute y CLBufferRead, puedes realizar cualquier cálculo MQL5 que no acceda a la cola OpenCL.
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.