A los conspiranoicos del mundo y a los completos paranoicos, o simplemente a los que les gusta controlar el precio, ¡son bienvenidos! ;) - página 7

 
Mathemat:
Sí, estás presumiendo de tus cálculos en la GPGPU. ¿Alguna aceleración?

¿De dónde saca el portátil su aceleración? Se tarda más tiempo en copiar al buffer que en calcular.

Es sólo una prueba. Habrá aceleración cuando el cálculo sea relativamente pesado.

Sólo estoy añadiendo un script para calcular la correlación con un conjunto dado de patrones (512 patrones en paralelo) para toda la historia, y creo que habrá una ganancia de cien veces (por estimación). La autopsia mostrará cómo será realmente.

 

Y de todos modos, no estoy presumiendo, estoy popularizando OpenCL. ¡Allí! :)

También es divertido.

 
Mathemat:

¿Cómo es eso, alguna aceleración?

¡¡Eso es de yazzy!!

2012.03.02 01:15:10     Tester-512_Test_001 (EURUSD,M1) СPU time = 7223 ms
2012.03.02 01:15:10     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.01871 at 49 pass
2012.03.02 01:15:03     Tester-512_Test_001 (EURUSD,M1) GPU time = 312 ms
2012.03.02 01:15:03     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.01871 at 49 pass
2012.03.02 01:15:02     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

El resultado es el mismo (comprobación de validez), pero el tiempo es muy diferente. En este caso, 23 veces la diferencia. En cualquier caso, ha merecido la pena.

He ejecutado un perceptrón de una sola capa a través de un historial de 144000 barras, 512 pases de una sola vez. Me ha gustado. ;)

 
MetaDriver: En este caso, 23 veces la diferencia. De todos modos, valió la pena.
¡Eso es genial!
 
Mathemat:
Eso está muy bien.

Resulta que los tiempos típicos son incluso ligeramente mejores. Aquí tienes un vistazo a las repeticiones:

2012.03.02 01:26:59     Tester-512_Test_001 (EURUSD,M1) СPU time = 7238 ms
2012.03.02 01:26:59     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.80004 at 320 pass
2012.03.02 01:26:51     Tester-512_Test_001 (EURUSD,M1) GPU time = 281 ms
2012.03.02 01:26:51     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.80004 at 320 pass
2012.03.02 01:26:51     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!
2012.03.02 01:26:48     Tester-512_Test_001 (EURUSD,M1) СPU time = 7270 ms
2012.03.02 01:26:48     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.48404 at 207 pass
2012.03.02 01:26:41     Tester-512_Test_001 (EURUSD,M1) GPU time = 281 ms
2012.03.02 01:26:41     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.48404 at 207 pass
2012.03.02 01:26:41     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

Más de 25 veces. Incluso muy aha. :)

Era una neurona de 8 entradas. Ahora mira el de 16 entradas:

2012.03.02 01:32:32     Tester-512_Test_001 (EURUSD,M1) СPU time = 14618 ms
2012.03.02 01:32:32     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.22936 at 78 pass
2012.03.02 01:32:18     Tester-512_Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03.02 01:32:18     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.22936 at 78 pass
2012.03.02 01:32:17     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!
2012.03.02 01:32:01     Tester-512_Test_001 (EURUSD,M1) СPU time = 14618 ms
2012.03.02 01:32:01     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.21085 at 143 pass
2012.03.02 01:31:46     Tester-512_Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03.02 01:31:46     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.21085 at 143 pass
2012.03.02 01:31:46     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

Eso es 45 veces la diferencia.

Así es, cuanto más pesado sea el cálculo, menor será la sobrecarga constante (envío de matrices de ida y vuelta).

 

Y son 1024 pases en paralelo:

2012.03.02 01:45:04     Tester-512_Test_001 (EURUSD,M1) СPU time = 29282 ms
2012.03.02 01:45:04     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==0.73802 at 802 pass
2012.03.02 01:44:35     Tester-512_Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03.02 01:44:35     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==0.73802 at 802 pass
2012.03.02 01:46:36     Tester-512_Test_001 (EURUSD,M1) СPU time = 29265 ms
2012.03.02 01:46:36     Tester-512_Test_001 (EURUSD,M1) Result on Cpu МахResult==1.58618 at 821 pass
2012.03.02 01:46:06     Tester-512_Test_001 (EURUSD,M1) GPU time = 328 ms
2012.03.02 01:46:06     Tester-512_Test_001 (EURUSD,M1) Result on Gpu МахResult==1.58618 at 821 pass
2012.03.02 01:46:06     Tester-512_Test_001 (EURUSD,M1) OpenCL init OK!

Nota: en la GPU no hay ninguna diferencia (hay 1280 núcleos, es decir, toda la tarea cabe en una sola pasada).

La comprobación de la CPU, por supuesto, se realiza de forma secuencial.

Así pues, prácticamente se consigue el centenar de veces requerido: la diferencia es de 89,5474 veces (!)

 

Sí, los cálculos pesados en bucle son los mejores para OpenCL.

¿No tienes tú o alguien que conozcas un ordenador basado en el A8-3850 por ahí? Por cierto, tiene 400 pipelines gráficos (integrados).

 
Mathemat:

¿No tienes tú o alguien que conozcas un ordenador basado en el A8-3850 por ahí? Por cierto, tiene 400 GPU (integradas).

¿Hay alguna confusión? Aquí está http://kazan.kompiko.info/priceshop.php?desc_id=111255

Parece que no es nada especial, sólo cuatro núcleos, ni una palabra sobre el transportador.

 

Puede leer la descripción de la roca aquí. Dudo mucho que esta peña (o más bien su parte GPU) no soporte OpenCL.

Desde el punto de vista de la CPU, la piedra no es muy buena. Pero tiene un vídeo integrado decente y en los casos "buenos" puedes contar con decenas de veces de velocidad sin usar ningún monstruo de vídeo discreto. ¿No es un superordenador económico, eh?

Y "cinco" es tal, y resulta que la potencia de la piedra multinúcleo es casi inútil. Sin contar, por supuesto, la optimización: ¿qué diferencia hay en el número de núcleos, 4 o 6, si la optimización tiene que funcionar las 24 horas del día? Para el caso, ejecuta Cloud incluso en un honesto Celeron G530 de doble núcleo no tan rápido...

P.D. No soy fan de AMD, en todo caso. Sólo intento calcular a dónde nos llevará todo este lío de AMD.

 

Volodya, por favor, ejecuta este script e informa de los resultados.

Gracias a MQL5 por la ayuda.

Archivos adjuntos:
Razón de la queja: