fatal compiler error: code generation failed

 

Hallo,

ich verwende die ALGLIB und bekomme schon bei der Kompilierung folgenden Fehler:

fatal compiler error: code generation failed

Habe es gegoogled, aber bisher nichts verwertbares gefunden. Verzweifelt. Das Problem wird von der ALGLIB-Funktion MNLTrainH verursacht.  Hier noch der Code.:

static double CUtilitiesAI::LogitRegressionTrain(CLogitModelShell &lm, CMatrixDouble &data, int classes, CFile& report)
{
   int lm_number_of_vars = data.Cols() - 1;
   int lm_nb_smp = data.Rows();
   int lm_info = 0;
   int lm_nb_classes = classes;

   CMNLReportShell lm_rep;
   CAlglib::MNLTrainH(data, lm_nb_smp, lm_number_of_vars, lm_nb_classes, lm_info, lm, lm_rep);
   
   double relclserror = LogitRegressionTest(lm, data);
   report.write("\r\nRel. CLS Error: " + DoubleToString(relclserror));
   
   return relclserror;
}
 
  1. Seufz, welches Build des Terminals/Editors?
  2. Welches OS Mac, Linux, Win... ?
  3. Was steht noch im Log des Editors? Datei, Befehl, Zeile ....
  4. Welche cpu? Versuch erst einmal cpu='X64 Regular' (siehe: https://www.mql5.com/en/forum/462977)

Compilation of MQL5 programmes with AVX / AVX2 + FMA3 / AVX512 + FMA3 instruction set from build 3902 - The next beta of the MQ Q4 and MT5 project is released by MetaQuarters-Demo.
Compilation of MQL5 programmes with AVX / AVX2 + FMA3 / AVX512 + FMA3 instruction set from build 3902 - The next beta of the MQ Q4 and MT5 project is released by MetaQuarters-Demo.
  • 2023.08.31
  • www.mql5.com
In the next beta we have released the ability to compile mql5 programmes using the extended set of instructions avx / avx2 + fma3 / avx512 + fma3. Forum on trading, automated trading systems and testing trading strategies. Most likely in the future we will expand the possibilities in the market
 

Hallo Carl,

Danke für Deine Beteiligung. Ebenfalls seufz. Bin wohl der Erste, dem das passiert. Hier ein Screen-Shot des Logs. Nicht wirklich hilfreich. Sobald ich MNLTrainH  aus meinem Code auskommentiere, läuft alles. Wenn man die ALGLIB separat kompiliert, keine Fehler. Skurril. 

Screen-Shot-Log

OS: Windows 11 

Meta-Editor-Build: Version 5.00 Build 4199 22-FEB-2024

CPU: AMD Ryzen 5

X64 Regular aktiviert

Wenn hier niemanden was einfällt, werde ich mich wohl an Meta-Quotes oder ALGLIB direkt wenden müssen.

Gruss

cn

 
  1. Könnte es sein, dass die Grafikkarte der Verursacher ist?
  2. Hier: https://www.mql5.com/de/articles/6351
    erfolgt der Aufruf so (anders als bei Dir - ich arbeite nicht mit damit, ergo keine Erfahrung):
     CLogit::MNLTrainH(LRPM, LRPM.Size(), 3, 2, Linfo, Lmodel, Lrep);
    bei Dir aber:
    CAlglib::MNLTrainH
  3. Versuch doch mal den EA aus dem o.a. Artikel (auch wenn er aus 2019 stammt und AG?
  4. Könnte es sein, dass Du ein altes ALGLIB verwendest? https://www.mql5.com/en/code/1146
    Es wurde vor einem halben Jahr aktualisiert!
  5. Wenn würde ich das Problem im Thread des Code stellen: https://www.mql5.com/en/code/1146
  6. oder hier als Kommentar zum MQL-Artikel: https://www.mql5.com/de/articles/13289 bzw.: https://www.mql5.com/de/forum/461619
  7. Oder Du googlest mal nach: "ALGLIB MNLTrainH"?


Gescheites "Marktgedächtnis" durch Differentiation und Entropieuntersuchung
Gescheites "Marktgedächtnis" durch Differentiation und Entropieuntersuchung
  • www.mql5.com
Der Anwendungsbereich der Fraktionalen Differenziation ist breit genug. Beispielsweise wird in der Regel eine differenzierte Zeitreihe in maschinelle Lernalgorithmen eingegeben. Das Problem ist, dass es notwendig ist, neue Daten entsprechend der verfügbaren Historie anzuzeigen, die das Modell des maschinellen Lernens erkennen kann. In diesem Artikel werden wir einen originellen Ansatz zur Differenzierung von Zeitreihen betrachten. Der Artikel enthält zusätzlich ein Beispiel für ein selbstoptimierendes Handelssystem, das auf einer erhaltenen differenzierten Reihe basiert.
 

Hallo Carl,

erst mal vielen Dank für die zahlreichen Vorschläge:

 zu 1) Grafikkarte ? Du glaubst, dass die die Grafikkarte als Beschleuniger nehmen ? Ich denke nicht. Keine Verweise gefunden.

 zu 2) Hab ich probiert. Kein Unterschied. Gleicher Fehler. Meines Wissens ist CAlglib auch nur ein Wrapper.

 zu 3) Hab ich heruntergeladen und getestet. Gleicher Fehler. Liegt scheinbar nicht an meinem Code. Wird also bald wieder jemand drüber stolpern.

 zu 4) War schon updatet, nochmal aktualisiert. Kein Unterschied.

 zu 5/6) Threads wirken tot. Liest das noch jemand ?

 zu 7) Google ? Kenn ich ;) Schon probiert, ergebnislos. Deswegen geh ich ja Euch auf den Keks ;)

