"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحميل 8 أحرف في متغير __m256 كعوامات دقيقة واحدة معبأة؟

كيفية تحميل 8 أحرف في متغير __m256 كعوامات دقيقة واحدة معبأة؟

تم النشر بتاريخ 2024-11-06
تصفح:986

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

تحميل 8 أحرف من الذاكرة إلى متغير __m256 كتعويم دقيق واحد

في محاولة لتحسين خوارزمية للتمويه الغاوسي، يمكنك تسعى إلى استبدال استخدام المخزن المؤقت العائم بمتغير جوهري __m256. يهدف هذا السؤال إلى تحديد التعليمات المثالية لهذه المهمة.

تعليمات لبنية AVX2:

  • استخدم PMOVZX لتمديد أحرفك إلى 32 بت. الأعداد الصحيحة في سجل 256b.
  • تحويل إلى تعويم في مكانه باستخدام VCVTDQ2PS.
; rsi = new_image
VPMOVZXBD   ymm0,  [rsi]   ; or SX to sign-extend  (Byte to DWord)
VCVTDQ2PS   ymm0, ymm0     ; convert to packed foat

إستراتيجيات إضافية:

  • فكر في استخدام تحميل بث 128 بت لتغذية vpmovzxbd ymm، xmm و vpshufb ymm (_mm256_shuffle_epi8) لـ عالية 64 بت. يقلل هذا الأسلوب من عدد uop ويمكن أن يكون مفيدًا على وحدات المعالجة المركزية Ryzen.
  • تجنب استخدام تعليمات الخلط الإضافية، لأنها قد تصبح عنق الزجاجة عندما يكون الخلط قيدًا بالفعل.

تعليمات بنية AVX1:

  • نفذ الخطوات التالية:

    VPMOVZXBD xmm0, [rsi] VPMOVZXBD xmm1، [RSI 4] VINSERTF128 ymm0, ymm0, xmm1, 1 ; ضع التحميل الثاني من البيانات في المستوى العالي 128 لـ ymm0 VCVTDQ2PS ymm0, ymm0 ; تحويل إلى تعويم معبأة
    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

الاعتبارات الجوهرية:

    قد تتطلب دول مجلس التعاون الخليجي وMSVC معالجة خاصة لضمان إنشاء التعليمات البرمجية الأمثل عند استخدام الجوهريات لـ VPMOVZXBD ymm,[mem].
  • فكر في استخدام _mm_loadl_epi64 الجوهري بدلاً من ذلك، والذي يمكن طيه في معامل الذاكرة للحصول على asm الأمثل عند -O3 مع دول مجلس التعاون الخليجي في إصدارات دول مجلس التعاون الخليجي 9 والإصدارات الأحدث.
  • لـ تحسين AVX1 فقط، كتابة الإصدار الجوهري هو تمرين غير ممتع.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3