OpenCL: pruebas de implementación interna en MQL5 - página 58
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Bueno, por fin, lo estábamos esperando. Si está listo para experimentar, instale Intel OpenCL Runtime ( instrucciones del enlace).
Ejecuta el script sin cambiar nada en él y publica el log desde la pestaña "Expertos" tal y como hicieron tus compañeros anteriores. El script tardará unos 3 minutos en ejecutarse en tu gema, ten paciencia. Al mismo tiempo, descubriremos cómo se ejecuta OpenCL en la piedra más fría de Sandy Bridge.
Si no tienes paciencia o crees que está por encima de tus posibilidades, no pasa nada, no te ofendas.
P.D. El propósito de este script es ver lo que una CPU desnuda puede hacer sin ningún tipo de dragones de vídeo discretos. Sospecho que con el Intel Runtime correctamente insertado, este script tendrá una aceleración alrededor de 200 o incluso ligeramente superior.
Hay dudas de que Intel OpenCL Runtime esté instalado correctamente.
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1347.164383561644
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==0.9316 at 10253 pass
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 295029 ms
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 4
Hay dudas de que Intel OpenCL Runtime esté instalado correctamente.
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms
Probablemente has puesto el argumento de CLContextCreate() a algo distinto de cero. ¡Bueno, te pedí que no cambiaras nada! Ya conocemos las capacidades de su dragón de vídeo de dos cabezas. Pero parece que usted tiene incluso varios de ellos.
Según mis estimaciones aproximadas, en CLContextCreate(0) deberías tener cifras de tiempo de CPU = 180000 ms y de GPU = 900 ms (aproximadamente). Su primer tiempo de ejecución es extrañamente alto para una CPU así. ¿Quizás estaba sobrecargado con otras tareas?
¿Puedes ejecutar el script tal y como lo he adjuntado, sin cambiar nada en el código, ni un solo carácter?
P.D. Por supuesto, tal vez dispositivo = 0 no corresponde a la CPU sino a otra cosa. Bien, entonces experimenta (de 0 a 3). En teoría, el mayor tiempo de la GPU debería corresponder a la CPU desnuda, es decir, al host.
No has puesto cero como argumento de CLContextCreate() sino otra cosa. ¡Bueno, te pedí que no cambiaras nada! Ya conocemos las capacidades de su dragón de vídeo de dos cabezas. Pero parece que tienes varios.
Según mi estimación aproximada, en CLContextCreate(0) deberías tener cifras del orden de tiempo de CPU = 180000 ms y tiempo de GPU = 900 ms (aproximadamente). Su primer tiempo de ejecución es extrañamente alto para una CPU así. ¿Quizás estaba sobrecargado con otras tareas?
¿Puedes ejecutar el script tal y como lo he adjuntado, sin cambiar nada, ni un solo carácter?
P.D. Por supuesto, tal vez dispositivo = 0 no corresponde a la CPU sino a otra cosa. Bien, entonces experimenta (de 0 a 3). En teoría, el mayor tiempo de la GPU debería corresponder a la CPU desnuda, es decir, al host.
¡No he cambiado los parámetros! Lo he hecho tal cual.
Según el vídeo, sí es 2x590.
Lo he vuelto a intentar con CLContextCreate(0)1,2,3, el resultado es el mismo que antes.
El problema puede ser conIntel OpenCL Runtime.
¡No cambiaron los parámetros! Empezó tal cual.
Lo ejecuté de nuevo con CLContextCreate(0)1,2,3 el resultado es el mismo que antes.¿Todos los resultados son iguales? No lo creo... Bueno, este script no puede tener un tiempo de GPU = 219 ms en una CPU desnuda. En el mejor de los casos, serían unos 800 ms, pero no unos 200 ms.
Este es mi resultado típico (tengo una CPU Pentium G840):
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 88.40817091454272
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==1.05116 at 7785 pass
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CPU time = 235873 ms
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==1.05116 at 7785 pass
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) GPU time = 2668 ms
2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK!
2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) CLGetInfoInteger() returned 1
Bien, sigamos adelante.
¿Son todos los resultados iguales? No lo creo... Bueno, este script no puede tener un tiempo de GPU = 219 ms en una CPU desnuda. En el mejor de los casos será de unos 800 ms, pero no de unos 200 ms.
Vale, olvídalo.
Acabo de probar de nuevo conCLContextCreate(0)
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1265.405982905983
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==1.48772 at 2051 pass
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 296105 ms
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==1.48772 at 2051 pass
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 234 ms
2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!
2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 5
Evidentemente, se trata de una tarjeta discreta, no de la CPU: esos aumentos de velocidad en la emulación son difícilmente posibles. Y el número de dispositivos que tienes ya es de 5, es escalofriante.
Si no te importa ejecutar un código ligeramente modificado, por favor, y publicar el resultado aquí. En el código, los cálculos para los distintos dispositivos OpenCL se ponen en un bucle (deberían ser rápidos) mientras que los cálculos en x86, el más largo, se ejecutan sólo una vez. Será largo, pero el script en sí se ejecuta una vez.
Me doy cuenta de que ya te estoy aburriendo. Pero en cualquier caso sería una buena información para el equipo de soporte.Tengo un resultado interesante )) Lo tengo, no es el número total de dispositivos, es el número actual
Aunque los cálculos están en proceso, los publicaré cuando estén listos.
Por cierto, ni CLGetInfoInteger() ni CL_DEVICE_COUNT están presentes en la ayuda.
PS. resultado
PS. resultado
Actualice su ayuda, la suya está obsoleta.
2. Usted tiene
Es muy probable que el primer número, 11357 ms, se refiera al host (CPU desnuda), y el segundo, 998 ms, a la tarjeta gráfica. El orden de ganancia en el host, a grandes rasgos, es bastante coherente con la aceleración conseguida en AMD OpenCL (unas 38 veces en un Athlon II de 4 núcleos). Aunque en realidad no es mucho, debería ser más, cerca de 50-60. Es muy posible que su memoria sea muy lenta.
La cifra CpuTime/GpuTime, por supuesto, sólo se calcula para el último dispositivo calculado.
1. actualizar la ayuda, la suya está claramente desfasada.
2. La cifra CpuTime/GpuTime, por supuesto, sólo se calcula para el último dispositivo calculado.
1. actualizado manualmente todo está ahí, gracias, pero ¿no se actualiza la ayuda junto con el terminal y el meta-editor?
2. Sí, pero aún así, bonito ).
Con tu hardware está casi claro, sólo tienes el host siendo un dispositivo OpenCL. Por otra parte, es extraño que haya obtenido un resultado tan alto antes (página 51):
Por alguna razón no puedo sacar el cursor de la inserción del código. Y si cito a alguien, la misma tontería. ¿Es un error del foro?
Es más probable que sea un error del motor del foro, pero no siempre es así. Suelo hacer clic en la barra de HTML e insertar manualmente un par de letras después de la última etiqueta. Luego vuelvo al modo de edición visual del post.