Voici ce que vous pouvez faire avec OpenCL directement dans MetaTrader 5, sans aucune DLL. - page 15

 
Ilyas:
  1. Fermer le terminal
  2. Supprimez la valeur OpenCL de la ruche de registre "HKEY_CURRENT_USER\Software\MetaQuotes Software
  3. Exécutez le terminal et testez

Suppression de la clé OpenCL avant de l'exécuter. Le comportement n'a pas changé.

C'est-à-dire que le premier lancement du Conseiller Expert avec CLContextCreate(CL_USE_GPU_ONLY) produit les erreurs ci-dessus et le Conseiller Expert ne démarre pas. A partir de la deuxième exécution, le journal d'initialisation des périphériques OpenCL ne s'affiche plus, il n'y a qu'une erreur dans le journal de l'EA et l'EA ne fonctionne pas. Lors du redémarrage du terminal, EA avec une commandeCLContextCreate(0) corrigéefonctionne - un paysage marin méga-réaliste apparaît. Dans le même temps, mêmes erreurs detest de performance dans le journal d'initialisation, mais silence dans le journal d'EA.

La clé est légèrement modifiée :

[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 principe, ce comportement n'est pas critique, si vous corrigez les EA/scripts et contournez les périphériques en les adressant explicitement et en vérifiant le signe CL_DEVICE_TYPE. Il est même préférable, à mon avis, de répartir les tâches de manière gérable sur des appareils ayant leur propre évaluation. C'est juste frustrant d'avoir des erreurs d'initialisation. Qui sait comment OpenCL se comportera dans la prochaine bataille.

Veuillez m'aider à trouver leSDK Intel original pour les applications OpenCL 2016 R2 pour écrire et tester les noyaux. Il est inutile d'écrire à Intel en russe ;)

Pourquoi n'essayez-vous pas d'utiliser le SDK d'AMD ?

 
Essayez de passer à la version bêta 2543
 
directx est plus stable, mais vous devrez faire beaucoup de travail pour les calculs et il n'y a pas de dubs.
 
Ilyas:
Essayez de passer à la version bêta 2543

bêta 2545, version 2560.

Chaque fois que le scriptest exécuté pour la première fois:

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
Lors de l'exécution duscript avecCLContextCreate (CL_USE_GPU_ONLY) :
Seascape (GBPUSD,H1)    OpenCL not found. Error=5114
 

J'ai des erreurs similaires, mais il y a un an, sur une tablette plus faible, cela fonctionnait 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)
et maintenant même ça ne marche pas :
void OnStart()
{
        Print(CLContextCreate( CL_USE_ANY ));
}

avec les paramètres : CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - résultat : -1 avec code d'erreur: 5115

avec les paramètres : 0, 1 - résultat : positif

 
aim-1:

bêta 2545, version 2560.

Lorsquevous exécutez le script pour la première fois:

Lors de l'exécution duscript avec CLContextCreate(CL_USE_GPU_ONLY):

Votre carte ne supporte pas les doubles calculs :

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

Il n'est pas possible d'utiliser les mathématiques flottantes dans les calculs financiers en raison des énormes arrondis et nous exigeons donc explicitement la prise en charge des doubles calculs.

Auparavant, nous autorisions l'activation d'OpenCL sans double, mais cela n'avait pas de sens.

Maintenant, nous le limitons explicitement.

 
A100:

J'ai des erreurs similaires, mais il y a un an, sur une tablette plus faible, cela fonctionnait bien.

Et maintenant, même cela ne fonctionne pas :

avec les paramètres : CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - résultat : -1 avec code d'erreur: 5115

avec les paramètres : 0, 1 - le résultat est positif

Il est très étrange qu'Atom produise la même erreur à propos du double.

Nous devrons vérifier.

 
Renat Fatkhullin:

Le fait qu'Atom donne la même erreur à propos du double est très étrange.

Il ne supporte pas le double non plus.

C'est étrange en soi d'exiger un tel soutien de la part du terminal... Mon fichier .cl ne comporte aucun doublon et je n'utilise pas OpenCL pour des calculs scientifiques précis.

De plus, il ne s'agit pas d'un vieil Atom, mais d'un Atom moderne avec un GPU séparé.

 
Renat Fatkhullin:

Votre carte ne supporte pas le double comptage

Demandons à l'appareil lui-même :

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 réponse du réservoir :


Nom du périphérique OpenCL : Intel(R) HD Graphics 4400

Dispositif 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


En effet, il n'y a pas de support pour cl_khr_fp64

.

Je n'arrive pas à trouver la fiche technique officielle de l'Intel HD Graphics 4400 contenant des informations sur l'absence de double précision sur le net pour m'assurer qu'il ne s'agit pas d'un problème de pilote.

 

La seule façon de déterminer si une carte vidéo possède le FP64 est d'utiliser des benchmarks gauchistes :

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

Au fait, le coprocesseur graphique de Renata semble également ne pas avoir de support FP64 :

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

Renat, pouvez-vous exécuter mon script ci-dessus pour déterminer si votre IGP supporte la double précision ?

Si c'est le cas, la raison pour laquelle votre test de performance a réussi sera claire.

Peut-être alors essayer l'option de convertir les tableaux mqlrates en int sur le CPU avant de les envoyer à OpenCL, en les multipliant par Digits. La consommation de mémoire est réduite de moitié. Après cela, jouez avec les vecteurs ou essayez de ne pas rencontrer d'erreur en utilisant des flottants. En principe, la précision des indicateurs Digits+1 devrait être plus que suffisante.

Le temps de la date peut aussi être facilement converti en int, si les 1440 minutes de la journée sont dans les 12 premiers bits (ou dans les 2 premiers octets), et les jours dans les bits supérieurs. Le gain de vitesse entre int et double devrait être suffisant pour couvrir le surcoût des fonctions personnalisées de type iTime dans les noyaux.

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