Rimossa la chiave OpenCL prima dell'esecuzione. Il comportamento non è cambiato.
Cioè, il primo lancio dell'Expert Advisor con CLContextCreate(CL_USE_GPU_ONLY) produce gli errori di cui sopra e l'Expert Advisor non parte. Dalla seconda esecuzione, il log di inizializzazione dei dispositivi OpenCL non viene più visualizzato, c'è solo un errore nel log di EA e EA non funziona. Quando si riavvia il terminale, EA con un comandoCLContextCreate(0) correttofunziona - appare un paesaggio marino mega-realistico. Allo stesso tempo, il log di inizializzazione ha gli stessi errori deltest delle prestazioni, ma il log EA è silenzioso.
La chiave è leggermente cambiata:
[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
In linea di principio, questo comportamento non è critico, se si correggono gli EA/scripts e si bypassano i dispositivi indirizzandoli esplicitamente e controllando il segno CL_DEVICE_TYPE. È anche meglio, imho, distribuire in modo gestibile i compiti ai dispositivi con il loro rating. È solo frustrante avere errori di inizializzazione. Chissà come si comporterà OpenCL nella prossima battaglia.
Per favore aiutatemi a trovare l'Intel SDK originale per applicazioni OpenCL 2016 R2 per scrivere e testare i kernel. È inutile scrivere a Intel in russo ;)
Ogni volta che lo scriptviene eseguito per la prima volta:
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, version10.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, version4.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, version10.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, version4.2.0.148, rating 21)
Scripts script Seascape (GBPUSD,H1) removed
Quando sieseguelo script conCLContextCreate (CL_USE_GPU_ONLY):
Ho errori simili, ma un anno fa su un tablet più debole funzionava bene
OpenCL device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version20.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, version5.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, version20.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, version5.2.0.10094)
Ogni volta chesi esegue lo script per la prima volta:
Quando sieseguelo script con CLContextCreate(CL_USE_GPU_ONLY):
La tua carta non supporta il doppio calcolo:
use of type 'double' requires cl_khr_fp64 extension to be enabled
Non si può usare la matematica float nei calcoli finanziari a causa degli enormi arrotondamenti e quindi richiediamo esplicitamente il supporto per i calcoli doppi.
In precedenza, abbiamo permesso di abilitare OpenCL senza doppio, ma non aveva senso.
Che Atom dia lo stesso errore sul doppio è molto strano.
Non supporta nemmeno il doppio.
È strano di per sé richiedere un tale supporto da parte del terminale... Il mio file .cl non ha alcun doppio e non uso OpenCL per calcoli scientifici precisi.
Inoltre, non è un vecchio Atom, ma uno moderno con una GPU separata
Non riesco a trovare il datasheet ufficiale dellaIntel HD Graphics 4400 con informazioni sulla mancanza di doppia precisione in rete per essere sicuro che non sia un problema di driver.
Renat, puoi eseguire il mio script qui sopra per determinare se il tuo IGP supporta la doppia precisione?
Se sì, allora sarà chiaro perché il tuo test di performance ha avuto successo.
Forse allora provare l'opzione di convertire gli array mqlrates in int sulla CPU prima di inviarli a OpenCL, moltiplicandoli per Digits. Il consumo di memoria è dimezzato. Dopo di che, giocate con i vettori o cercate di non incorrere in errori quando usate i float. In linea di principio, la precisione degli indicatori Digits+1 dovrebbe essere più che sufficiente.
Datetime può anche essere facilmente convertito in int, se 1440 minuti in giorno sono nei primi 12 bit (o nei primi 2 byte), e i giorni sono in bit alti. Il guadagno di velocità int vs double dovrebbe essere sufficiente a coprire l'overhead delle funzioni iTime-like personalizzate nei kernel.
Сравнительный анализ видеокарт Intel HD Graphics 515 и Intel UHD Graphics 630 по всем известным характеристикам в категориях: Общая информация, Технические характеристики, Видеовыходы и порты, Совместимость, размеры, требования, Поддержка API, Память, Поддержка технологий. Анализ производительности видеокарт по бенчмаркам: PassMark - G2D Mark...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Rimossa la chiave OpenCL prima dell'esecuzione. Il comportamento non è cambiato.
Cioè, il primo lancio dell'Expert Advisor con CLContextCreate(CL_USE_GPU_ONLY) produce gli errori di cui sopra e l'Expert Advisor non parte. Dalla seconda esecuzione, il log di inizializzazione dei dispositivi OpenCL non viene più visualizzato, c'è solo un errore nel log di EA e EA non funziona. Quando si riavvia il terminale, EA con un comandoCLContextCreate(0) correttofunziona - appare un paesaggio marino mega-realistico. Allo stesso tempo, il log di inizializzazione ha gli stessi errori deltest delle prestazioni, ma il log EA è silenzioso.
La chiave è leggermente cambiata:
[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
In linea di principio, questo comportamento non è critico, se si correggono gli EA/scripts e si bypassano i dispositivi indirizzandoli esplicitamente e controllando il segno CL_DEVICE_TYPE. È anche meglio, imho, distribuire in modo gestibile i compiti ai dispositivi con il loro rating. È solo frustrante avere errori di inizializzazione. Chissà come si comporterà OpenCL nella prossima battaglia.
Per favore aiutatemi a trovare l'Intel SDK originale per applicazioni OpenCL 2016 R2 per scrivere e testare i kernel. È inutile scrivere a Intel in russo ;)
Perché non provi a usare AMD SDK?
Prova ad aggiornare alla beta 2543
beta 2545, release 2560.
Ogni volta che lo scriptviene eseguito per la prima volta:
Quando sieseguelo script conCLContextCreate (CL_USE_GPU_ONLY):Seascape (GBPUSD,H1) OpenCL not found. Error=5114Ho errori simili, ma un anno fa su un tablet più debole funzionava bene
e ora anche questo non funziona:con i parametri: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - risultato: -1 con codice di errore: 5115
con parametri: 0, 1 - risultato: positivo
beta 2545, release 2560.
Ogni volta chesi esegue lo script per la prima volta:
Quando sieseguelo script con CLContextCreate(CL_USE_GPU_ONLY):La tua carta non supporta il doppio calcolo:
Non si può usare la matematica float nei calcoli finanziari a causa degli enormi arrotondamenti e quindi richiediamo esplicitamente il supporto per i calcoli doppi.
In precedenza, abbiamo permesso di abilitare OpenCL senza doppio, ma non aveva senso.
Ora lo limitiamo esplicitamente.
Ho errori simili, ma un anno fa su un tablet più debole funzionava bene
E ora anche questo non funziona:con i parametri: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - risultato: -1 con codice di errore: 5115
con parametri: 0, 1 - il risultato è positivo
È molto strano che Atom produca lo stesso errore sul doppio.
Dovremo controllare.
Che Atom dia lo stesso errore sul doppio è molto strano.
Non supporta nemmeno il doppio.
È strano di per sé richiedere un tale supporto da parte del terminale... Il mio file .cl non ha alcun doppio e non uso OpenCL per calcoli scientifici precisi.
Inoltre, non è un vecchio Atom, ma uno moderno con una GPU separata
La tua carta non supporta il doppio conteggio
Chiediamo al dispositivo stesso:
La risposta del serbatoio:
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_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
Infatti, non c'è supporto per cl_khr_fp64
Non riesco a trovare il datasheet ufficiale dellaIntel HD Graphics 4400 con informazioni sulla mancanza di doppia precisione in rete per essere sicuro che non sia un problema di driver.
L'unico modo per determinare se una scheda video ha FP64 è usare benchmark di sinistra:
https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_HD-Graphics-4400
A proposito, anche il coprocessore grafico di Renata sembra essere senza supporto FP64:
https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_UHD-Graphics-630
Renat, puoi eseguire il mio script qui sopra per determinare se il tuo IGP supporta la doppia precisione?
Se sì, allora sarà chiaro perché il tuo test di performance ha avuto successo.
Forse allora provare l'opzione di convertire gli array mqlrates in int sulla CPU prima di inviarli a OpenCL, moltiplicandoli per Digits. Il consumo di memoria è dimezzato. Dopo di che, giocate con i vettori o cercate di non incorrere in errori quando usate i float. In linea di principio, la precisione degli indicatori Digits+1 dovrebbe essere più che sufficiente.
Datetime può anche essere facilmente convertito in int, se 1440 minuti in giorno sono nei primi 12 bit (o nei primi 2 byte), e i giorni sono in bit alti. Il guadagno di velocità int vs double dovrebbe essere sufficiente a coprire l'overhead delle funzioni iTime-like personalizzate nei kernel.