RDRAND- und RDSEED-Intrinsic auf verschiedenen Compilern?

Lesezeit: 2 Minuten

Benutzer-Avatar
SEJPM

Unterstützt der Intel C++-Compiler und/oder GCC Folgendes Intel-Intrinsikwie es MSVC seit 2012 / 2013 tut?

#include <immintrin.h>  // for the following intrinsics
int _rdrand16_step(uint16_t*);
int _rdrand32_step(uint32_t*);
int _rdrand64_step(uint64_t*);
int _rdseed16_step(uint16_t*);
int _rdseed32_step(uint32_t*);
int _rdseed64_step(uint64_t*);

Und wenn diese Intrinsics unterstützt werden, seit welcher Version werden sie unterstützt (mit Compile-Time-Constant bitte)?

  • Vielen Dank für die Antwort, was Sie zur Verfügung gestellt haben, war genau die Art von Kompilierzeitkonstante, die ich brauchte. Anscheinend sieht es so aus, als würden Sie 4.8 für rdseed benötigen. Kennen Sie die versioning-compile-constant für Intel XE Composer Studio 2013 Update 1 (Einführung von rdseed)?

    – SEJPM

    31. März 2015 um 19:10 Uhr

  • Sie müssen auch nach der Präprozessordefinition suchen __RDRND__. Ohne sie sind die Intrinsics nicht verfügbar (selbst wenn die CPU sie unterstützt). Möglicherweise müssen Sie mit kompilieren -mrdrnd sicherstellen __RDRND__ (auch wenn die CPU es unterstützt). Sie können auch verwenden -mrdrnd wenn die CPU die Anweisung nicht unterstützt. Siehe auch Clang Bug 25152 – RDRAND intrinsisch und „Fehler: Clang-Frontend-Befehl fehlgeschlagen mit Exit-Code 70“.

    – jww

    18. Oktober 2015 um 22:56 Uhr


  • Oder besser, -march=native wenn auf der Zielmaschine gebaut wird.

    – Peter Cordes

    26. September 2017 um 14:31 Uhr

  • Also ein __INTEL_COMPILER_BUILD_DATE >= 20121023 würde tatsächlich jeder Compiler enthalten sein, der neuer als Intel XE Composer Studio 2013 Update 1 ist? Quelle1 Quelle2

    – SEJPM

    7. Juli 2015 um 13:50 Uhr

  • Gerade gefunden diese Präsentation. Sieht so aus, als ob ich 1300 und 2 für die beiden Parameter (RDSEED) brauche. Und ich brauche 1200 und 2 für RDRAND 🙂 Quelle

    – SEJPM

    7. Juli 2015 um 13:59 Uhr


  • … UND: Der MS-Compiler unterstützt RDRAND (VS2012) und RDSEED (2013) intrinsisch. Ich habe dies überprüft, indem ich die richtigen Intriniscs in meinen Header-Dateien gefunden habe.

    – SEJPM

    7. Juli 2015 um 14:00 Uhr

  • @SEJM haben Sie eine Dokumentation zu MS, die RDRAND und RDSEED unterstützt?

    – MitulShrivastava

    7. Juli 2015 um 19:02 Uhr

  • Natürlich tue ich das 🙂 Die offiziellen MSDN-Dokumentationslisten _rdrandXX_step() und _rdseedXX_step() zum x86 und x64. Stellen Sie sicher, dass Sie die anderen Versionen überprüfen, um zu glauben, dass VS2012 tatsächlich keine hatte RDSEED.

    – SEJPM

    7. Juli 2015 um 19:07 Uhr

  • Dies könnte wahrscheinlich ein Korrekturlesen für Satzstrukturen und Streuwörter erfordern; es wurde ziemlich lang und ich ging nicht zurück und las das ganze Ding durch. Fühlen Sie sich frei, solche Fehler zu bearbeiten, oder lassen Sie es mich wissen.

    – Peter Cordes

    17. Mai um 14:54 Uhr

1015950cookie-checkRDRAND- und RDSEED-Intrinsic auf verschiedenen Compilern?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy