ابزارتولید و بهینه سازی شبکه های یادگیری عمیق برای پیاده سازی روی FPGA ها

Publish Year: 1400
نوع سند: مقاله کنفرانسی
زبان: Persian
View: 323

متن کامل این Paper منتشر نشده است و فقط به صورت چکیده یا چکیده مبسوط در پایگاه موجود می باشد.
توضیح: معمولا کلیه مقالاتی که کمتر از ۵ صفحه باشند در پایگاه سیویلیکا اصل Paper (فول تکست) محسوب نمی شوند و فقط کاربران عضو بدون کسر اعتبار می توانند فایل آنها را دریافت نمایند.

  • Certificate
  • من نویسنده این مقاله هستم

این Paper در بخشهای موضوعی زیر دسته بندی شده است:

استخراج به نرم افزارهای پژوهشی:

لینک ثابت به این Paper:

شناسه ملی سند علمی:

ISCEE20_032

تاریخ نمایه سازی: 6 مهر 1400

Abstract:

یکی از انواع مهم شبکه های عصبی، شبکه های عصبی بازگشتی هستند. به طور کلی از این شبکه ها می توان برای پیداکردن الگوها در دادههایی که توالی در آنها وجود دارد، استفاده کرد. از جلمه کاربردهای شبکه های عصبی بازگشتیمی توان به تشخیص صوت، ترجمه گرها، تشخیص دست خط، تشخیص حالت های انسانی، کنترل ربات ها، تولید موسیقی وکارهای مختلف دیگر اشاره کرد. اما یکی از چالش های مهم برای این نوع الگوریتم ها پیاده سازی آنها روی سخت افزاراست. پیاده سازی این الگوریتم ها روی CPU و GPU و FPGA امکان پذیر است. پیادهسازی با استفاده از CPU و GPUبه دلیل سهولت پیاده سازی و وجود راهکارهای نرم افزاری آسان، روش های پیاده سازی شناخته شده تر هستند. از طرفی،امروزه FPGA ها به دلیل مصرف توان پایین و امکان طراحی بهینه و مناسب هر الگوریتم و امکان پیاده سازی موازیمی تواند در بخش های مختلف جایگزین مناسبی برای CPU و GPU باشد. با توجه به ویژگی های ذکر شده FPGA می-تواند ابزار مناسبی برای پیاده سازی شبکه های عصبی نیز باشد. با توجه به ماهیت پیچیده ی الگوریتم های شبکه های عصبی،پیاده سازی این نوع الگوریتم ها روی FPGA کاری زمان بر است و از طرفی برای پیاده سازی بهینه و مناسب الگوریتم هایشبکه های عصبی به تجربه کافی در زمینه پیاده سازی سخت افزاری الگوریتم ها و همچین تسلط کافی به ماژول های تشکیلدهنده یک شبکه ی عصبی نیاز است. اما برای رفع این مشکلات و امکان پیاده سازی سریع و بهینه شبکه های عصبی رویFPGA می توان با ترکیب راهکارهای سخت افزاری و نرم افزاری نظیر روش های بهینه سازی مختلف ماژول های تشکیلدهنده شبکه های عصبی این امکان را فراهم نمود تا شبکه ی عصبی پیاده شده در پلتفرم های نرم افزاری مانند Keras وPytorch را به شبکه های سخت افزاری بهینه سازی شده و قابل پیاده سازی روی FPGA ها تبدیل کرد. یکی از خروجی هایسخت افزاری ممکن، خروجی در زبان های سطح بالا مانند C یا ++C برای پیادهسازی از طریق HLS ها و سنتز سطح بالااست. که به این ترتیب می توان فرایند زمان بر پیاده سازی و بهینه سازی سخت افزاری یک شبکه را در کوتاهترین زمان ممکنطی نمود و همچنین این امکان فراهم می شود تا استفاده کنندگان حوزه های نرم افزاری هم بدون نیاز به دانش سخت افزاریبالا بتوانند به راحتی یک شبکه ی عصبی روی سخت افزار اجرا کنند.

Authors

نیما شیرین زاده

دانشجوی کارشناسی ارشد، گروه مهندسی کامپیوتر، دانشکده فنی و مهندسی، دانشگاه گیلان، رشت

مهدی امینیان

استادیار، گروه مهندسی کامپیوتر، دانشکده فنی و مهندسی، دانشگاه گیلان، رشت