آیا میخواهید شتابدهی هوش مصنوعی روی FPGA را بیاموزید؟
این دوره آنلاین پروژه-محور، بینشهای عملیدر مورد طراحی شتابدهندههای AI، بهویژه الگوریتم CNNبرای طبقهبندی اعداد دستنویسارائه میدهد. تمرکز این دوره بر سطح طراحی سیستماست؛ یعنی چگونه یک ماژول CNN(نوشته شده با Verilog RTL) را با پردازنده کاربردی در حال اجرای لینوکسیکپارچه کنیم. نتیجه نهایی این پروژه، یک وباپلیکیشنبرای دریافت عدد دستنویس و ارسال دادهها جهت پردازش توسط شتابدهنده CNNروی FPGAاست. به طور متوسط، با استفاده از این شتابدهنده در مقایسه با CPU، یک ضریب افزایش سرعت 12 برابریبه دست میآید.
نکته:
این دوره برای مبتدیان مطلق در توسعه FPGA مناسب نیست. انتظار میرود پیش از ثبتنام، درک پایهای از طراحی FPGA با استفاده از Zynq و فریمورک PYNQ داشته باشید، زیرا این مبانی در دوره پوشش داده نمیشوند. همچنین آشنایی با Verilog و Python الزامی است.
در این دوره از Vivado 2022.1 و برد Xilinx Kria KV260 استفاده شده است، اما مفاهیم محدود به این ابزارها یا پلتفرمها نیست. شما میتوانید از نسخههای دیگر Vivado یا بردهای FPGA متفاوت نیز استفاده کنید.
CNN چیست؟
شبکه عصبی کانولوشنی (CNN) نوعی مدل یادگیری عمیق است که بهویژه برای پردازش دادههایی با ساختار شبکهای مانند تصاویر مناسب است. این شبکه با یادگیری خودکار سلسلهمراتب ویژگیهای مکانی از طریق لایههایی که عملیات کانولوشن (عملیات ریاضی برای استخراج ویژگیهایی مانند لبهها، بافتها و اشکال) را انجام میدهند، عمل میکند. معمولاً پس از این لایهها، لایههای Pooling قرار میگیرند که ابعاد مکانی را برای کارآمدتر کردن محاسبات و جلوگیری از بیشبرازش (Overfitting) کاهش میدهند. لایههای نهایی معمولاً کاملاً متصل (Fully Connected) هستند و طبقهبندی یا رگرسیون را بر اساس ویژگیهای یاد گرفته شده انجام میدهند. CNNها به دلیل توانایی در ثبت الگوهای مکانی، به طور گسترده در کارهای بینایی ماشین مانند تشخیص تصویر، تشخیص اشیاء و تشخیص چهره استفاده میشوند.
شتابدهنده CNN چیست؟
شبکههای CNN به دلیل محاسبات متراکم، بهویژه در عملیات کانولوشن، روی FPGA به شتابدهنده نیاز دارند، زیرا این عملیات روی پردازندههای معمولی میتواند کند و энергоبر (مصرفکننده انرژی) باشد. FPGAها پردازش موازی، معماری قابل سفارشیسازی و تأخیر کمتری را ارائه میدهند که آنها را برای افزایش سرعت وظایف CNN در حالی که بهرهوری انرژی حفظ شود، ایدهآل میکند. این موضوع بهویژه برای کاربردهای بلادرنگ مانند رانندگی خودکار یا دستگاههای لبه (Edge Devices) که محدودیتهای عملکرد و توان در آنها حیاتی است، بسیار ارزشمند است.
چرا از Zynq FPGA استفاده کنیم؟
بردهای Zynq FPGA توسعه یافته توسط Xilinx به دلیل ترکیب منطق برنامهپذیر (FPGA fabric) و پردازندههای ARM یکپارچه روی یک تراشه، برای شتابدهی CNN بسیار مناسب هستند. این معماری ترکیبی اجازه میدهد تا پردازش موازی با عملکرد بالا در لایههای CNN در بخش FPGA انجام شود، در حالی که وظایف کنترلی و پیش/پس پردازش روی هستههای ARM مدیریت شوند. Zynq با انعطافپذیری، تأخیر کم و بهرهوری انرژی، اجرای بهینه شتابدهندههای سفارشی CNN را ممکن میسازد و آن را برای کاربردهای تعبیه شده و بلادرنگ مانند رباتیک، وسایل نقلیه خودران و دوربینهای هوشمند ایدهآل میکند.
یادگیری را از امروز شروع کنید—همین حالا ثبتنام کنید!
تمام کدهای منبعدر این دوره در دسترس است. پس از اتمام دوره، یک گواهینامه معتبر پایان دورهدریافت خواهید کرد. ضمانت بازگشت وجه ۳۰ روزه Udemy در صورت عدم رضایت، به شما اجازه میدهد بدون ریسکمطالعه کنید. در دوره میبینمتون!
Erwin Ouyang
مهندس R&D ، محقق (1000+ دانشجو در Udemy) اروین با بیش از 1000 دانشجو در Udemy علاقه مند به میکروکنترلر و FPGA است. وی به عنوان مهندس تحقیق و توسعه در یک شرکت نوپا کار کرد. وی سیستم عامل و نرم افزاری را برای سیستم تماس دیجیتال پرستار و سیستم کنترل دسترسی درب با AVR ATmega و چارچوب دات نت توسعه داد. وی نرم افزاری برای رابط بین تجهیزات آزمایشگاهی بالینی و سیستم اطلاعات آزمایشگاهی با سوکت RS-232 و TCP توسعه داد. وی مدرک کارشناسی ارشد خود را در رشته مهندسی الکترونیک در سال 2018 دریافت کرد. وی در حال حاضر یک محقق در مرکز میکروالکترونیک ITB است. علایق اصلی تحقیق وی در ارتباطات نور مرئی/LiFi و یادگیری عمیق است. وی چندین مقاله با عنوان "پیاده سازی هم پردازنده سیستولیک برای استنتاج شبکه عصبی عمیق بر اساس SoC" و "طراحی لایه PHY سیستم OFDM-VLC بر اساس SoC با استفاده از روش استفاده مجدد" در IEEE Xplore منتشر کرد. او در وبلاگهای خود (Hands-On Embedded) آموزشهای مربوط به سیستم تعبیه شده را می نویسد.
نمایش نظرات