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

 

Mathemat:

2012.06.02 05:49:25     OpenCL  CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.2 (2 units, 2793 MHz, 8040 Mb, version 2.0 (sse2))
2012.06.02 05:49:25     OpenCL  GPU: Advanced Micro Devices, Inc. ATI RV770 with OpenCL 1.0 (10 units, 780 MHz, 512 Mb, version CAL 1.4.1720)
2012.06.02 05:49:25     OpenCL  CPU: Intel(R) Corporation  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version 1.1)

Es decir, la CPU de Intel primero con el motor OCL de Intel, luego mi dinosaurio HD 4870, y luego piedra de nuevo pero con motor AMD. Guión:

Las versiones son diferentes, es decir, ¿la versión es independiente del hardware?

Tengo OCL AMD 1.1, ¿hay alguna forma de arreglarlo a 1.2? Tal vez sea más rápido.

Encontré el nuevo AMD APP SDK 2.7 con soporte para OCL 1.2, informaré de los nuevos resultados (si se modifican).

Lo he instalado y la versión no ha cambiado. Puede ser que no haya soporte de hardware o algo más.

 
fyords: Ponlo, la versión no ha cambiado. Probablemente no hay soporte de hardware o algo así.

No puede ser. Debería ser 1,2. En primer lugar, AMD se ocuparía de sus propias piedras, y después de las de los demás. Se levantaría sobre los que no son suyos. Además, ambos fabricantes tienen SSE2 desde hace mucho tiempo.

Pero la diferencia no es grande, alrededor del 10%, tal vez.

 
Mathemat:

No puede ser. Tiene que ser 1,2. Al menos AMD se ocuparía primero de sus propias piedras y luego de las ajenas. Funcionaría en aquellos que no le pertenecen. Además, ambos fabricantes tienen SSE2 desde hace mucho tiempo.

Pero la diferencia no es grande, alrededor del 10%, tal vez.

Debo estar colapsando. Recientemente las actualizaciones dejaron de funcionar y ahora dice "versión no auténtica". Bien, mientras respire, déjalo respirar. Entonces reinstalaré y pondré una nueva OCL.

Tengo SSE2 e incluso más. Por supuesto, el 10% no es mucho, pero sigue siendo agradable.

P.D.: Gracias por las aclaraciones.

 
ilovebtc:

Por ejemplo, tengo una tarjeta gráfica Radeon 6930, que tiene 1280 procesadores de flujo. ¿Cómo aparecerá en la lista de agentes? Como 1 dispositivo, o los 1280.

Por sí mismo es más rápido que 10 procesadores, y la bonificación no es para un dispositivo añadido.

Una tarjeta gráfica no puede funcionar con código escrito en mql; sólo puede funcionar con código escrito en lenguajes especializados (OpenCL en nuestro caso). Por lo tanto, las tarjetas de vídeo en la nube sólo serán útiles para programas mql que utilicen OpenCL-API (con inserciones OpenCL).

Si entiendes todo esto, ignora mi comentario. Simplemente me pareció que algunas personas en el foro están esperando un aumento en la productividad de los programas más comunes de mql5 que no utilizan OpenCL para conectarse a la nube. Este no es el caso.

 

Instalado el SDK de Intel y AMD.

2012.06.07 18:40:28 OpenCL CPU: Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz with OpenCL 1.1 (2 units, 2100 MHz, 2045 Mb, version 1.1)

2012.06.07 18:40:28 OpenCL CPU: GenuineIntel Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz with OpenCL 1.2 (2 units, 2094 MHz, 2045 Mb, version 2.0 (sse2)) 

