Esto es lo que puedes hacer con OpenCL directamente en MetaTrader 5 sin ninguna DLL - página 5
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
En este contexto, AMD parece ventajosa no sólo por la evidente rapidez de los cálculos matemáticos (las granjas de minería suelen estar construidas sobre AMD), sino también por su estrategia de estándares abiertos (se han abierto y están promocionando mucho al público). La introducción de OpenCL 2.0 en las tarjetas de AMD ha acercado mucho esta especificación a las capacidades de CUDA y ahora no tiene sentido preparar el terreno para CUDA.
Esa es una información útil, mientras que hace unos 7 años estaba jugando con CUDA y pensaba que todavía domina el juego.
Mi pregunta es: ¿qué pasa con los depuradores de OpenCL hoy en día? No me refiero al terminal MT5 sino al terminal MT5 en general. Hasta ahora, sólo he visto un depurador de Intel como un plugin de Visual Studio y un depurador independiente (deprimido) de la misma empresa. Pero parece que son los procesadores y los gráficos integrados de Intel los que están destinados a este fin. No entiendo bien cómo depurar el código paralelo en absoluto - para mí es sólo una caja negra todavía.
Sólo se puede trabajar con CUDA para uno mismo o para áreas específicas donde se puede exigir la presencia explícita de las tarjetas Nvidia.
Sí, CUDA solía tener más funciones. Sin embargo, con el hardware de AMD que va a salir con OpenCL 2.0 y la nueva versión de OpenCL 2.1, no tiene sentido quedarse encerrado en el proveedor. Especialmente cuando ese vendedor también rebaja la funcionalidad.
En términos de máxima cobertura, sólo hay una opción: OpenCL, que también funciona bien en procesadores normales. Es decir, no hay que exigir la presencia incondicional de la GPU ni escribir dos versiones de código para la GPU y la CPU. Una vez escrito, el código OpenCL funcionará en diferentes configuraciones.
CUDA/OpenCL sólo puede depurarse en depuradores especializados. Aquí no puede haber ningún milagro.
en el ejemplo
En las configuraciones con un dispositivo con CPU disponible, se muestra "OpenCL no encontrado".
Por lo demás.
funciona
*El problema es la selección de dispositivos por defecto
¿Podemos tener todo esto en una forma agradable, sin todas las comillas? Es incómodo para la percepción y la creación.
Y para las redes neuronales deberíamos tener clases estándar, y es posible usar opcl instantáneamente) como wellslab
"#define HL2Count " + (string)hl2NeuronCount + " \r\n"
//------------------------------------------------------------------------------------
"#define NeuronSensitivity " + (string)NeuronSensitivity_P + " \r\n"
//------------------------------------------------------------------------------------
"#define sampleCount " + (string)sampleCount + " \r\n"
//------------------------------------------------------------------------------------
"#define signalCount " + (string)signalCount + " \r\n"
//------------------------------------------------------------------------------------
"#define StrArrSaSize " + (string)(sizeof(ArrSample) / sizeof(float)) + "\r\n"
"typedef struct{float C[StrArrSaSize];} ArrSa; \r\n"
//------------------------------------------------------------------------------------
"#define StrArrWeSize " + (string)(sizeof(ArrWe) / sizeof(float)) + " \r\n"
"typedef struct{float C[StrArrWeSize];} ArrWe; \r\n"
//------------------------------------------------------------------------------------
"#define StrArrCrSize " + (string)(sizeof(ArrCr) / sizeof(float)) + " \r\n"
"typedef struct{float C[StrArrCrSize];}ArrCr; \r\n"
//------------------------------------------------------------------------------------
"#define Spread " + (string)(Spread_P * Point()) + " \r\n"
//------------------------------------------------------------------------------------
"#define Point " + (string)Point() + " \r\n"
"#define SL " + (string)(StopLoss_P * Point()) + " \r\n"
"#define TP " + (string)(TakeProfit_P * Point()) + " \r\n"
//------------------------------------------------------------------------------------
" \r\n"
"__kernel void Work(__global ArrSa *Sample, \r\n"
" __global ArrWe *Weights, \r\n"
" __global ArrCr *Result) \r\n"
"{ \r\n"
" int thread = get_global_id(0); \r\n"
" \r\n"
" //------------------Переменные нейронной сети---------------------------------\r\n"
¿Podemos tener todo esto en una forma agradable, sin todas las comillas? Es incómodo para la percepción y la creación.
Y para las redes neuronales deberíamos tener clases estándar, y es posible usar opcl instantly) como wellslab
Esta es una demostración no sólo de los cálculos de la GPU en el código MQL5, sino también de las capacidades gráficas del terminal:
Se adjunta el código fuente completo en forma de script. Se ha corregido el error en OpenCL 1.2.
¿ Se va a ir a la nube para los agentes ?
¿ Se va a ir a la nube para los agentes ?
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Esto es lo que puedes hacer con OpenCL directamente en el terminal de MetaTrader 5 sin ninguna DLL
Renat Fatkhullin, 2016.12.10 14:49
Pronto permitiremos OpenCL en MQL5 Cloud Network al menos para las implementaciones de la CPU.Hay un gran problema con la OCL y, en general, con todos los medios de paralelización: muy pocos algoritmos se pueden paralelizar de forma efectiva. Por qué en los ejemplos de computación paralela tan populares son la simulación de las olas, la bola que cae en una pirámide con su destrucción, es decir, todo lo que se puede dividir en trozos pequeños y calcular en su propio procesador.
En el caso de Fora/Oso, por supuesto, se trata de redes neuronales, diversas transformadas de Fourier, ondículas, filtros, etc., todos ellos perfectamente paralelos. Pero hay algoritmos lineales que no pueden ser paralelos en absoluto. Por regla general, es cuando el resultado del siguiente paso del algoritmo se basa en el resultado del paso anterior.
He escrito esto para los que están pensando que voy a comprar dos tarjetas de vídeo geniales y todo funcionará bien en mi probador.