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
Mira tu propio código: Y luego, en la última línea, tú mismo divides 240 entre 18 (son unidades para tu tarjeta).
Es evidente que estás confundido en algo. Aquí está la pieza polémica:
Conclusión: global=30 local=1
Y 240 bytes es exactamente cuando se crea el buffer.
Es evidente que estás confundido en algo. Este es un artículo controvertido:
Salida: global=30 local=1
Y 240 bytes exactamente al crear el buffer.
global_work_size[0]
Y local_work_size[0] = (uint) 240/18 = 13
P.D. Sí, has acertado. Perdón. Me confundí un poco.
local_work_size[0] = (uint) 30/18 = 1. Y yo tengo lo mismo, ya que unidades=28.
De nuevo, Roffild:
Mathemat: Давай тупо прикинем. 18 задач, выполняемых одновременно на мухах GPU, - это максимум то, что можно сделать на 4-5 нитках CPU. А CPU на x86 эмуляции может организовать гораздо больше ниток. Во всяком случае, если это Intel. Мой бывший Pentium G840 (2 ядра) дал ускорение примерно в 70 раз - на двух unit'ах! Я уже не говорю о том, что вытворяет мой текущий... условно говоря, i7.
Una tarea bien paralelizada (véanse los scripts de MetaDriver del primer hilo ocl) puede lograr aumentos de velocidad de hasta 1000 o más en la GPU (en comparación con la ejecución de un hilo en la CPU en MQL5). Si no lo encuentras, te lo puedo enviar y lo puedes probar en tu tarjeta.
¿Has averiguado el búfer y su velocidad?
Es mejor que utilices AMD CodeXL para averiguar las UNIDADES, etc. - tiene buenos gráficos de rendimiento.
El propio AMD CodeXL tiene fallos, pero es difícil sacar conclusiones sin él.
No voy a usar OpenCL hasta que el probador me permita usar la CPU o hasta que ejecute una tarea que dure más que Number of_buffers * 0.353 mseg.
P.D.
Terminé de optimizar mi código y la variante final pasa la prueba en 33 segundos (320 segundos - antes de la optimización, 55 segundos - "estilo OpenCL").
No hay nada que averiguar. Está claro que es una operación lenta. Conclusión - aumentar el trabajo dentro del núcleo (hay muy poco en su código).
Y compra una tarjeta de video más moderna, parece que ha mejorado con ella.
El propio AMD CodeXL tiene fallos, pero es difícil sacar conclusiones sin él.
La utilidad de Intel también es bastante útil, pero para las piedras de Intel. Bueno, y para captar los errores más evidentes del núcleo.
P.D. Después de todo, he terminado de optimizar mi código y la variante final pasa la prueba en 33 segundos (320 segundos - antes de la optimización, 55 segundos - "estilo OpenCL").
Ya está mucho mejor.
Hoy necesitaba generar un array con 1 bit en números.
Al mismo tiempo he practicado con OpenCL.
Pongo el código como demostración de un método interesante para calcular global_work_size y local_work_size. La idea en sí está tomada de IntrotoOpenCL.pdf (tengo una copia), pero la he retocado.