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

كيفية تحميل 8 عوامات في متغير __m256 باستخدام AVX Intrinsics؟

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

How to Load 8 Floats into an __m256 Variable Using AVX Intrinsics?

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

هدفك هو استبدال المخزن المؤقت العائم [8] بمتغير جوهري، __m256. فيما يلي الإرشادات لتحقيق ذلك:

تعليمات AVX2:

    استخدم VPMOVZXBD ymm0، [rsi] لتوسيع البايتات في الذاكرة إلى صفر إلى 32- الأعداد الصحيحة بت.
  1. تحويل الأعداد الصحيحة إلى أعداد عائمة باستخدام VCVTDQ2PS ymm0, ymm0.

تعليمات AVX1:

    استخدم VPMOVZXBD xmm0 ، [rsi] لتحميل البايتات الأربع الأولى.
  1. قم بتحميل البايتات الأربع التالية باستخدام VPMOVZXBD xmm1، [rsi 4].
  2. أدخل التحميل الثاني في 128 بت العالية من ymm0 باستخدام VINSERTF128 ymm0، ymm0، xmm1، 1.
  3. قم بالتحويل إلى عوامات باستخدام VCVTDQ2PS ymm0، ymm0.

نصائح التحسين:

بالنسبة إلى AVX2، فكر في استخدام تحميل بث 128 بت وVPMOVZXBD للأداء.
  • تجنب استخدام VPMOVZXBD ymm, [mem] مع العناصر الجوهرية، حيث قد يؤدي ذلك إلى تفويت التحسينات.
  • بالنسبة إلى AVX1، استخدم _mm_loadl_epi64 لطي التحميل في تعليمات VPMOVZXBD للحصول على الكود الأمثل.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3