FMA4 in C verwenden
Geizhals » Forum » Programmierung » FMA4 in C verwenden (5 Beiträge, 177 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
FMA4 in C verwenden
07.08.2012, 09:01:17
Hallo an alle Coder,

ich habe die Möglichkeit an einem Opteron 6220 (http://geizhals.at/699582 ) einige Sachen auszuprobieren. Diese CPU enthält Hardware Support für FMA4 Anweisungen (fused multiply-add).

Ich verwende die gcc Version 4.5 unter Linux. Soweit ich weiss, muss man in C die einbinden und kann dann die Funktion fma(x,y,z) verwenden (statt x*y+z). Das Makro FP_FAST_FMA zeigt an, ob die Funktion fma() schneller ist als der direkte Aufruf.

Mein Problem ist:
Ich konnte weder mit gcc noch mit clang (aus llvm Paket) mein Testprogramm so kompilieren, dass fma() verwendet wird.


// ...
#if FP_FAST_FMA
  printf("FMA4 OK!\n");
#else
  printf("D'Oh, no FMA4!\n");
#endif
// ...


Nur wenn ich beim kompilieren -DFP_FAST_FMA setze, wird tatsächlich OK angezeigt. Ist das tatsächlich so gedacht? Sollte der Compiler nicht automatisch erkennen, dass er auf entsprechender Hardware läuft und das Makro entsprechend definieren?

In diesem Fall ergibt das Timing einer Schleife (mit clock_gettime() eigentlich fast auf Nanosekunden genau), dass es keinen messbaren Unterschied zwischen fma() und direktem Aufruf gibt.

Wer hat die Funktion fma() schon erfolgreich verwendet ... und wie? Was muss ich machen, um tatsächlich die höhere Geschwindigkeit zu erhalten?

Bei
http://ht4u.net/reviews/2011/amd_bulldozer_fx_prozessoren/index17.php
scheint FMA4 tatsächlich eine messbare Beschleunigung zu bringen.

Ich hoffe auf hilfreiche Vorschläge.


Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: FMA4 in C verwenden
 (mjy@geizhals.at am 07.08.2012, 12:41:48)
.  Re: FMA4 in C verwenden
 (koarl0815 am 08.08.2012, 10:27:06)
..  Re(2): FMA4 in C verwenden
 (A national Acrobat am 08.08.2012, 16:34:14)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung