رفتن به مطلب

 اشتراک گذاری

Recommended Posts


درود دوستان و کاربران 

قصد دارم به معرفی دستورالعمل مهم و کاربردی AVX - 512 بیتی یا Advanced Vector Extensions این دستورالعمل اولین بار در سال 2008 توسط دو شرکت AMD و Intel طراحی و توسعه یافت و نتیجه آن استفاده در پردازنده های رده های مصرفی متفاوت می باشد، این دستورالعمل ها در قالب کدهای باینری ساخته X86 شده اند و درون پردانده ها جاسازی شده اند دستورالعمل AVX در چارچوب مجموعه داده های اجرای SIMD قرار دارند دستورالعمل های SIMD در واقع می توان گفت بسط یا توسعه یافته دستورالعمل MMX می باشد در دستورالعمل های MMX ما شاهد 128 بیت ثبات بودیم که در این نسخه به 256 ثبات رسیده که باعث افزایش خیره کننده محاسبات ، که شامل سه Operand نیز می شود حال شرکت Intel قصد دارد در آینده نسخه های AVX 512 بیتی و حتی 1024 بیتی را درون پردازنده های سرور و ایستگاه کاری خود که نیازمند توان و قدرت بیشتری برای پردازنده داده ها و تبدیل آن ها به اطلاعات هستند می باشد ضعفی در که دستورالعمل های قبلی وجود داشت استفاده از دو Operand می باشد A And B و که اگر دوستان برنامه نویسی کرده باشند می تونند جمع این مقدار را در مخزن A قرار می دهد حال شرکت Intel با اصلاحیه ای که انجام داده است با استفاده از سه Operand توانسته است علاوه محاسبات بیشتر و با دقت در از سه Operand مانند : A - B - C استفاده کنند > A= B + C .استفاده از این سه عملوند باعث می شوند که داده ها ما شکسته شوند و در قالب داده های کوچک در بیاییند و این که پردازش انها سریعتر و با مصرف کمتری انجام گیرد. استفاده بهینه از فضای Swapping در حافظه ها باعث می شوند که دستورات بی مصرف یا در واقع دستوراتی که مورد استفاده نیستند در فضای Swapping قرار نگیرد ، شرکت Intel در کنار اصلاحیه هایی انجام داده یک دستور را درقالب VEX به این مجموعه اضافه کرده است باعث می شود که کدهایی اجرایی در قالب بسته های کوچک تر تقسیم شده و زمان کمتری صرف شود تا داده ها پردازش شوند این خود باعث کاهش شدید Latency خواهد شد. 
دستورالعمل جدید Intel AVX 512 Bit که شرکت Intel در پردازنده های سرور خود استفاده کرده است و این شرکت قول این را به کاربران و طرفداران خود داده است در اینده قصد دارد از دستورالعمل AVX 512 بیتی نیز در محصولات Desktop و HEDT استفاده نمایید ، دستورالعمل AVX 512 نسخه توسعه یافته FMA / AVX 256 Bit می باشد چرا این دستورالعمل انقدر مهم برای شرکت های سازنده تراشه های نیمه هادی مانند Intel می باشد در زمانی که ما افزایش 5 الی 10 درصدی در هر نسل بین شرکت های سازنده پردزانده مشاهده می کنید تغییرات مهم در ساخت پردازنده از جمله دستورالعمل ها می تواند به افزایش کارایی پردازنده ها کمک شایانی نمایید از جمله میان افزاریهایی مانند: بازی ها رایانه ای ، و همین طور رسیدن به یک خروجی برای مصرف مناسب و افزایش بازده ، اساس و کاربرد AVX 512 بیتی پیاده سازی در سطح توازی هستش ضعفی که در نسخه های قبلی وجود داشت این ضعف شدید در پردازش داده ها که به کندی صورت می پذیرفت شرکت Intel را بر آن کرد که دستورالعمل جدیدی نیازمند هستش که بتوانیم بازده پردازنده ها را افزایش دهیم و همچنین با حرکت شرکت ها سخت افزاری و نرم افزاری به سمت Compute Unit ها و پردازشهای توازی نیازمند یک دستورالعمل قدرتمند بودش این امر را تحقق بخشد، گفته می شود اولین پردازنده های که از این دستورالعمل بهره مند خواهد شد SKY-E Xeon خواهد بود دستورالعمل های SIMD در سال 1997 بعد از معرفی MMX ساخته و توسعه داده شده اند دارای مجموعه از ثبات های بزرگ می باشند افزایش پیوسته از 64 بیتی MMX به 128 بیتی SSE -X در این جا X به نسخه های مختلف این دستورالعمل اشاره دارد به ترتیب با بروزرسانی ها صورت گرفت AVX - FMA به صورت 256 بیتی عرضه شدند که در تمامی پردازنده می توان یافت و در اخر نیز موضوع بحث مورد نظر ما می باشد AVX 512 Bit می باشد استفاده از دستورالعمل های 512 بیتی باعث دو کار در مجموعه خواهد شد :

