OpenCL: pruebas de implementación interna en MQL5 - página 44
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
Parece que sí.
No estoy seguro, porque intento no utilizar construcciones complicadas (difíciles de percibir a ojo), pero probablemente no debería, ya que puede acelerar el código.
Su código probablemente será más lento, porque la variable b se vuelve a declarar en cada iteración del bucle.
No, eso no es justo. Manejas el código de Andrei y lo aceleras.
¿Qué he hecho?
¿Qué se le pide al optimizador? Reduciendo los gastos generales y manteniendo los resultados equivalentes. Así que compruébalo, todo suma un céntimo.
:)
// ¡¡¡Por cierto!!! ¡¡¡Este código no deja caer mi controlador incluso con #define BUF_SIZE 1024*1024*4 !!!
// ¡Esto es un avance!
;))))
¿Qué he hecho?
¿Qué se le pide al optimizador? Reduciendo los gastos generales y manteniendo los resultados equivalentes. Así que compruébalo, todo suma un céntimo.
:)
¿Encaja? ¿Cómo lo has comprobado? :O
¡Cómo, cómo! ¡En la calculadora! Puse ocho en paralelo y lo comprobé.
Tu calculadora está mintiendo. :)
El ciclo suma 0+1+2+3+...+99999999. Y después de cada 10000 pasos el valor es 0.
¿Qué has hecho? - Se asigna un número de mosca y ya está. ¿Cómo pueden ser mis resultados los mismos que los tuyos?
He estado investigando un poco y he sospechado que este
Lo que pasa es que lo más probable es que get_global_id() no sea una función, sino una operación de registro súper rápida.
Si alguien lo necesita y quiere, por favor, comunique los resultados al estudio. le será útil.¿Qué se le pide al optimizador? Reduciendo los gastos generales y manteniendo los resultados equivalentes. Así que compruébalo, todo suma un céntimo.
// ¡¡¡Por cierto!!! ¡¡¡Este código no deja caer mi controlador incluso con #define BUF_SIZE 1024*1024*4 !!!
Por otro lado - si el conductor no lo deja caer, la equivalencia en el resultado ya está incompleta.
Mierda... Qué pena. :(
No, no has estado fumando bien.
1^3 + 2^3 + 3^3 + ... + 1000000000^3 = 1000000000^2 * (1000000000 + 1)^2 / 4
La izquierda y la derecha son la misma cosa, una equivalencia total.
Sólo con la expresión izquierda calentarás la piedra durante bastante tiempo, mientras que con la derecha será casi instantáneo, el procesador no lo notará y se mantendrá frío.
P.D. He actualizado a OpenCL 1.2 (es beta). Tenga en cuenta el pequeño añadido después del número de versión: sse2.
No quiere decir que haya mejorado drásticamente, pero se ha acelerado en algunas pruebas. Digamos, en Tast_Mand_ (bueno, eres un pervertido, Andrewha) - 5% a 10%. Sólo un poco, pero bien.
Tu calculadora está mintiendo. :)
El bucle suma 0+1+2+3+...+99999999. Y después de cada 10000 pasos el valor es 0.
¿Qué has hecho? - Se asigna un número de mosca y ya está. Entonces, ¿cómo pueden ser mis resultados los mismos que los tuyos?
Te di casi 24 horas para que entraras en razón. ¿Aún insistes? :)
Veamos: