Skip to content
Menu
bsm300gb120dlc
  • Home
  • components
  • الإخبارية
bsm300gb120dlc

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

Posted on 2022-11-13

MLP_Conv2D هو تصميم وظيفي بالكامل يلف صورة إدخال ثنائية الأبعاد بنواة متعددة في وقت واحد. يستفيد التصميم بشكل كامل من كتل MLP و BRAM ، مما يؤدي إلى إجراء 12 مضاعفة int8 لكل دورة من MLP. بالإضافة إلى ذلك ، كل من أعمدة MLP وكتل BRAM متتالية لتمرير بيانات الصورة بكفاءة ، مما يسمح بمعالجة العديد من النوى في وقت واحد.

يستخدم التصميم نقطة وصول NoC (NAP) لقراءة أو كتابة البيانات من الشبكة على الرقاقة (NoC). يتصل NoC بوحدة التحكم GDDR6 في جهاز Speedster7t بالذاكرة الخارجية.

AlexNوآخرون

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

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

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

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

كثافة مضاعفة

التحدي مع الالتفاف ثنائي الأبعاد هو عدد المضاعفات المطلوبة ، وهي مجموعة المضاعفة المخصصة في MLP. بالنسبة لتكوين AlexNet ، تكون كل نواة 11 × 11 = 121 قيمة وزن. ومع ذلك ، فإن الالتفافات هي في الواقع ثلاثية الأبعاد لأن صورة الإدخال بها ثلاث طبقات (RGB) ، لذا فإن مجموعة النوى بها 121 × 3 = 363 عملية ضرب لإنتاج نتيجة إخراج واحدة. صورة إدخال AlexNet هي 227 × 227 ؛ ومع ذلك ، فإن هذه الصورة بها خطوة 4 (يتم إزاحة النواة بمقدار أربعة بكسل بين الحسابات). ينتج عن هذه العملية مصفوفة نتيجة الإخراج 54 × 54 = 2916 نتيجة. لذلك ، فإن 363 × 2916 = 1058508 عملية مضاعفة مطلوبة للصورة ؛ أي أكثر من مليون عملية تراكم مطلوبة لمعالجة الصورة. الرسم التخطيطي الديناميكي لنواة واحدة تؤدي التفاف ثنائي الأبعاد كما يلي:

الشكل 1 الشكل 1 رسم تخطيطي ديناميكي لنواة واحدة تؤدي التفاف ثنائي الأبعاد

بالنسبة لـ MLP_Conv2D ، تم تصميمه لمعالجة 60 نواة في صورة في المرة الواحدة ، وتنفيذ أكثر من 60 مليون عملية مضاعفة التراكم في وقت واحد.

أداء

يمكن تشغيل تصميم MLP_Conv2D بسرعة 750 ميجاهرتز. يمكن لـ MLP واحد تحويل صورة إدخال RGB واحدة 227 × 227 مع نواة 11 × 11 في 137 ميكرو ثانية ، أي ما يعادل 15.4 GOPS في الثانية (بما في ذلك الضرب والإضافة). لكن مثيل MLP_Conv2D يتكون من 60 MLPs تعمل بالتوازي ، والتي يمكن أن تجمع 60 صورة إدخال في وقت واحد ، أي ما يعادل 924 GOPS. أخيرًا ، يتيح إنشاء مثيل ما يصل إلى 40 MLP_Conv2Ds في جهاز واحد ، حيث يقوم كل منها بنقل البيانات إلى ذاكرة GDDR6 عبر NAP الخاصة به ، بأداء مشترك يصل إلى 37 TOPS – أي ما يعادل 28،8000 صورة في الثانية (هذا التصميم مخصص بشكل أساسي لنواة الالتفاف) .

الموارد

تم تصميم MLP_Conv2D حول وظائف كتلة MLP و BRAM ويستخدم آثار التتالي الداخلية الخاصة بهما. وبالمثل ، يسمح NAP بتوجيه روابط البيانات مباشرة من وحدة التخزين الخارجية. تتيح هذه الميزات الحد الأدنى من متطلبات المنطق أو التوجيه الإضافية ، ويكون جدول الاستخدام كما يلي:

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

الشكل 2 استخدام الموارد لمثيل MLP_Conv2D واحد

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

الشكل 3 استخدام الموارد لـ 40 حالة MLP_Conv2D بالتوازي

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

الشكل 4 مخطط كتلة MLP_Conv2D

تدفق البيانات: MLP واحد

كل MLP له BRAM المجاورة. في هذا التصميم ، يتم استخدام BRAM لتخزين القلب وتمريره عدة مرات إلى MLP. عند التهيئة ، ستتم قراءة النوى المختلفة من مدخلات NAP وكتابتها إلى BRAM المقابل. تم تكوين BRAM على هيئة 72 بت على جانب الكتابة و 144 بت لإعدادات القراءة. أثناء التشغيل ، يتم استخدام 96 بت فقط كأوزان نواة ، أي تُقرأ على أنها 4 أوزان × 3 طبقات × 8 بتات. تتم قراءة بيانات الصورة الأولية من NAP إلى إدخال FIFO ، والذي يستخدم لتخزين الصورة كسلسلة من الخطوط. على الرغم من أن ذاكرة الإدخال هذه مدرجة كـ FIFO ، إلا أنها لا تزال تعمل كصيغة FIFO قابلة للتكرار لأنه يمكن قراءة الصفوف منها عدة مرات. تم تكوين الذاكرة لتكون بعرض 144 بت ، باستخدام 96 بت فقط ، وتتكون من وحدتي BRAM72K. تتكون كل كلمة من 4 بكسل × 3 طبقات × 8 بت. عند التهيئة ، تتم قراءة أسطر كافية لمطابقة عدد الأسطر في النواة بالإضافة إلى عدد الأسطر المطلوبة للخطوة الرأسية.الذي

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

بمجرد تحميل البيانات الأولية والنواة ، يبدأ الحساب.

اقرأ سطر الصورة الأول من الإدخال FIFO واقرأ عدد وحدات البكسل لبيانات الصورة المطابقة للحجم الأفقي للنواة. عند قراءة هذه البيكسلات ، تتم قراءة أوزان النواة المطابقة. يضاعف MLP كل من تدفقات 96 بت هذه بـ 12 قيمة int8 ويجمع النتائج. يتقدم الإدخال FIFO إلى الصف الثاني ، وتتكرر العملية حتى يتم ضرب جميع صفوف النواة بالبكسل المناسب في الزاوية اليسرى العليا من صورة الإدخال. خلال هذه العملية ، يقوم MLP بتجميع النتيجة ؛ الآن ، هذه النتيجة هي التفاف ثنائي الأبعاد للزاوية اليسرى العليا من الصورة الملتفة مع النواة. والنتيجة هي الإخراج من MLP كنتيجة 16 بت. كرر هذه العملية مع إدخال FIFO متداخلاً مع الخط الأمامي بعدد البكسل الذي تم تعيينه بواسطة معلمة STRIDE (تم إصلاح STRIDE عند 4 للتصميم الحالي). نظرًا لتضمين كل دورة معالجة ، يتم إنشاء نتيجة أخرى حتى يتم الحصول على العدد المناسب من النتائج أفقيًا.

بعد ذلك ، يتم إزاحة الإدخال FIFO إلى أسفل بعدد خطوط STRIDE ، وتتكرر العملية لتوليد نتيجة الالتفاف للمجموعة التالية من الخطوط في صورة الإدخال. عندما يتحرك الإدخال FIFO لأسفل ، لم تعد هناك حاجة إلى الصفوف الأولية في FIFO ، لذلك يتم تحميل المجموعة التالية من صفوف STRIDE لصورة الإدخال عندما تكون موازية لحساب MLP. عند النظر في متطلبات عرض النطاق الترددي لمصادر التخزين الخارجية ، يمكن ملاحظة أن الصورة والنواة تتم قراءتهما من الذاكرة مرة واحدة فقط. يمكن بعد ذلك إعادة استخدامها من BRAMs الخاصة بها ، مما يقلل العبء الإجمالي على عرض النطاق الترددي للذاكرة الخارجية ، كما هو موضح في الشكل 1.

تدفق البيانات: متعدد MLPs

السمة المميزة لـ MLP هي القدرة على تسلسل البيانات والنتائج من MLP أو BRAM في نفس العمود. تستفيد MLP_Conv2D من مسارات التسلسل هذه عن طريق وضع MLPs و BRAM المرتبطة بها في الرتب. يتم استخدام مسار تسلسلي لتوجيه البيانات إلى كل BRAM عندما يتم تحميل BRAMs في القلب ، ويتم تحديد BRAM المراد كتابتها إلى القلب باستخدام وضع عنوان كتلة BRAM.

أثناء الحساب ، سيتم تجميع بيانات الصورة الواردة في أعمدة MLPs بحيث يتلقى كل MLP بيانات الصورة بعد دورة واحدة بعد جارتها التالية. في نفس الوقت ، عنوان قراءة BRAM الذي يقرأه قلب التحكم متتالي في عمود BRAM بتأخير دورة واحدة. بهذه الطريقة ، يتلقى كل MLP نفس بيانات الصورة ونفس عنوان القراءة الأساسي بعد دورة واحدة بعد MLP السابق. يتمثل الاختلاف الحسابي لكل MLP في أن BRAM المرتبط به سيكون له بيانات kernel مختلفة. والنتيجة هي صورة ملتوية بنواة متعددة على التوازي. يسمى عدد التلافيف المتوازية BATCH.

تدفق البيانات: النتائج الحسابية

كما ذكرنا سابقًا ، ينتج كل MLP نتيجة 16 بت لكل التفاف لأجزاء النواة والصورة.

يتم ترتيب MLPs في 16 عمودًا ، لذلك من هذا العمود يتم إنشاء كلمة 256 بت تتكون من نتيجة كل MLP في هذا العمود. تتم كتابة هذه الكلمة ذات 256 بت بعد ذلك إلى ناتج NAP. ينتج عن هذا الترتيب تخزين نتائج الالتفاف في الذاكرة كطبقات من نفس الصورة ؛ وبالتالي ، مطابقة تبديل كلمة الإدخال عندما يتم تخزين ثلاث طبقات أو RGB في كلمة إدخال واحدة.

بعد ذلك ، نظرًا لأنه يمكن تنفيذ وظيفة التنشيط في 16 حالة متوازية على نتيجة 256 بت الكاملة ، فإن هذا الترتيب يسمح بمعالجة متوازية للنتائج المتضمنة في طبقة التنشيط. وبالمثل ، بمجرد إعادة كتابة نتيجة 256 بت في الذاكرة عبر NAP الناتج ، يمكن قراءة النتيجة مرة أخرى في دائرة التفاف ثنائية الأبعاد أخرى.

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

الشكل 5 مخطط تخطيط MLP_Conv2D

نسق

في بنية Speedster7t ، يتوافق كل NAP مع 32 MLP. تم تحسين التصميم لاستخدام برنامجي NAP ، أحدهما للقراءة والآخر للكتابة ، بحيث يمكن أن يتوافق مع 64 MLPs.

ومع ذلك ، تتطلب المدخلات والمخرجات FIFOs كتلتين من ذاكرة BRAM 72K لإنشاء ذاكرة مجمعة بعرض 256 بت. لذلك ، ستستهلك هذه الذكريات أربعة من 64 موقعًا متاحًا للبيانات I / O.

تم ترتيب التصميم لاستخدام MLP من أربعة أعمدة مرتبطة ببرنامجي NAP. ومع ذلك ، يستخدم كل من العمود الأول والأخير 14 MLPs ، تاركين موقعين من MLP للمدخلات والمخرجات FIFOs ، على التوالي. يستخدم العمودان الأوسطان جميع MLPs الـ 16 المتاحة. في عرض الخطة ، يتم ترتيب الأعمدة بحيث يكون العمود الأول (مع ذاكرة الإدخال الوارد أولاً يصرف أولاً في الأسفل) مجاورًا لـ NAP لتحسين التوقيت.

يظهر أدناه مثال على التخطيط الفعلي للتصميم باستخدام 60 MLPs (الدفعة = 60) (مع إبراز المسارات):

يخترق معالج التعلم الآلي (MLP) المبتكر من Achronix اختناقات أداء توقيت FPGA التقليدية

الشكل 6 60 تخطيطات MLP

عند استخدام 40 مثيلاً في بنية شريحة كاملة ، حاول جعل كل مثيل يستخدم NAP للتواصل مع الذاكرة. نتيجة لذلك ، لا يزال FMax يصل إلى 750 ميجا هرتز ويستخدم جميع 80 NAPs في الشريحة و 94٪ من MLP و BRAM72K.

الشكل 7 2400 تخطيطات MLP

سيقدم الإصدار التالي بنية النقطة العائمة وأداء MLP مع أمثلة ، لذا ترقبوا ذلك.

The Links:   VI-J2D-IX   LP150X12-TL01

  • components
  • الإخبارية
  • ابدأ من أبعاد متعددة لإنشاء معدات اختبار أوتوماتيكية مستقرة وفعالة لتلبية الفرص والتحديات في عصر تكامل الدائرة المتكاملة
  • نتحدث عن حالة صناعة شنغهاي IC
  • Fuji 2MBI100U4A-120 New Stock
  • Fuji 2MBI200U4H-120 New Stock
  • ما هو الفرق بين المستشعر والمشغل
©2022 bsm300gb120dlc | Created by bsm300gb120dlc
Go to mobile version