1- افزایش پردازش داده ها 2- اجرای همزمان داده ها (توازی سازی )

شرکت Intel و AMD از زبان محبوب و سطح بالا ++C در Compiler ها خود استفاده می کنند، AVX 512 بیتی دارای چندین زیر مجموعه می باشد که شرکت Intel قصد دارد در آینده در هر نسل از پردازنده های خود از نسل هشت معماری Core استفاده نماید مانند: “Canonlake-E” supporting IFMA یا Integer FMA را پشتیبانی خواهد نمود، این موضوع را نیز اضافه کننم فعلا تا این لحظه کاربران مصرفی که کاربرد اصلی انها بازی های رایانه ای می باشند نیازمند این دستورالعمل قدرتمند نیستند چرا که شرکت های بازی سازی از دستورالعمل مانند: SSE - X استفاده می کنند برای ساخته و اجرای بازی هایشان مانند DX12 که حتی بروی پردازنده های قدیمی نیز اجراء می شوند چرا این که پردازنده از دستورالعمل SSE - X پشتیبانی می کنند . این نکته را اشاره کردم که دوستان مد نظر داشته باشند ، ترجمه و انتقال داده از دستورالعمل های 128 بیتی و 64 بیتی مانند; SSE - MMX - FMA و ... به نسخه های جدیدتر مخصوصا 512 بیتی باعث افزایش چشمگیری در کارایی خواهد شد به بیش از 120 درصد خواهد رسید که شامل کدهای Compute خواهد بود این باعث خواهد شد که برای اجرای برنامه به ندرت به حافظه ها اصلی سیستم دسترسی داشته باشند که این باعث می شود داده ها سریعتر درون پردازنده ها قرار گیرند استفاده از دستورالعمل ها 512 بیتی AVX باعث افزایش قابل توجه ای در واقع دو برابر شدن Register ها شده است که قدرت محاسباتی و پردازشی را به طرز وحشتناکی افزایش می دهد نزدیک به 4 برابر داده های بیشتر در دسترس قرار می گیرند که در واقع می توان گفت Cache Local درون پردازنده که دسترسی پیوسته و مکرر را به دورن حافظه های اصلی کاهش می دهد .

 

استفاده از مقاله با ذکر نام نویسنده و منبع بلامانع می باشد.

 

 

485s_aaa.png

ویرایش شده توسط TERRORIST
لینک به دیدگاه
Share on other sites

  • کاربر ویژه

سلام

اتفاقا دیروز در موردش ازم سوال کرده بودن که نمیدونستم و در و دیوار رو نگاه میکردم و بحثو عوض کردم

خیلی به موقع بود ممنون

لینک به دیدگاه
Share on other sites

درود

 

خواهش میکنم فرجام جان ، سعی کردم مقاله مفیدی باشه و این که ساده سازی شده برای کاربران که قابل درک و فهم باشه  ، نخواستم کدنویسی ب زبان های ++C و باینری قرار بدم. چون واقعا برای کاربران قابل درک نبودش.

لینک به دیدگاه
Share on other sites

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پست در این تاپیک...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

 اشتراک گذاری

×
  • اضافه کردن...