OpenCL: pruebas de implementación interna en MQL5 - página 37

 
joo: Y lo más probable es que no se trate de la memoria, sino del propio mecanismo de paralelización de tareas del controlador OpenCL. Hay que experimentar con múltiplos del número de moscas.
¿Qué pasa si no sé cuántas moscas tengo (Intel HD Graphics 1000)? O 6 o bastante más... Si hay 6, ¿de dónde sale un aumento de 25 veces en la velocidad de ejecución?
 
Mathemat:
¿Qué pasa si no sé cuántas moscas tengo (Intel HD Graphics 1000)? O 6 o bastante más... Si hay 6, ¿de dónde sale el aumento de 25 veces en la velocidad de ejecución?
La ganancia x25 es de mi genio, bueno un poco de las operaciones vectoriales. El producto escalar de vectores cuenta en la GPU muy rápidamente.
 
MetaDriver: x25-crecimiento es de mi genio, bueno un poco de operaciones vectoriales. El producto escalar de vectores cuenta en la GPU muy rápidamente.

Hay que tener en cuenta que estas 6 abejas funcionan a 1,1 GHz, es decir, 2,5 veces menos que la frecuencia de la piedra. Así que son 2,5 abejas condicionales funcionando a la frecuencia de la piedra. Pero, ¿de dónde viene el 25x?

 
Mathemat:

No hay que olvidar que estas 6 abejas funcionan a 1,1 GHz, es decir, 2,5 veces menos que la frecuencia de la roca. Es decir, 2,5 abejas condicionales operando a la frecuencia de la piedra. Pero, ¿de dónde viene el 25x?

SSE maneja 4 flotadores a la vez * 2 núcleos + optimizaciones del compilador.
 
mql5: SSE maneja 4 float a la vez * 2 núcleos + optimizaciones del compilador.

¿Así que todo el trabajo se realiza en los núcleos de la CPU y no en las abejas de la GPU integrada?

Y la segunda: si no en las abejas, ¿cómo hacer que el código se ejecute exactamente en ellas?

P.D. AMD hizo este lío con la potente GPU integrada por una razón: el A8-3850 tiene nada menos que 400 abejas...

P.P.S. Así que, un representante del desarrollador se presentó y huyó de nuevo :(

 
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 con OpenCL 1.1 (16 unidades, 1225 MHz, 1536 Mb, versión 285.62)
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 con OpenCL 1.1 (16 unidades, 1225 MHz, 1536 Mb, versión 285.62)
^^ ¿Cómo probar?
 
casinonsk: ^^^^ ¿cómo hacer la prueba?
Ejecute como un script cualquiera de los códigos publicados por MetaDriver.
 
Mathemat:
Ejecute como un script cualquiera de los códigos publicados por MetaDriver.

EjecutarOpenCL.

1 núcleo se cargó a una media del 50%.

2 núcleos no utilizados en absoluto.

 
casinonsk:
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 con OpenCL 1.1 (16 unidades, 1225 MHz, 1536 Mb, versión 285.62)
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 con OpenCL 1.1 (16 unidades, 1225 MHz, 1536 Mb, versión 285.62)
^^ ¿Cómo probar?

Las GPUs de doble refuerzo ya están aquí. Muy interesante. ¿Qué CPU es?

Ejecute la secuencia de comandos en el archivo adjunto.

Archivos adjuntos:
 
Mathemat:

¿Así que todo el trabajo se realiza en los núcleos de la CPU y no en las abejas de la GPU integrada?

Y la segunda: si no en las abejas, ¿cómo hacer que el código se ejecute exactamente en ellas?

P.D. AMD hizo este lío con la potente GPU integrada por una razón: hay hasta 400 abejas en el A8-3850...

P.P.S. Así que apareció un representante de los desarrolladores y volvió a huir :(

Podría equivocarme en el hecho de que funcione en CPU, pero a juzgar por tu post y conociendo las peculiaridades internas, es muy posible que el trabajo se haya realizado en emulación de CPU de AMD.
Lamentablemente, en la implementación actual la elección del dispositivo depende del terminal, pero en la próxima versión será posible elegir uno de los dispositivos disponibles.