
حالة SIMD في لغة Rust عام 2026: المكتبات نضجت والتعليمات الداخلية ما زالت ضعفًا
يُظهر المسح السنوي لسيرغي دافيدوف حول دعم SIMD في Rust أن المكتبات المحمولة اقتربت من الإصدار 1.0 وأن تعدد النسخ على x86 لم يعد مؤلمًا، في حين يبقى حساب المثلثات والتعليمات الداخلية أضعف حلقات المنظومة.
نشر سيرغي دافيدوف في 25 سبتمبر 2026 مسحه السنوي حول دعم SIMD في لغة Rust. وتقنية SIMD، أي تعليمة واحدة لبيانات متعددة، تتيح للمعالج تطبيق عملية حسابية واحدة على دفعة كاملة من الأرقام: ففي شرائح x86 الحديثة تصل المتجهات إلى 512 بت، ما يعني نظريًا تسريعًا يبلغ ثمانية أضعاف مع f64 و64 ضعفًا مع u8.
بعد مسح العام الماضي أصبح المؤلف أحد المشرفين على مكتبة Fearless SIMD، ولتفادي تضارب المصالح عرض مسودة المقال على مؤلفي std::simd وwide وpulp وmacerator لمراجعتها، مع احتفاظه بالسيطرة التحريرية. وخلاصته أن الدعم نضج كثيرًا، وأن Rust أصبحت جاذبة لكتابة شيفرة SIMD حتى حين لا تكون سلامة الذاكرة شرطًا إلزاميًا.
ما الذي وجده المسح
على منصة x86_64 لا يُسمح للمترجم افتراضيًا باستخدام أكثر من تعليمات SSE2، لذا يجب اختيار كل ما هو أحدث في وقت التشغيل. صدرت AVX2 عام 2013، لكن آخر معالج من Intel بدونها ظهر عام 2021، وحسب مسح العتاد في Firefox فإن 15% من أنظمة x86 ما زالت تفتقر إليها في 2026. والحل المعتاد هو تعدد النسخ: تُترجم الدالة نفسها لعدة مستويات من SIMD، ثم تُفحص قدرات المعالج ويُختار المستوى المناسب. وتقوم مكتبة multiversion بذلك بسمة واحدة، لكنها تضيف عبئًا على الدوال الصغيرة جدًا. ولأن ARM جعلت NEON إلزاميًا في الأنوية ذات 64 بت، فالمشكلة تخص x86 أساسًا.
مكتبات SIMD المحمولة
تعمل std::simd مباشرة فوق LLVM وتغطي أي هدف يدعمه LLVM، لكنها متاحة على قناة nightly فقط. وعندما لا تتوفر عملية مطابقة في LLVM تعود الشيفرة بصمت إلى الحساب العددي البسيط، وهو ما يسميه المؤلف الخطيئة الكبرى. وأصدرت Fearless SIMD الإصدار 1.0 مع سياسة أمنية: فهي تخفي شيفرة unsafe أقل بكثير من منافسيها وتجعل تعدد النسخ يعمل حتى في الدوال الصغيرة جدًا. وتغطي wide عمليات كثيرة من بينها حساب المثلثات، لكنها لا تتوافق مع تعدد النسخ. أما pulp فتشغل مكتبة الجبر الخطي faer، وmacerator هي الواجهة الخلفية للمعالج في burn.
التعليمات الداخلية والعَتَاد
منذ Rust 1.87 يمكن استدعاء التعليمات الداخلية الخاصة بالمنصات بأمان عبر سمات target feature ورموز الميزات كما في مكتبة archmage. ومع ذلك تبقى هذه التعليمات أضعف حلقة: فالمترجم كثيرًا ما يفشل في تحويلها إلى التعليمات المطلوبة، ويوثق المؤلف حالة جعلت فيها "تحسينات" عملية shuffle بسعة 512 بت أبطأ من التعليمة المطلوبة، وقد أُصلحت في LLVM 23 بعد تقريره. وعلى صعيد العتاد كانت معالجات Intel المبكرة الداعمة لـAVX-512 تخفض تردد الشريحة كلها، ولم يُصلح ذلك إلا مع Ice Lake عام 2019، بينما يظهر مسح Steam أن 23.9% من الأنظمة تملك AVX-512. ويبقى حساب المثلثات أكبر ثغرة في منظومة Rust.
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.