Esto es lo que puedes hacer con OpenCL directamente en MetaTrader 5 sin ninguna DLL - página 15

 
Ilyas:
  1. Cerrar el terminal
  2. Elimine el valor de OpenCL del hive del registro "HKEY_CURRENT_USER\Software\MetaQuotes Software
  3. Ejecuta el terminal y prueba

Se ha eliminado la clave OpenCL antes de ejecutarla. El comportamiento no ha cambiado.

Es decir, el primer lanzamiento del Asesor Experto con CLContextCreate(CL_USE_GPU_ONLY) produce los errores mencionados y el Asesor Experto no se inicia. A partir de la segunda ejecución, el registro de inicialización de los dispositivos OpenCL ya no aparece, sólo hay un error en el registro del EA y éste no funciona. Al reiniciar el terminal, EA con un comandoCLContextCreate(0) corregidofunciona - aparece un paisaje marino mega-realista. Al mismo tiempo, el registro de inicialización tiene los mismos errores deprueba de rendimiento, pero el registro de EA no dice nada.

La clave está ligeramente cambiada:

[HKEY_CURRENT_USER\Software\MetaQuotes Software]

before - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,6c,2a,09,a4,b3,d8,e2,3f

после - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,98,6b,19,ab,41,5c,fd,3f

En principio, este comportamiento no es crítico, si se arreglan los EA/scripts y se evitan los dispositivos dirigiéndose a ellos explícitamente y comprobando el signo CL_DEVICE_TYPE. Incluso, en mi opinión, es mejor distribuir las tareas de forma manejable entre los dispositivos con su propia clasificación. Es simplemente frustrante tener errores de inicialización. Quién sabe cómo se comportará OpenCL en la próxima batalla.

Por favor, ayúdenme a encontrar elSDK original de Intel para aplicaciones OpenCL 2016 R2 para escribir y probar los kernels. Es inútil escribir a Intel en ruso ;)

¿Por qué no intentas usar el SDK de AMD?

 
Prueba a actualizar a la beta 2543
 
directx es más estable, pero tendrás que hacer mucho trabajo para los cálculos y no hay dubs.
 
Ilyas:
Prueba a actualizar a la beta 2543

beta 2545, versión 2560.

Siempre que seejecute el script por primera vez:

Scripts script Seascape (GBPUSD,H1) loaded successfully
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 21)
OpenCL  device performance test started
OpenCL  test compilation failed with error: 
':9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 
:20:4: error: use of type 'double' requires cl_khr_fp64 extension to b
                
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 21)
Scripts script Seascape (GBPUSD,H1) removed
Alejecutarel script conCLContextCreate (CL_USE_GPU_ONLY):
Seascape (GBPUSD,H1)    OpenCL not found. Error=5114
 

Tengo errores similares, pero hace un año en una tableta más débil funcionaba bien

OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version 20.19.15.4364)
OpenCL  device #1: CPU Intel(R) Corporation  Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44 GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version 5.2.0.10094)
OpenCL  device performance test started
OpenCL  test compilation failed with error: '1:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:20:4: error: use of type 'double' requires cl_khr_fp64 extensio
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  test compilation failed with error: 'Compilation started 2:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:20:4: error: use of type 'double' requires 
OpenCL  device #1 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version 20.19.15.4364)
OpenCL  device #1: CPU Intel(R) Corporation  Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44 GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version 5.2.0.10094)
y ahora ni siquiera eso funciona:
void OnStart()
{
        Print(CLContextCreate( CL_USE_ANY ));
}

con los parámetros: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - resultado: -1 con código de error: 5115

con parámetros: 0, 1 - resultado: positivo

 
aim-1:

beta 2545, versión 2560.

Siempre que seejecute el script por primera vez:

Alejecutarel script con CLContextCreate(CL_USE_GPU_ONLY):

Su tarjeta no admite cálculos dobles:

use of type 'double' requires cl_khr_fp64 extension to be enabled

No se puede utilizar la matemática flotante en los cálculos financieros debido a los enormes redondeos y, por lo tanto, requerimos explícitamente el apoyo a los cálculos dobles.

Anteriormente, permitíamos activar OpenCL sin el doble, pero no tenía sentido.

Ahora lo limitamos explícitamente.

 
A100:

Tengo errores similares, pero hace un año en una tableta más débil funcionaba bien

Y ahora ni siquiera esto funciona:

con los parámetros: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - resultado: -1 con código de error: 5115

con parámetros: 0, 1 - el resultado es positivo

Es muy extraño que el Atom produzca el mismo error sobre el doble.

Tendremos que comprobarlo.

 
Renat Fatkhullin:

Que Atom dé el mismo error sobre el doble es muy extraño.

Tampoco admite el doble.

Es extraño en sí mismo requerir tal apoyo de la terminal... Mi archivo .cl no tiene ningún doble y no estoy usando OpenCL para cálculos científicos precisos.

Además, no se trata de un viejo Atom, sino de uno moderno con una GPU independiente

 
Renat Fatkhullin:

Su tarjeta no admite la doble contabilidad

Preguntemos al propio aparato:

void OnStart() {
   int clCtx=CLContextCreate(0);
   if(clCtx == -1) Print("ERROR in CLContextCreate");
   string str;
   if(CLGetInfoString(clCtx,CL_DEVICE_NAME,str))       Print("OpenCL device name: ",str);
   if(CLGetInfoString(clCtx,CL_DEVICE_EXTENSIONS,str)) Print("OpenCL device ext: ",str);
   CLContextFree(clCtx); }

La respuesta del tanque:


Nombre del dispositivo OpenCL: Gráficos Intel(R) HD 4400

Dispositivo OpenCL ext: cl_intel_accelerator cl_intel_advanced_motion_estimation cl_intel_ctz cl_intel_d3d11_nv12_media_sharing cl_intel_dx9_media_sharing cl_intel_motion_estimation cl_intel_simultaneous_sharing cl_intel_subgroups cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir


De hecho, no hay soporte para cl_khr_fp64

No encuentro en la red la hoja de datos oficial de laIntel HD Graphics 4400 con información sobre la falta de doble precisión para asegurarme de que no es un problema de controladores.

 

La única manera de determinar si una tarjeta de vídeo tiene FP64 es utilizar los benchmarks de la izquierda:

https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_HD-Graphics-4400

Por cierto, el coprocesador gráfico de Renata también parece no tener soporte FP64:

https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_UHD-Graphics-630

Renat, ¿puedes ejecutar mi script anterior para determinar si tu IGP soporta doble precisión?

Si la respuesta es afirmativa, entonces estará claro por qué su prueba de rendimiento fue exitosa.

Tal vez entonces pruebe la opción de convertir los arrays mqlrates a int en la CPU antes de enviarlos a OpenCL, multiplicándolos por Digits. El consumo de memoria se reduce a la mitad. Después de eso, juega con los vectores o trata de no encontrar el error al usar flotadores. En principio, la precisión de los indicadores Digits+1 debería ser más que suficiente.

Datetime también se puede convertir fácilmente a int, si 1440 minutos en el día están en los primeros 12 bits (o en los primeros 2 bytes), y los días están en bits altos. La ganancia de velocidad de int frente a double debería ser suficiente para cubrir la sobrecarga de las funciones personalizadas tipo iTime en los núcleos.

Главная
Главная
  • askgeek.io
Сравнительный анализ видеокарт Intel HD Graphics 515 и Intel UHD Graphics 630 по всем известным характеристикам в категориях: Общая информация, Технические характеристики, Видеовыходы и порты, Совместимость, размеры, требования, Поддержка API, Память, Поддержка технологий. Анализ производительности видеокарт по бенчмаркам: PassMark - G2D Mark...