"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पैक्ड सिंगल प्रिसिजन फ्लोट्स के रूप में __m256 वेरिएबल में 8 अक्षर कैसे लोड करें?

पैक्ड सिंगल प्रिसिजन फ्लोट्स के रूप में __m256 वेरिएबल में 8 अक्षर कैसे लोड करें?

2024-11-06 को प्रकाशित
ब्राउज़ करें:430

How to Load 8 Chars into an __m256 Variable as Packed Single Precision Floats?

पैक्ड सिंगल प्रिसिजन फ्लोट्स के रूप में मेमोरी से 8 वर्णों को __m256 वेरिएबल में लोड करना

गॉसियन ब्लर के लिए एक एल्गोरिदम को अनुकूलित करने के प्रयास में, आप फ्लोट बफ़र के उपयोग को __m256 आंतरिक चर के साथ बदलने का प्रयास करें। इस प्रश्न का उद्देश्य इस कार्य के लिए इष्टतम निर्देश निर्धारित करना है। 256बी रजिस्टर में पूर्णांक।

VCVTDQ2PS के साथ इन-प्लेस में कनवर्ट करें।

; आरएसआई = new_image VPMOVZXBD ymm0, [rsi] ; या साइन-एक्सटेंड करने के लिए SX (DWord को बाइट) VCVTDQ2PS ymm0, ymm0 ; पैक्ड फ़ोट में कनवर्ट करें
  • अतिरिक्त रणनीतियाँ:
; rsi = new_image
VPMOVZXBD   ymm0,  [rsi]   ; or SX to sign-extend  (Byte to DWord)
VCVTDQ2PS   ymm0, ymm0     ; convert to packed foat

निम्न चरण निष्पादित करें:
  • VPMOVZXBD xmm0, [rsi] VPMOVZXBD xmm1, [आरएसआई 4] VINSERTF128 ymm0, ymm0, xmm1, 1; डेटा का दूसरा लोड ymm0 के हाई128 में डालें VCVTDQ2PS ymm0, ymm0 ; पैक्ड फ्लोट में परिवर्तित करें

आंतरिक विचार:

    जीसीसी और एमएसवीसी को आंतरिक का उपयोग करते समय इष्टतम कोड पीढ़ी सुनिश्चित करने के लिए विशेष हैंडलिंग की आवश्यकता हो सकती है VPMOVZXBD ymm,[mem].
  • इसके बजाय _mm_loadl_epi64 आंतरिक का उपयोग करने पर विचार करें, जिसे GCC संस्करण 9 और बाद के GCC के साथ -O3 पर इष्टतम एएसएम के लिए मेमोरी ऑपरेंड में फोल्ड किया जा सकता है।

    VPMOVZXBD   xmm0,  [rsi]
    VPMOVZXBD   xmm1,  [rsi 4]
    VINSERTF128 ymm0, ymm0, xmm1, 1   ; put the 2nd load of data into the high128 of ymm0
    VCVTDQ2PS   ymm0, ymm0     ; convert to packed float
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3