به انجمن خوش آمدید
نمایش نتایج: از شماره 1 تا 5 , از مجموع 5
  1. #1
    کاربر حرفه ای کامپیوتر
    تاریخ عضویت
    Mar 2012
    نوشته ها
    392
    امتیاز
    6,734
    سطح
    53
    تشکر کردن
    813
    1,481 بار در 352 پست از وی تشکر شده
    دستاورد ها:
    Three FriendsTagger Second ClassVeteranYour first Group5000 Experience Points

    دستورالعمل AVX 512 بیتی چیست ؟






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

    قصد دارم به معرفی دستورالعمل مهم و کاربردی 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 درون پردازنده که دسترسی پیوسته و مکرر را به دورن حافظه های اصلی کاهش می دهد .





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

  2. 2 کاربر از پست SPARC عزیز به علت مفید بودن تشکر کرده اند:


  3. #2
    کاربر حرفه ای کامپیوتر
    تاریخ عضویت
    Mar 2012
    نوشته ها
    392
    امتیاز
    6,734
    سطح
    53
    تشکر کردن
    813
    1,481 بار در 352 پست از وی تشکر شده
    دستاورد ها:
    Three FriendsTagger Second ClassVeteranYour first Group5000 Experience Points
    دستورالعمل Advanced Vector Extensions 2 در پردازنده های Intel:

    اخرین نسل از پردازنده های XEON قرار هستش از دستورالعمل های AVX2 یا Advanced Vector Extensions نسخه 2 بهره مند شوند، در اینجا نگاهی خواهیم داشت به این که چه دلیلی و کاربردی دارد که شرکت بزرگی مانند Intel قصد دارد از این دستورالعمل ها در پردازنده های نسل بعد خود مانند: XEON و همچنین در پردازنده های HEDT مانند نسل چهارم معماری Core اسم رمز: Haswell نیز در سبد محصولات Haswell-E شاهدش هستیم مانند پردازنده : Intel Corei7 5960X و یا پردازنده های XEON E3 . شرکت Intel اعلام کرده است استفاده از دستورالعمل AVX.2 باعث بهبود در کارایی و افزایش Performance در اجرای برنامه های کاربردی و تخصصی در زمینه های : پایگاه داده ها ( مانند دسترسی سریعتر به بلاکها) ، شبیه سازی پزشکی مانند: سرطان سینه در خانم ها، رایانش ابری، پردازش ویدیوها و ... که شرکتهای سازنده با استفاده از شیوه کد نویسی می توانند با دستورالعمل های پردازنده ها ارتباط برقرار کرده و از انها استفاده کنند، برای نمونه استفاده از کدهای vectorized در محاسبات Floating Point صورت می گیرد روشی هستش که برای Encoding کردن اعداد حقیقی یا Real Numbers در محدودی از Finite Prec***on در کامپیوترها مورد استفاده قرار می گیرد، استفاده از Floating Point Encoding یا رمزنگاری کند اعداد بسیار بزرکی به راحتی، افراد برنامه نویس و یا برنامه نویس سیستمی با استفاده از زبان C و ++C می توانند استفاده کنند از دستورالعمل های AVX2 برای Compile کردن و فراخوانی ، همچنین می توانید از زبان برنامه نویسی اسمبلی نیز از این دستورالعمل نیز و کدها ان استفاده نمایید، شرکت Intel برای نسل جدید اقدام به اصلاحاتی در این دستورالعمل ها کرده است استفاده از ثباتها یا Register های 256 بیتی بروی پردازنده XEON مثل سری E5، این دستورالعمل نیز به 2 برابر سریعتر کارهای Encoding را سریعتر از دستورالعمل SSE انجام می شود.

    می دانیم که Compiler های شرکت Intel همگی به زبان شیوا و شیرین ++C نوشته شده اند و شرکت Intel برای اولین بار در سال 2013 استفاده از دستورالعمل ها را پردازنده های خود گنجاند تا کار را برای توسعه دهندگان و برنامه نویسان راحت تر کند و درکنار ان استفاده از این دستورالعمل ها برای کاربران و گیمر ها استفاده نمایند مانند شرکت سازنده GTA V با که کدهای خود را با استفاده از AVX نوشته است، این دستورالعمل درقالب مجموعه ای از دستورات SIMD توسعه و گسترش داده شده است .

    در حالی که خیلی از برنامه نویسان به این نکته اشاره دارند که AVX2 یا AVX بسیار شبیه به دستورالعمل های SSE و SSE2 میباشد در حالی که شرکت Intel اعلام کرده است استفاده از این دستورالعمل ها کاملا متفاوت از سایر دستورالعمل ها بود و دارای توابع و Brunch ها متفاوتی نسبت به دو دستورالعمل اشاره شده است می باشد، همان طور که اشاره شد دستورالعمل های AVX2 به صورت 256 بیتی هستند و توسط سیستم عامل کنترل و مدیریت می شوند با استفاده از دو دستورالعمل Xsave و XRSTOR، دستورالعمل فوق از سه Operand برای انجام و امور کارهای برنامه نویسی استفاده می نماید که کار برای Encoding و Decoding با افزایش کارایی می شود نمونه ای از خانه های به صورت شماتیک برای درک این چگونه این ثباتها مورد استفاده قرار میگرند، YMM0 وYMM7 دو نوع Operand یا عملوند هستند که به صورت 32 بیتی عمل می کنند و YMM0و YMM15 در دو حالت 64 بیتی هستند، در کنار استفاده از دستورالعمل های 256 بیتی ،شرکت Intel نیز از دستورالعمل های 128 بیتی به صورت عدد صحیح Integer نیز استفاده کرده است ما می دانیم انواع مختلف از عدد صحیح یا Integer داریم که شرکت Intel از نوع Long Integer استفاده کرده است.

  4. 2 کاربر از پست SPARC عزیز به علت مفید بودن تشکر کرده اند:


  5. #3
    مدیر انجمن سخت افزار و مشاوره
    تاریخ عضویت
    Aug 2014
    محل سکونت
    نقطهء کور
    نوشته ها
    820
    امتیاز
    147,077
    سطح
    100
    تشکر کردن
    2,436
    2,345 بار در 678 پست از وی تشکر شده
    دستاورد ها:
    Three FriendsTagger First ClassOverdrive50000 Experience PointsVeteran
    جایزه ها:
    Downloads
    سلام بسیار عالی و پربار بود.
    فقط اگر گزینه bolld متن رو خاموش کنید فکر کنم زیباتر شه .منبع رو هم حتما ذکر کنید.

  6. کاربر مذکور از پست MR.POORSUNI عزیز به علت مفید بودن تشکر کرده است:


  7. #4
    کاربر حرفه ای کامپیوتر
    تاریخ عضویت
    Mar 2012
    نوشته ها
    392
    امتیاز
    6,734
    سطح
    53
    تشکر کردن
    813
    1,481 بار در 352 پست از وی تشکر شده
    دستاورد ها:
    Three FriendsTagger Second ClassVeteranYour first Group5000 Experience Points
    خواهش میکنم، کاربر گرامی خوشحالم که مورد استقبال قرار گرفت .

    من عادت دارم مقاله هایی که درباره پردازنده ها هستش با Bold کنم ، و اخرین پرسش شما " منبع " عرض کنم که منبع تمامی این مقاله ها خودم هستم نتیجه سال ها پژوهش و برنامه نویسی ( سخت افزاری ) هستش ، سعی کردم برنامه نویسی ها و ریز کارهای مربوط به زبان اسمبلی قرار ندم .

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

  8. #5
    مدیر انجمن سخت افزار و مشاوره
    تاریخ عضویت
    Aug 2014
    محل سکونت
    نقطهء کور
    نوشته ها
    820
    امتیاز
    147,077
    سطح
    100
    تشکر کردن
    2,436
    2,345 بار در 678 پست از وی تشکر شده
    دستاورد ها:
    Three FriendsTagger First ClassOverdrive50000 Experience PointsVeteran
    جایزه ها:
    Downloads
    نقل قول نوشته اصلی توسط SPARC نمایش پست ها
    خواهش میکنم، کاربر گرامی خوشحالم که مورد استقبال قرار گرفت .

    من عادت دارم مقاله هایی که درباره پردازنده ها هستش با Bold کنم ، و اخرین پرسش شما " منبع " عرض کنم که منبع تمامی این مقاله ها خودم هستم نتیجه سال ها پژوهش و برنامه نویسی ( سخت افزاری ) هستش ، سعی کردم برنامه نویسی ها و ریز کارهای مربوط به زبان اسمبلی قرار ندم .

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

  9. 2 کاربر از پست MR.POORSUNI عزیز به علت مفید بودن تشکر کرده اند:


 

 

اطلاعات موضوع

کاربران درحال مشاهده این موضوع

درحال حاظر کاربراني که در حال مشاهده اين موضوع هستند 1 نفر که هستند(0 تعداد عضو 1 تعداد ميهمان)

برچسب های این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
بازگشت به بالا