العودة
صدور Fearless SIMD v1.0: مكتبة Rust تُخرج الشيفرة غير الآمنة من SIMD
SiTech AI Team2 წთ. საკითხავი

صدور Fearless SIMD v1.0: مكتبة Rust تُخرج الشيفرة غير الآمنة من SIMD

أصدرت Linebender مكتبة fearless_simd v1.0 للغة Rust، وهي توفّر SIMD محمولًا ووصولًا آمنًا إلى تعليمات العتاد من دون شيفرة unsafe عشوائية، مع ثلاث سنوات من تحديثات الأمان.

أصدرت Linebender fearless_simd v1.0، وهي مكتبة للغة Rust هدفها إخراج unsafe من شيفرة SIMD، وهي التقنية التي تُطبّق تعليمة واحدة على عدة قيم في الوقت نفسه. نُشر الإعلان على مدوّنة المشروع في 22 سبتمبر 2026، بعد نحو ثماني سنوات من النموذج الأولي. وتغطي المكتبة ثلاثة مستويات: التوجيه الآلي وتعدد النسخ، وتجريدات SIMD المحمولة الكاملة، والوصول الآمن إلى تعليمات العتاد.

الأداء

من أكثر الانتقادات شيوعًا لتجريدات SIMD المحمولة خسارة الأداء. وللعمليات التي تختلف سلوكياتها في الحالات الحدّية بين المنصات، مثل swizzle أو القيمة العظمى للأعداد العشرية، تقدّم المكتبة نمطين: نسخة دقيقة تعطي النتيجة نفسها في كل مكان، ونسخة سريعة تُعيد نتيجة تعتمد على المنصة حين لا تكون الحالات الحدّية متوقعة.

يمكن كتابة الخوارزميات بعرض المتجه الطبيعي للعتاد، ويمكن أيضًا استخدام أحجام ثابتة عند الحاجة. وقد قدّم الفريق تحسينات أيضًا إلى Rust وLLVM. وحين لا تكفي العمليات المحمولة، يمكن للشيفرة النزول إلى تعليمات المنصة من دون عبء إضافي للأجزاء التي تحتاج ذلك.

الأمان

يقول المؤلفون إن تجريدات SIMD الأخرى مليئة بشيفرة unsafe؛ إذ يُظهر البحث عن الكلمة آلاف الكتل. أما في fearless_simd فلا حاجة إلى unsafe عشوائي. ويتولّى ذلك مكوّنان صغيران: ماكرو kernel! الذي يستفيد من target feature 1.1 في المترجم لاستدعاء معظم تعليمات SIMD بأمان، ووحدة تحويل آمنة مستوحاة من bytemuck وzerocopy تستبدل تعليمات التحميل والتخزين مثل _mm_loadu_epi32 بغلاف واحد قابل لإعادة الاستخدام. وإذا كان هذان المكوّنان المستقلان آمنين في الذاكرة، فبقية الشيفرة آمنة بحكم البناء.

سهولة الاستخدام والاستقرار

كان تعدد نسخ الدوال معقّدًا في Rust: فالحلول السابقة إما تطلّبت تعليقات #[inline(always)] وفهمًا لتبعاتها، أو أضافت عبئًا مع كل استدعاء يضرّ الدوال الصغيرة. وتصدر مع الإصدار 1.0 مكتبة fearless_simd_macros v0.1 بخاصية #[simd] التي تتخذ هذه القرارات تلقائيًا، مع بقاء الطريقة اليدوية متاحة.

ويَعِد المشروع بثلاث سنوات من تحديثات الأمان للإصدار 1.0 وكل إصدار لاحق، ويرى مسارًا لدعم النوع f16 وكذلك امتدادات SVE وRISC-V من دون كسر الواجهة البرمجية.

التبنّي والطريق إلى std::simd

صار Fearless SIMD تبعية مباشرة لـ30 مكتبة، وغير مباشرة لأكثر من ألف مكتبة. ويرحّب الفريق باستقرار std::simd، لكنه يرى أن ذلك لن يجعل المكتبة زائدة: فالمكتبة المعيارية تنفّذ فقط ما يجب أن يكون فيها، وتترك تعدد النسخ والمتجهات بعرض العتاد لمكتبات المنظومة. وإذا استقرّ std::simd، يخطّط المشروع للانتقال إليه، وتقليص شيفرته الخاصة وكسب دعم منصات نادرة.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.