effiziente vektorisierte Logarithmus-Implementierung in AVX2
Das Ziel ist es, eine effiziente vektorisierte Version der log2-Funktion für 4 Doppelprozisionsnummern zu implementieren, die mit der Leistung von svmls __m256d _mm_ml2_ml2_LOGE von svmls __m256d _mm_ml2.mml2-ml-__m256d _mm_pmls __m256d _mm_pmls __m256d _mml2_Pmls __m256d _ml2_Pmls __m256d implementiert werden. (__m256d a) Aber für andere Compiler verfügbar.
Implementierungsansatz
Die gemeinsame Strategie für log2 (a) beinhaltet die Berechnung der Summe des Exponenten und des Log2 des Mantissa, das eine begrenzte Reichweite von 1.0 bis 2.0 hat. Dies ermöglicht es uns, eine Polynomannäherung für den Log2 des Mantissa zu verwenden.
Anweisung Latenz:
moderne Hardware hat lange Anweisungslatenzen. Um die Leistung zu optimieren, können wir schnellere polynomiale Bewertungsschemata wie Estrins Schema verwenden, das eine parallele Ausführung polynomialer Begriffe ermöglicht. Durch die Verwendung von FMA in unserer Implementierung können wir den polynomialen Bewertungsprozess beschleunigen. Es ist möglich, eine sehr hohe Genauigkeit über einen bestimmten Bereich von Mantissa -Werten zu erreichen. Es zielt auf eine hohe Leistung ab, die mit der SVML -Implementierung von Intel Compilern vergleichbar ist, während sie auch für andere Compiler verfügbar sind.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3