2012.06.07 18:40:55 vect_v2_all_devices (EURUSD,H1) =======================================
2012.06.07 18:40:55 vect_v2_all_devices (EURUSD,H1) OCL martices mul:         ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000
2012.06.07 18:50:04 vect_v2_all_devices (EURUSD,H1) CPUTime = 548.515
2012.06.07 18:50:04 vect_v2_all_devices (EURUSD,H1) ---------------
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) Device = 0: time = 15.975 sec.
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 34.336
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1571,356 ) = 2.88011026;    thirdCPU[ 1571,356 ] = 2.88011026;    buf[ 1571,356 ] = 2.88010764
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 791,407 ) = 1.36050534;    thirdCPU[ 791,407 ] = 1.36050534;    buf[ 791,407 ] = 1.36050797
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1920,1928 ) = 2.97455144;    thirdCPU[ 1920,1928 ] = 2.97455144;    buf[ 1920,1928 ] = 2.97455001
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 386,216 ) = -1.05270028;    thirdCPU[ 386,216 ] = -1.05270028;    buf[ 386,216 ] = -1.05269444
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 158,1896 ) = 2.30077577;    thirdCPU[ 158,1896 ] = 2.30077577;    buf[ 158,1896 ] = 2.30077529
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1403,1477 ) = 5.44755507;    thirdCPU[ 1403,1477 ] = 5.44755507;    buf[ 1403,1477 ] = 5.44755411
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 190,97 ) = -0.19755134;    thirdCPU[ 190,97 ] = -0.19755134;    buf[ 190,97 ] = -0.19754831
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 694,1569 ) = 5.30565643;    thirdCPU[ 694,1569 ] = 5.30565643;    buf[ 694,1569 ] = 5.30566406
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1084,703 ) = -0.40982622;    thirdCPU[ 1084,703 ] = -0.40982622;    buf[ 1084,703 ] = -0.40982300
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 613,1814 ) = -2.08050942;    thirdCPU[ 613,1814 ] = -2.08050942;    buf[ 613,1814 ] = -2.08050990
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) ________________________
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) Device = 1: time = 14.868 sec.
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 36.892
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 726,1509 ) = -3.87149954;    thirdCPU[ 726,1509 ] = -3.87149954;    buf[ 726,1509 ] = -3.87148523
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 408,1551 ) = -3.54236746;    thirdCPU[ 408,1551 ] = -3.54236746;    buf[ 408,1551 ] = -3.54237366
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 837,1133 ) = -1.46401167;    thirdCPU[ 837,1133 ] = -1.46401167;    buf[ 837,1133 ] = -1.46400595
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1885,1406 ) = 3.41383481;    thirdCPU[ 1885,1406 ] = 3.41383481;    buf[ 1885,1406 ] = 3.41383505
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 419,930 ) = -2.05204225;    thirdCPU[ 419,930 ] = -2.05204225;    buf[ 419,930 ] = -2.05204272
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 895,1065 ) = 2.29360199;    thirdCPU[ 895,1065 ] = 2.29360199;    buf[ 895,1065 ] = 2.29360104
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1687,1449 ) = 2.12151670;    thirdCPU[ 1687,1449 ] = 2.12151670;    buf[ 1687,1449 ] = 2.12152243
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1227,1863 ) = 4.48004580;    thirdCPU[ 1227,1863 ] = 4.48004580;    buf[ 1227,1863 ] = 4.48004818
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1545,234 ) = 2.60638309;    thirdCPU[ 1545,234 ] = 2.60638309;    buf[ 1545,234 ] = 2.60638452
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 446,1500 ) = -8.61246967;    thirdCPU[ 446,1500 ] = -8.61246967;    buf[ 446,1500 ] = -8.61247253
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) ________________________

¿Es bueno o malo?

 
Manov: ¿Es eso malo o bueno?

Bueno, es un procesador móvil de 2 núcleos, lanzado hace 4,5 años.

El progreso continúa: parece que las nuevas instrucciones SSE y otras innovaciones arquitectónicas desempeñan el papel principal en él. Mi presupuesto es 4-5 veces más rápido en esta tarea :)

Pero da una muy buena ganancia en OpenCL. Está bien, así es como debe ser.

 
Mathemat:

Bueno, es un procesador móvil de 2 núcleos lanzado hace 4,5 años.

El progreso no se detiene: parece que las nuevas instrucciones de ESS y otras innovaciones arquitectónicas desempeñan un papel importante en él. Mi presupuesto es 4-5 veces más rápido en esta tarea :)

Pero da una muy buena ganancia en OpenCL. Está bien, así es como debe ser.

¡Muchas gracias!

¿Entiendo correctamente que para los grandes cálculos matemáticos, si me arrastro a OpenCL, el tiempo de cálculo será 30+ veces menor?

 
Manov: ¿Entiendo correctamente que si utilizo OpenCL para los cálculos matemáticos grandes el tiempo de ejecución será 30+ veces menor?

Pues sí, más o menos, en una tarjeta discreta. De todos modos, mi HD 4870 hace los mismos cálculos en 0,5 segundos.

Pero hay que entender que no todos los cálculos intensivos se prestan a una aceleración decente.

 

Buenas noches a todos.

Traté de entender el uso de OpenCL en Metatrader5, pero no pude entrar en el meollo de la cuestión.

Me puede decir si es posible utilizar la tarjeta de vídeo para la aceleración adicional de las pruebas en MT5 Tester y qué hacer para eso.

También he probado el script parallel_tester_00-01x_new_cycle, pero ¿cómo funciona?

 
vittt:

Buenas noches a todos.

Traté de entender el uso de OpenCL en Metatrader5, pero no pude entrar en el fondo de la cuestión.

Me puede decir si es posible utilizar la tarjeta de vídeo para la aceleración adicional de las pruebas en MT5 Tester y qué hacer para eso.

También he probado el script parallel_tester_00-01x_new_cycle, pero ¿cómo funciona?

Hay dos grandes artículos en este sitio sobre este tema, que describen todo con gran detalle: