لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش توسعه برنامههای ابری شتابیافته با FPGA با استفاده از SDAccel: تئوری
- آخرین آپدیت
دانلود Developing FPGA-accelerated cloud applications with SDAccel: Theory
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
این دوره برای هر کسی است که مشتاق یادگیری نحوه توسعه برنامههای شتابیافته با FPGA با استفاده از SDAccel است!
ما در عصری هستیم که پیشرفت تکنولوژی باعث تغییر پارادایمها در محاسبات شده است! به عنوان یک نقطه تعادل بین دو ویژگی متضاد GPP و ASIC، ما با مفهوم جدیدی روبرو هستیم: محاسبات بازپیکربند (Reconfigurable Computing) که مزایای هر دو دنیای قبلی را با هم ترکیب کرده است. در این راستا، میتوان گفت که محاسبات بازپیکربند به طور گسترده و تدریجی بر زندگی انسان تأثیر خواهد گذاشت. بنابراین، اکنون زمان آن است که بر نحوه استفاده از محاسبات بازپیکربند و تکنیکهای طراحی سیستمهای بازپیکربند برای ساخت برنامهها تمرکز کنیم.
از یک سو، محاسبات بازپیکربند میتواند عملکرد بهتری نسبت به پیادهسازی نرمافزاری داشته باشد، اما این برتری به قیمت صرف زمان بیشتر برای پیادهسازی تمام میشود. از سوی دیگر، یک دستگاه بازپیکربند میتواند برای طراحی سیستمی استفاده شود که در مقایسه با راهکارهای کاملاً سفارشی (Custom Solution)، زمان طراحی و پیچیدگی کمتری داشته باشد، هرچند ممکن است از نظر عملکرد در رده پایینتری قرار گیرد.
در این راستا، ابزارهای Xilinx SDx، شامل محیط SDAccel، محیط SDSoC و Vivado HLS، تجربهای آماده و جامع را برای برنامهنویسان سیستم فراهم میکنند تا بخشهایی از یک برنامه نرمافزاری را برای اجرا در یک المان سختافزاری مبتنی بر FPGA تقسیمبندی کرده و کاری کنند که آن سختافزار به طور یکپارچه با بقیه برنامه که در یک پردازنده یا پردازنده جاسازی شده (Embedded) در حال اجراست، کار کند.
این تجربه آماده، نتایج جالب و «به اندازه کافی خوب» را برای بسیاری از برنامهها فراهم میکند. با این حال، ممکن است برای شما کافی نباشد و به دنبال عملکرد بهتر، نرخ انتقال داده بالاتر، کاهش تأخیر یا کاهش مصرف منابع باشید... این دوره دقیقاً بر همین موارد تمرکز دارد. پس از معرفی FPGAها، ما بیشتر در جزئیات نحوه استفاده از Xilinx SDAccel عمیق میشویم و مثالهای کاربردی در مورد نحوه بهینهسازی منطق سختافزاری برای دستیابی به بهترین نتایج در پیادهسازیهای سختافزاری ارائه میدهیم. در این مسیر، ویژگیها، دستورالعملها یا پراگماهای (Pragmas) خاصی برای هدایت کامپایل و سنتز هسته سختافزاری یا بهینهسازی عملکرد انتقالدهنده داده بین پردازنده و منطق سختافزاری استفاده میشوند.
علاوه بر این، در این دوره بر زیرساختهای توزیعشده و ناهمگون تمرکز خواهیم کرد و نحوه عملیاتی کردن راهکارهای شما را با استفاده از نمونههای Amazon EC2 F1 معرفی میکنیم.
سرفصل ها و درس ها
آشنایی با تکنولوژیهای FPGA
Familizarize youself with FPGA technologies
محاسبات بازپیکربند و تکنولوژیهای FPGA
Reconfigurable Computing and FPGA technologies
سیستمهای مبتنی بر FPGA و بازپیکربندی
FPGA-based systems and reconfiguration
سیستم قابل برنامهریزی روی چندین تراشه
Programmable System-on-Multiple Chips
سیستم قابل برنامهریزی روی تراشه (SoC)
Programmable System-on-Chips
بلوکهای سازنده اصلی FPGA
FPGAs main building blocks
نحوه برنامهریزی FPGA: بیتاستریم و پیکربندی
How to program an FPGA: bitstream and configuration
نحوه برنامهریزی FPGA: توصیف سیستم و طراحی فیزیکی
How to program an FPGA: system description and physical design
ابزارهای CAD برای طراحی سیستمهای مبتنی بر FPGA
CAD Tools for FPGA-based systems design
مقدمهای بر محیط توسعه SDx
An introuction to the SDx development environment
نگاهی کلی به SDAccel
A bird's eye view on SDAccel
جریان طراحی سختافزار
Hardware Design Flow
مقدمهای بر SDAccel و جریان مبتنی بر OpenCL
An introduction to SDAccel and the OpenCL-based flow
مدل محاسباتی OpenCL: اندازههای جهانی و محلی
OpenCL computational model: global and local sizes
فراتر از OpenCL: منطق پشت جریانهای RTL و C
Not only OpenCL! The Rationale behind the RTL and C flows
مدل حافظه SDAccel
SDAccel memory model
شبیهسازیهای SDAccel
SDAccel "emulations"
زمان اجرای (Runtime) SDAccel
SDAccel runtime
نحوه بهینهسازی سیستم
On how to optmize your system
مقدمه
Introduction
موازیسازی FPGA در مقابل معماری پردازنده ۱/۲
FPGA Parallelism vs Processor Architecture 1/2
موازیسازی FPGA در مقابل معماری پردازنده ۲/۲
FPGA Parallelism vs Processor Architecture 2/2
زمانبندی، خطلوله (Pipelining) و جریان داده
Scheduling, Pipelining, and Dataflow
جریان بهینهسازی برنامه
Application Optimization Flow
بهینهسازی سیستم از طریق SDAccel
Optimize your system via SDAccel
نگاهی کلی به بهینهسازیهای SDAccel
A bird's eye view on SDAccel optimizations
بهینهسازی رابطها: بافت کلی و بررسی معماری هدف معمولی
Interface optimizations: Overall context and an overview of a typical target architecture
بهینهسازی رابطها: اولین مثال
Interface optimizations: a first example
انتقال دادههای Burst
Burst data transfer
استفاده از پهنای باند کامل دادههای AXI
Using full AXI data width
استفاده از بانکهای حافظه متعدد
Using multiple memory banks
سایر بهینهسازیها
Other optimizations
بهینهسازی هسته: باز کردن حلقه (Loop Unrolling) ۱/۲
Kernel optimization: loop unrolling 1/2
بهینهسازی هسته: باز کردن حلقه (Loop Unrolling) ۲/۲
Kernel optimization: loop unrolling 2/2
نمایش نظرات