Gruss 

cn

 
ndnz2018 #:
 zu 5/6) Threads wirken tot. Liest das noch jemand ?

Nö, falsch! Wenn jemand da 'was schreibt kriegt der Veröffentlicher einen Hinweis:

Es erscheint ein zusätzlicher Stern in der Icon-Liste neben dem Namen, als Hinweis, es tut sich 'was:


Es wäre aber schön, wenn Du ein kompilierbares Skript anbietest, das den Fehler erzeugt, und mit dem die von MQ schnell den Fehler wiederholen können.
 
OK, hier das Minimalbeispiel:
#include <math\alglib\alglib.mqh>
CLogitModelShell log_mod;
CMNLReportShell log_mod_rep;
CMatrixDouble log_mod_data;
int log_mod_info = 0;
void OnStart()
  {
      CAlglib::MNLTrainH(log_mod_data, 10, 3, 2, log_mod_info, log_mod, log_mod_rep);   
  }
 
ndnz2018 #:
OK, hier das Minimalbeispiel:

Auf meinem Win 10 sind die Verzeichnisse groß geschrieben ..\Include\Math\Alglib\:

#include <Math\Alglib\alglib.mqh>
Allerdings erzeugt auch das den Fehler :(
 

ndnz2018 #:

Sollte diese Funktion:

static double CUtilitiesAI::LogitRegressionTrain(CLogitModelShell &lm, CMatrixDouble &data, int classes, CFile& report)

nicht void oder boolish sein?

Gruß Igor

 

Hallo Igor,

die Funktion LogisticRegressionTrain ist nur ein Wrapper von mir. Das eigentliche Problem ist die ALGLIB-Funktion MNLTrainH. Die funktioniert auch ohne meinen Code nicht, siehe Minimalbeispiel.

Aber trotzdem Danke.

Gruss

Carsten 

 

Hallo Carl,

ich habe das in den Thread der ALGLIB und in deren Entwickler-Forum gepostet. Vielleicht tut sich was.

Gruss

Carsten

Grund der Beschwerde: