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

 
casinonsk: El segundo sigue a 0 de carga.

¿Y el tercero? ¿O no hay ninguno?

QE 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Count inticators = 16; Count history bars = 144000; Count pass = 480000

EF 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Resultado en Gpu MachResult==0.0 a 0 pass

Tengo la impresión de que la prueba salió mal de alguna manera. Ah, y pon el Count pass a un valor más bajo, 1280 es suficiente.

¿Y dónde están los resultados comparativos CPU vs GPU?

 
joo:


En la cuenta 262144 el controlador de la tarjeta de vídeo se bloquea inconscientemente. Sin embargo, vuelve a subir inmediatamente.

He descubierto por el método del profesor Tychkov que CountPass no puede ser más de 6628025 con CountBars 10, de lo contrario el compilador MQL se niega a compilar y genera un error:

'inds' - la sección de variables globales es demasiado grande ParallelTester_00-01x.mq5 86 7

Cuando CountBars es más pequeño, el compilador se salta valores aún más terribles de CountPas.

2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       Соunt inticators = 16; Count history bars = 10; Count pass = 6628025
2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       GPU time = 717 ms

¡Oh, Dios!

¿Cómo sabe el compilador MQL que simplemente no hay suficiente memoria en la GPU (o no en la GPU???)? - Parece que el controlador de la tarjeta de vídeo se bloquea por la falta de memoria.


a Vladimir:

¿Y por qué debo dar a cada mosca el mismo array (el consumo de memoria es directamente proporcional al número de CountPass)? - Que tomen los datos de un array común.

 
joo:

a Vladimir:

¿Por qué debo dar a cada mosca el mismo array (la memoria se consume en proporción directa al número de CountPass)? - Que tomen los datos de un array común.

Ya tienen un conjunto común de precios e indicadores.

Y en el array cuya longitud es CountPass, hay no cuadrículas (un parámetro optimizado). Es individual para cada cuadrícula.

--

... Pero me gusta tu forma de pensar. :)

 
joo:

Descubrí por el método del profesor Tychkov que CountPass no puede ser mayor que 6628025 con CountBars de 10, de lo contrario el compilador MQL se niega a compilar y genera un error:

'inds' - la sección de variables globales es demasiado grande ParallelTester_00-01x.mq5 86 7

Cuando CountBars es más pequeño, el compilador se salta valores aún más terribles de CountPas.

¡Oh, Dios!

¿Cómo sabe el compilador MQL que simplemente no hay suficiente memoria en la GPU (o no en la GPU???)? - Parece que el controlador de la tarjeta de vídeo se bloqueará debido a la falta de memoria.

¡А! Por lo tanto, hay un plus elemental en mi código (línea 82).

////////////float nets[sizeof(NETs)];   // Вот так было. В корне неправильно.
////////////float inds[sizeof(Inds)];  

////////////float nets[sizeof(NETs)/sizeof(float)];  // Вот так будет видно в чём была ошибка.
////////////float inds[sizeof(Inds)/sizeof(float)];  // И в принципе будет работать, хотя лучше...
// ...Вот так - правильно и понятно откуда ноги.
float nets[CountPass*CountInd];
float inds[CountInd*CountBars];  

¡¡¡Arréglalo y consigue casi cuadruplicar el "aumento de memoria" .....nasharoo...!!! :)))))))))))))

// Me hace sentir como Papá Noel en momentos como este... ;)

 
MetaDriver:

// En momentos como este me siento como Papá Noel... ;)

// Si tú eres Papá Noel, ¿quién soy yo?... ;)
 
He mirado el foro en inglés de los cinco. Hay un hilo similar, pero la actividad y el interés mostrados son incomparables a los del foro en ruso.
 
Mathemat:

¿Y el tercero? ¿O no hay ninguno?

Parece que la prueba salió mal de alguna manera. Y pon el Count pass a un valor menor, 1280 es suficiente.

¿Y dónde están los resultados comparativos entre CPU y GPU?

¡CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 OpenCL init OK!
IH 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Tiempo GPU = 187 ms
FN 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Count inticators = 16; Count history bars = 144000; Count pass = 1280
CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Resultado en Gpu MachResult==0.92493 a 1190 pass
 

Debe tener una función MQL que devuelva la temperatura de la tarjeta de vídeo. De lo contrario, es una buena manera de quemarse. No por su cuenta, sino por la del cliente.

// Si no hay función MQL, tendrá que usar DLL, lo que no es bueno - el mercado se corta y otros inconvenientes.

 
MetaDriver:

Debe tener una función MQL que devuelva la temperatura de la tarjeta de vídeo. De lo contrario, es una buena manera de quemarse. No por tu cuenta, sino por la del cliente.
También debería devolver la temperatura límite y ralentizar los cálculos por sí mismo cuando se acerque a la temperatura límite. Hay diferentes tarjetas gráficas y diferentes disipaciones de calor.
 
MetaDriver:

Debe tener una función MQL que devuelva la temperatura de la tarjeta de vídeo. De lo contrario, es una buena manera de quemarse. No por su cuenta, sino por la del cliente.

// Si no hay función MQL, tendremos que usar una DLL, lo cual no es bueno - el mercado se corta y otros inconvenientes.

A los juegos de ordenador no les importa la temperatura de la GPU y la cargan a tope, y no pasa nada: las tarjetas gráficas funcionan. Y a ningún jugador se le ocurriría pedirle al editor del juego que ralentizara el propio FPS para no estropear la GPU. Con los jugadores la analogía es directa: necesitamos velocidad, y la temperatura debe cuidarse adicionalmente si es necesario (sistema de refrigeración adicional).

Entonces también necesitas la función MQL que devuelve la temperatura de la CPU. De lo contrario, el procesador se quemará.


FPS si es factible, ¿por qué no? - No estaría mal, por supuesto.