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

آسارایان 1400/05/22 بدون نظر

از زمانی که اینتل اولین ریزپردازنده های خود را در سال 1971 معرفی کرده؛ زمان زیادی گذشته است و ما در این سال ها شاهد تغییرات زیادی بوده ایم. 4004 دستگاهی دارای 2300 ترانزیستور بود در حالی که بهترین تراشه های امروزی از میلیاردها ترانزیستور برخوردار هستند و از آن زمان تا کنون قدرت بیشتری را ارائه می دهند.


پردازنده های کامپیوتر

اما هر بار که اینتل یک تراشه کامپیوتری جدید را به بازار عرضه می کند، سرمایه گذاری زیادی را انجام می دهد چون باید دستورالعمل های جدیدی از برنامه های کامپیوتری را اضافه کند که به آنها اعلام می کند چه داده هایی را باید پردازش کنند و چگونه این پردازش را انجام دهند. اینها مواردی هستند که کاربر قادر به مشاهده آنها نیست اما وظایف قدرتمندی مانند پردازش تصویر؛ یادگیری ماشین و کدینگ ویدیو را به عهده دارد.

با این حال، برنامه هایی که این اطلاعات جدید را پردازش می کنند و کامپایلر نامیده می شوند؛ همیشه نمی توانند از این دستورالعمل های پیچیده استفاده کنند. پس بار کار اغلب به دوش توسعه دهندگان متخصصی است که کارهای بیشتری را با دست انجام می دهند و کارهای سنگینی مانند نوشتن کد اسمبلی را انجام می دهند.

دانشمندان آزمایشگاه علوم کامپیوتر و هوش مصنوعی CSAIL MIT روشی را برای مسیریابی بهتر دستورالعمل های پیچیده کامپیوتری ارائه دادند. ابزار آنها که VeGen (a vectorizer generator for SIMD and beyond) نام دارد به طور خودکار پلاگین های کامپایلر را ایجاد می کند تا از دستورالعمل های پیچیده تر استفاده کنند.

دکتر CSAIL دانش آموخته Yishen Chen اظهار می دارد که VeGen همان مستنداتی را که اینتل به توسعه دهندگان نرم افزار می دهد را دریافت می کند و به طور خودکار یک پلاگین کامپایلر را تولید می کند که به کامپایلر اجازه می دهد از چیزی به نام داده های چند دستورالعملی غیر منفرد SIMD (مخفف non-Single Instruction Multiple Data) استفاده کند، که دستورالعمل هایی هستند که برای تسریع برنامه ارائه شده توسط کاربر پیچیدگی بیشتری را ارائه می دهند.

Chen نویسنده یکی از مقالات VeGen اظهار می دارد که بدون VeGen مهندسان کامپایلر باید اسناد را بخوانند و کامپایلر را به صورت دستی تغییر دهند تا بتوانند از این دستورالعمل ها استفاده کنند. مشکل اینجا است که این فرآیند دستی است و الگوریتم های کامپایلر فعلی از این دستورالعمل ها به طور موثری استفاده نمی کنند.


متد دستورالعمل ها


ابزار vegen

اکثر پردازنده های کامپیوتر از دستورالعمل های مبتنی بر ریاضی استفاده می کنند که به شما امکان می دهند محاسباتی مانند A=B+C را انجام دهید.

پردازنده همچنین از چیزی به نام دستورالعمل های برداری پشتیبانی می کنند که در واقع دستورالعمل هایی هستند که به طور همزمان چندین عملیات را با هم انجام می دهند (مانند A1=B1+C1 و A2=B2+C2؛ این دو دستورالعمل جزو دستورالعمل های سنتی SIMD محسوب می شوند).

دستورالعمل های غیر SIMD پیچیده تر هستند اما در عین حال قوی تر و کارآمدتر هستند (مانند دستورالعمل هایی که همزمان عملیات جمع و تفریق را انجام می دهند).Chen اظهار می دارد که VeGen عمدتا با دستورالعمل هایی که با مدل SIMD مطابقت ندارند سر و کار دارد.

کل این فرایند را مانند یک رستوران تصور کنید:

  • برنامه نویس، مانند سرآشپز مشهوری است که به برنامه (ظرف) فکر می کند.
  • کامپایلر؛ مانند آشپز وسواسی است که برنامه (ظرف) را می گیرد و دستوراتی را برای اجرا (پخت غذا) صادی می کند و این در حالس است که از منابع موجود در آشپزخانه اطلاع دارد.
  • پردازنده، مانند آشپزخانه است.
  • دستورالعمل ها (دستورالعمل های تهیه غذا) توسط آشپزها با استفاده از تجهیزات مختلف اشپزخانه اجرا می شوند (آماده کردن غذا).
  • طراحی جدید پردازنده که قابلیت های جدیدی را به پردازشگر اضافه می کند مانند بازسازی آشپزخانه یا اضافه کردن تجهیزات جدید به آشپزخانه است.
  • اگر آشپز و تیمش نحوه استفاده از تجهیزات جدید را بلد نباشند؛ مالکان رستوران ها از هزینه ای که برای بازسازی آشپزخانه صرف کرده اند؛ راضی نخواهند بود.

Charith Mendis استاد دانشگاه Illinois Urbana-Champaign که یک مقاله در مورد VeGen نوشته است اظهار می دارد که با ظهور دستورالعمل های پیچیده، برای توسعه دهندگان کامپایلر کار سختی است که استراتژی های تولید کد را آپدیت نگه دارند تا از پتانسیل کامل و پشتیبانی شده توسط سخت افزار اصلی استفاده کنند.

روش VeGen یک تولید کننده کد است که با تولید خودکار بخش هایی از کامپایلر که مسئول شناسایی توالی کد هستند؛ می تواند از ویژگی های سخت افزاری جدید استفاده کنند. وی بیان کرد که ما امیدواریم که VeGen در ایجاد اجزای کامپایلر نقش خود را به خوبی ایفا کند و منجر به ایجاد زیرساخت های کامپایلر پایدار و قابلیت نگهداری در آینده شود.

نتایج اولیه نشان داد که به عنوان مثال در هسته های کدینگ ویدیو؛ VeGen می تواند به طور خودکار از دستورالعل های برداری غیر SIMD استفاده کند و سرعت را از 27 درصد به 300 درصد برساند.

Saman Amarasinghe، پروفسور MIT که مقاله ای در مورد VeGen نوشته است بیان می کند که کنار هم قرار دادن تمام کتابچه های راهنمای اینتل بیش از یک فوت (30 سانتی متر) عرض دارد و هزاران صفحه برای مطالعه وجود دارد. به طور معمول، نویسنده کامپایلر باید جزئیات ریز تغییرات دستورالعمل را در صدها صفحه پخش کند؛ اما VeGen این کار خسته کننده را به طور کامل دور می زند.

Chen می گوید با پیچیده شدن سخت افزار برای تسریع محدوده های محاسباتی؛ ما معتقدیم که VenGen سهم ارشمندی دارد. هدف بلند مدت این است که هر زمان که ویژگی های جدیدی را به سخت افزار خود اضافه می کنید؛ ما به طور خودکار راهی برای استفاده از این شتاب دهنده های سخت افزاری بدون بازنویسی کد پیدا کنیم.


با اولین خرید از فروشگاه تخصصی کامپیوتر آسارایان یک پک آنتی ویروس برای 2 سیستم و 2 دستگاه گوشی همراه هدیه دریافت کنید.


منبع: techxplore