C++ Visual Studio 2013 + Armadillo +

  • Ersteller Ersteller c137
  • Erstellt am Erstellt am
C

c137

Gast
Hallo!


Ich möchte hier einige numerische Berechnungen anstellen, deswegen nutze ich die Library Armadillo (für Matrizen, Vektoren), welche auch eigene Implementationen von LAPACK, BLAS und ARPACK mitbringt.
Das läuft auch soweit mit Visual Studio 2013. Ich hab einfach den Include-Ordner bei den Projekteigenschaften hinzugefügt. Kann man das geschickter machen, dass ich das nicht bei neuen Projekten manuell machen muss?

Problem hierbei: Der Standardcompiler für C++ in VS nutzt kein x87 o.Ä., so dass long doubles effektiv doubles sind.
Also habe ich mal den Intel C++ Compiler (bzw das ganze Composer-XE-Paket) installiert, der sich ja auch unter VS einbindet. Armadillo findet der, wenn auf dem oben beschriebenen Weg hinzugefügt, auch.

So, jetzt die Hauptfrage: Was muss ich tun, damit statt der Armadillo-Implementationen die aus dem Intel-Paket genommen werden MKL)? Die Dokumentation von Armadillo geht nur auf Linux ein.
Welche Einstellungen (und wo) in VS und beim Compiler muss ich treffen, damit die Befehlssätze meines Ivy Bridge (SSEx, AVX) richtig genutzt werden?


Vielen Dank,
c137
 
Zuletzt bearbeitet:
Danke, aber an Windows, C++ und Armadillo ist nicht zu rütteln.

Edit:
Mir fällt grad auf: Wie stell ich denn sicher, dass auch der Intel-Compiler verwendet wird?
Reicht Projekt --> Intel Composer XE --> Use Intel C++, damit auch beim normalen Debuggen (klick auf grünen Pfeil) der Intel-Compiler benutzt wird?

Und gibt's für den Intel-Compiler spezielle Einstellungen/Parameter, die man benutzen sollte, wenn man FPUs mit langen Zahlen füttern will?
 
Zuletzt bearbeitet:
Danke.

Das ist ja dann auch OK. Welcher Befehlssatz ist mir eigentlich recht egal (solange entweder mein Phenom II oder mein Ivy Bridge den haben), es geht eigentlich nur darum, dass long doubles auch wirklich länger sein sollen als doubles.

Speziell mit der hier verwendeten Kombination oder Teilen davon hat keiner Erfahrung?

Edit:
Dort versteckt sich das auch beim Intel-Compiler. Da kann man dann "Instructions for 3rd Generation Core Processors, including AVX" auswählen.
Kompilieren geht jetzt auch merklich schneller als mit dem Standard-Compiler von VS2013.

Jetzt wüsste ich nur noch gerne, wie man diese Einstellungen als Standard speichert.
Und, wie ich das mit MKL statt LAPACK/BLAS einstelle.

Edit 2:
MKL geht ähnlich einzustellen wie diese Befehlssatz-Geschichte. Aber wie man das als Standard für alle Projekte einstellt...uff.
 
Zuletzt bearbeitet:
Zurück
Oben