سؤال

هل يمكن لأي شخص أن يوصي مكتبة SIMD المحمولة التي توفر AC / C ++ API، يعمل على امتدادات Intel و AMD واستوديو Visual Studio، متوافق مع دول مجلس التعاون الخليجي. أنا أتطلع إلى تسريع أشياء مثل تحجيم مجموعة 512x512 من الزوجي. ناقلات دوت المنتجات، مصفوفة الضرب الخ

حتى الآن الوحيد الذي وجدته هو:http://simdx86.sourceforge.net/ ولكن كما تقول الصفحة الأولى أنها لا تجميعها في Visual Studio.

هناك أيضا Intel IPP الذي لا يعمل على AMD من ما أجمعه. وهناك framewave من AMD، لكنني كنت أشد بعض المشاكل في تجميع وربط مكتبةهم وموادتهم ميتة تماما. تمكن أي شخص لاستخدام framewave في أي مكان؟

شكرًا.

هل كانت مفيدة؟

المحلول

منذ أن تذكر العمليات الرفيعة المستوى على المصفوفات والمتجهات، أطلس, إنتل Mkl, بلازما, ، و لهب قد تكون ذات أهمية.

تشمل بعض مكتبات Matrix Matrix C ++ Ublas من Boost، Armadillo، Eigen، IT ++، وحسمات. ربما تتضمن مكتبة Pooma أيضا بعض هذه الأشياء. هذا السؤال يشير أيضا إلى MTL.

إذا كنت تبحث عن بدائريات منطقية منخفض المستوى، فقد طور زميل من الألغام غلافا حول عمليات SSE2 و AltiVEC و VSX و Larrabee و SPE Vector SPE. يمكن العثور عليها في موقعنا مستودع المصدر, لكن الترخيص (الأكاديمي) قد لا يكون مناسبا إذا كنت ترغب في توزيعها كجزء من عملك. كما أنه لا يزال قيد التطوير الكبير لتغطية مجموعة احتياجات التطبيقات التي استهدفت.

نصائح أخرى

إيقاع هو MPL2.- Licensed Header فقط مكتبة C ++ التي تحتوي على Vector / Matrix الرياضيات المحسنة ل SSE، النيون، و AltiVec. لديهم عمليات رياضيات أكثر تطورا في وحدات الوظيفة الإضافية الخاصة بهم.

تحقق من Macstl: http://www.pixelglow.com/macstl/

محاولة ليبل أو ذات الصلة مسخ. وبعد خاصة ORC مثيرة للاهتمام. إنه ينفذ لغة التجميع رفيعة المستوى تجميعها في البرمجية المعمارية. متطورة جدا، أكثر بكثير من مكتبة غلاف بسيطة.

إذا كنت لا تمانع في الانزلاق والقذرة مع المجمع، فيمكنك دائما استخدام الوظائف الجوهرية لجميع تعليمات SIMD. ستكون محددة معالجتها، أي SSEE4 لن يتم تشغيل IE SSE4 فقط على وحدة المعالجة المركزية التي تم تمكين SSE4 وأعلى لك للتأكد من أن الامتدادات موجودة.

هناك مقال جيد هنا حول تطبيق SIMD.

ومع ذلك، يمكنك استخدام مترجم يولد رمز SIMD لك دون أي مكتبات خارجية. متجه من المفترض أن تكون جيدة على الرغم من أنني لم أستخدمها شخصيا أبدا. لا يتطلب أي مكتبات خاصة حسب علمي، فهو فقط تبقع هذه البتات من التعليمات البرمجية المصدر التي يمكن أن BENFIT من SIMD وتجمع إلى أي مستوى من SSE الذي تحدده.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top