Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 5): Cálculos multihilo en OpenCL" - página 3
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
El uso de operaciones vectoriales permite realizar el producto de 4 elementos en paralelo en lugar de secuencialmente. Vea el vídeo https://ru.coursera.org/lecture/parallelnoye-programmirovaniye/4-1-chto-takoie-viektorizatsiia-i-zachiem-ona-nuzhna-f8lh3. Es sobre OpenMP, pero el significado es el mismo.
Gracias.
Entonces, ¿la vectorización la hace automáticamente el compilador para OpenCL? No veo ningún comando especial en el código.
Gracias.
Entonces, ¿la vectorización la hace automáticamente el compilador para OpenCL? No veo ningún comando especial en el código.
No, no hay vectorización automática. En el código primero declaramos 2 variables vectoriales.
Luego escribimos una porción de datos en las variables vectoriales desde los buffers de entrada.
Y luego realizar operaciones con variables vectoriales significa realizar operaciones vectoriales. La función dot utilizada en el código está pensada sólo para operaciones vectoriales.
Así, hemos paralelizado la operación de multiplicación pero no a nivel de hilo sino a nivel de una operación concreta utilizando cálculos vectoriales.
No, no hay vectorización automática. En el código declaramos primero 2 variables vectoriales
Luego escribimos una porción de datos en las variables vectoriales desde los buffers de entrada.
Y luego realizar operaciones con variables vectoriales significa realizar operaciones vectoriales. La función dot utilizada en el código está pensada sólo para operaciones vectoriales.
Así, hemos paralelizado la operación de multiplicación pero no a nivel de hilo sino a nivel de una operación concreta utilizando cálculos vectoriales.
Es decir, ¿es una función especial dot() la responsable de la vectorización? ¿Puede hacerse esta vectorización en MQL5 sin OpenCL?
¿Es decir, una función especial dot() se encarga de la vectorización? ¿Se puede realizar esta vectorización en MQL5 sin OpenCL?
dot sólo realiza el producto escalar. Hay otras funciones para realizar otras operaciones.
No hay variables vectoriales en MQL.
dot sólo realiza el producto escalar. Hay otras funciones para realizar otras operaciones.
No hay variables vectoriales en MQL.
Lo tengo, gracias por la aclaración.
Yo todavía a pesar de la extrema necesidad del artículo y la gratitud al autor por el artículo resumir lo que realmente falta en ella:
1. El código del programa principal mql no se considera, el principio de comercio en sí no está claro
2. No está claro dónde se llaman los núcleos.
3. El código contiene referencias a librerías de terceros, que no se describen en el artículo, no está claro
4. Los kernels no se consideran ni se explican en el propio artículo, por eso causaron una discusión tan acalorada en el foro.
5. El propio kernel está escrito de forma muy complicada para la mayoría de usuarios no experimentados en OpenCL.
6. El método de entrenamiento de la red neuronal no está nada claro
Estos 6 puntos hacen que el artículo sea prácticamente inútil para la mayoría absoluta.
Me quedo con mi opinión:
1. Es necesario crear el código mql de un Asesor Experto muy simple que opere con un indicador simple, escribir su versión en mql con una descripción del código y la versión OpenCL y comparar la velocidad, lo ideal es tomar un ejemplo ya hecho como Moving Average.mq5.
2. Las llamadas de funciones de todas las bibliotecas de terceros deben ser descritas.
3. Describir los núcleos en detalle, línea por línea, describir varias variantes de núcleos y comparar el rendimiento.
4. Describir detalladamente la metodología de entrenamiento de redes neuronales.
así es ....
¿Qué es NeuroNet.mqh archivo en el archivo?
He limpiado un poco el archivo NeuroNet. mqh. Y para la compatibilidad con EAs de artículos anteriores, he guardado la versión antigua en una copia.