یکپارچه سازی AVX-512 برای معماری های ترکیبی



منبع تصویر: اینتل



منبع تصویر: اینتل

در فاز اول AVX10 (AVX10.1) اینتل، این برای فعال‌سازی اولیه نرم‌افزار معرفی می‌شود و از زیرمجموعه مجموعه‌های دستورالعمل AVX-512 اینتل پشتیب، می‌کند، با هسته‌های Granite Rapids (نسل ششم Xeon) عملکرد (P) اولین هسته‌هایی هستند که با AVX10 سازگار هستند. شایان ذکر است که AVX10.1 مسیریابی 256 بیتی تعبیه شده را فعال نمی کند. به این ترتیب، AVX10.1 به ،وان مقدمه ای برای AVX10 عمل می کند تا سازگاری و اجرای طرح شمارش نسخه جدید را فعال کند.

اینتل جزئیات مربوط به جدید خود را منتشر کرده است Advanced Performance Extensions یا به اختصار APX. ایده پشت APX این است که امکان دسترسی به رجیسترهای بیشتر و بهبود عملکرد کلی همه منظوره را فراهم کند. آنها برای ارائه کارایی بهتر در هنگام استفاده از مجموعه دستورات مبتنی بر x86 طراحی شده اند که امکان دسترسی به رجیسترهای بیشتری را فراهم می کند. ویژگی‌های جدیدی مانند دوبرابر ، رجیسترهای همه‌منظوره از 16 به 32 به کامپای،ها امکان می‌دهد مقادیر بیشتری را در رجیسترها نگه دارند، به طوری که اینتل ادعا می‌کند زم، که کد برای APX کامپایل می‌شود در مقایسه با کد x86-64 با استفاده از Intel 64، 10 درصد بارگذاری کمتر و 20 درصد ذخیره کمتری دارد. این حالت سازگاری 64 بیتی اینتل برای مجموعه دستورات x86 است.

مهم‌ترین و اساسی‌ترین تغییری که توسط AVX10 در مقایسه با مجموعه دستورالعمل‌های قبلی AVX-512 ارائه شد، ،یب مجموعه‌های دستورالعمل AVX-512 غیرفعال شده قبلی در نمونه‌های بعدی طراحی‌های هسته ناهمگن است که نمونه‌ای از پردازنده‌هایی مانند Core i9-12900K و Core i9-1390001 فعلی است. این امکان پشتیب، از AVX-512 را در این پردازنده ها فراهم می کند. در حال حاضر، AVX-512 به طور انحصاری بر روی هسته های عملکرد Intel Xeon (P) پشتیب، می شود.

یکی دیگر از ویژگی‌های ضروری APX اینتل، پشتیب، آن از فرمت‌های دستورالعمل‌های سه عاملی است که زیرمجموعه‌ای از مجموعه دستورات x86 است که داده‌های مورد استفاده را مشخص می‌کند. APX دستورالعمل های جدیدی را معرفی می کند که برای بارهای پیش بینی شده بهینه شده اند، از جمله یک دستورالعمل جدید پرش مطلق 64 بیتی. در مقایسه با نمونه‌های قدیمی‌تری که از EVEX، یک ،د 4 بایتی برای VEX استفاده می‌،د، APX عملوندهای ثبت واحد را به سه تبدیل می‌کند و عملاً نیاز به دستورالعمل‌های حرکت ثبت اضافی را کاهش می‌دهد. در نتیجه، کد کامپایل‌شده APX به افزایش 10 درصدی کارآمدی دست می‌یابد که به دستورالعمل‌های 10 درصدی کمتر از ISA‌های قبلی نیاز دارد.

Intel AVX10: انتقال AVX-512 به وکتورهای 256 بیتی و 512 بیتی

یکی از مهم‌ترین به‌روزرس،‌های مجموعه دستورالعمل‌های متمرکز بر مصرف‌کننده اینتل از زمان معرفی AVX-512، افزونه 10 بردار پیشرفته اینتل (AVX10) است. در ظاهر، به نظر می‌رسد که پشتیب، از AVX-512 در تمام هسته‌هایی که در طراحی‌های ناهمگن پردازنده آن‌ها وجود دارند، ارائه شود.

در حالی که AVX-512 به‌،وان یک مجموعه دستورالعمل به جایی نمی‌رسد، شایان ذکر است که AVX10 سازگار با عقب است، که یکی از جنبه‌های ضروری پشتیب، از مجموعه‌های دستورالعمل با عرض‌های برداری مختلف مانند 128، 256 و 512 بیت در صورت امکان است. توسعه‌دهندگان می‌توانند کد و کتابخانه‌ها را برای انتقال و هم‌گرایی گسترده‌تر به مجموعه دستورالعمل‌های یکپارچه AVX10 در آینده کامپایل کنند.

ایده دو برابر ، تعداد GPR از 16 با x86-64 به 32 GPR موجود با Intel APX این است که می توان داده های بیشتری را در نزدیکی نگه داشت و از خواندن و نوشتن بیشتر در سطوح مختلف حافظه پنهان و حافظه اجتناب کرد. داشتن GPR بیشتر همچنین به این م،ی است که از نظر تئوری باید به دسترسی کمتری به مناطق کندتر مانند DRAM نیاز داشته باشد که بیشتر طول می کشد و انرژی بیشتری مصرف می کند.

گوشت و سبزیجات مجموعه دستورالعمل جدید AVX10 اینتل زم، وارد عمل خواهد شد که AVX10.2 وارد مرحله اجرا شود و رسماً پشتیب، بردار دستورالعمل 256 بیتی را در همه هسته‌ها، اعم از هسته‌های کارایی و/یا بازده ارائه می‌کند. این همچنین شامل ت،یم بندی اعداد صحیح 128 بیتی، 256 بیتی و 512 بیتی در هر دو هسته عملکرد و کارایی است و به این ترتیب، از ،دهای برداری کامل بر اساس مشخصات هر هسته پشتیب، می کند.


منبع: https://www.anandtech.com/s،w/18975/intel-unveils-avx10-and-apx-isas-unifying-avx512-for-hybrid-architectures-

اینتل دو مجموعه دستورالعمل جدید x86-64 طراحی شده را معرفی کرده است برای تقویت و ارائه عملکرد بیشتر در بارهای کاری مبتنی بر AVX با معماری ،یبی هسته های عملکرد (P) و کارایی (E) آنها. اولین مورد از اعلامیه های اینتل، آ،ین افزونه های عملکرد پیشرفته اینتل یا همان طور که گفته می شود اینتل APX است. این برنامه به گونه ای طراحی شده است که بهبودهای مبتنی بر مجموعه دستورالعمل ها را برای بارگیری، ذخیره و مقایسه دستورالعمل ها بدون تأثیر بر مصرف انرژی یا سطح کلی قالب سیلی، هسته های CPU ایجاد کند.

اینتل همچنین یک مقاله فنی در مورد جزئیات AVX10 جدید خود منتشر کرده است، هسته های عملکرد (P) و کارایی (E) اینتل را قادر می سازد تا از مجموعه دستورالعمل های همگرا AVX10/256 بیتی در آینده پشتیب، کنند. این بدان م،است که نسل آینده تراشه‌های هیب، دسکتاپ، سرور و ایستگاه کاری اینتل قادر خواهند بود چندین وکتور AVX، از جمله اندازه‌های برداری 128، 256 و 512 بیتی را در سراسر هسته‌ها به طور کلی پشتیب، کنند.

برنامه های افزودنی عملکرد پیشرفته اینتل (APX): فراتر از AVX و AMX

در حالی که پشتیب، اولیه از مجموعه دستورالعمل AVX10 بیشتر یک مرحله انتقالی در AVX10.1 است، زم، که AVX10.2 در نهایت عرضه می شود، جایی است که AVX10 شروع به نشان دادن علت و معلول در عملکرد و کارایی می کند، حداقل با مجموعه دستورالعمل های سازگار مرتبط با AVX10. AVX10، به طور پیش‌فرض، به توسعه‌دهندگ، که کدهای قبلی خود را دوباره کامپایل می‌کنند، اجازه می‌دهد تا با AVX10 کار کنند، زیرا پردازنده‌های جدید با AVX10 نمی‌توانند مانند گذشته باینری‌های AVX-512 را اجرا کنند. اینتل بالا،ه به آینده نگاه می کند.

علیرغم کنار گذاشتن مؤثر MPX (برنامه‌های افزودنی حفاظت از حافظه)، APX اینتل می‌تواند به طور مؤثر از منطقه موجود برای MPX برای آنچه XSAVE نامیده می‌شود استفاده کند. در مورد XSAVE، رجیسترهای عمومی APX (GPR) اینتل با XSAVE فعال هستند، به این م،ی که می‌توانند به‌طور خودکار توسط توالی‌های XSAVE و XRSTOR در طول سوئیچ‌های زمینه ذخیره و بازیابی شوند. اینتل همچنین به‌طور پیش‌فرض اعلام می‌کند که اندازه یا طرح‌بندی آن‌ها تغییر نمی‌کند، به این م،ی که می‌توانند همان فضای باقی مانده برای رجیسترهای MPX اینتل را اشغال کنند.

اینتل متعهد شده است که در آینده از حدا،ر اندازه برداری حداقل 256 بیتی در تمام پردازنده های اینتل پشتیب، کند. با این حال، باید دید که کدام SKU (در صورت وجود) و معماری زیربنایی از اندازه‌های برداری کامل 512 بیتی در آینده پشتیب، می‌کنند، زیرا این چیزی است که اینتل به طور رسمی در هیچ نقطه‌ای تایید نکرده است.

Xeons نسل ششم اینتل، با نام رمز Granite Rapids، AVX10.1 را فعال می‌کند و تراشه‌های آینده پس از آن، پشتیب، کامل از AVX10.2 را به همراه خواهند داشت و AVX-512 نیز برای سازگاری مجموعه‌های دستورالعمل‌های قدیمی و برنامه‌های کامپایل شده با آنها پشتیب، می‌شود. شایان ذکر است که با وجود اینتل AVX10/512 شامل تمام دستورالعمل‌های AVX-512 اینتل، برنامه‌های کامپایل‌شده در اینتل AVX-512 با طول‌های برداری محدود به 256 بیت تضمینی برای کار با پردازنده AVX10/256 به دلیل تفاوت در عرض رجیستر ماسک پشتیب، نمی‌شوند.

اینتل در مقاله فنی AVX10 با اشاره به عملکرد، موارد زیر را بیان می کند:

  • برنامه‌های کامپایل‌شده اینتل AVX2، که دوباره به اینتل AVX10 کامپایل شده‌اند، باید بدون نیاز به تنظیم نرم افزار اضافی
  • برنامه های Intel AVX2 حساس به فشار رجیستر برداری با توجه به 16 بیشترین عملکرد را خواهند داشت ثبت های برداری اضافی و دستورالعمل های جدید.
  • برنامه‌های بردار با رشته‌های بالا احتمالاً هنگام اجرا به توان عملیاتی بالاتری دست می‌یابند پردازنده های Intel Xeon مبتنی بر هسته الکترونیکی یا محصولات Intel® با معماری ،یبی عملکردی.

بررسی مفهوم اصلی AVX10 نشان می دهد که تراشه های دسکتاپ مبتنی بر مصرف کننده اکنون از پشتیب، کامل AVX-512 برخوردار خواهند بود. اگرچه هسته‌های عملکرد (P) دارای قابلیت تئوری برای پشتیب، از بردارهای گسترده 512 بیتی در صورت تمایل اینتل هستند (اینتل در حال حاضر پشتیب، را تا 256 بیتی تایید کرده است)، هسته‌های کارایی (E) به بردارهای 256 بیتی محدود شده‌اند. با این وجود، به طور کلی، کل تراشه می‌تواند از مجموعه دستورالعمل‌های کامل AVX-512 در همه هسته‌ها پشتیب، کند، چه هسته‌های با کارایی کامل و چه هسته‌های با راندمان پایین‌تر.

معرفی AVX10 به طور کامل جایگزین سوپرست AVX-512 می شود. هنگامی که AVX10 به طور گسترده از طریق محصولات آینده اینتل در دسترس قرار گرفت، از نظر فنی دیگر نیازی به استفاده از AVX-512 وجود نخواهد داشت. یکی از چالش‌هایی که این موضوع ایجاد می‌کند این است که توسعه‌دهندگان نرم‌افزاری که به‌طور خاص کتابخانه‌هایی را به‌طور خاص برای بردارهای گسترده 512 بیتی کامپایل کرده‌اند، باید کد را همانطور که قبلاً ذکر شد دوباره کامپایل کنند تا به درستی با بردارهای گسترده 256 بیتی که AVX10 به طور کلی در سراسر هسته‌ها پشتیب، می‌کند، کار کنند.

اینتل همچنین ادعا می‌کند که تراشه‌های آن‌ها، که قبلاً از بردارهای 256 بیتی به ،وان مثال استفاده می‌کنند، در صورت کامپایل شدن بر روی AVX10 در طول برداری ISO 256 بیتی، سطوح عملکرد مشابهی را حفظ خواهند کرد. با این حال، پتانسیل واقعی AVX10 هنگام استفاده از طول برداری قابل توجه 512 بیتی آشکار می شود و نویدبخش بهترین عملکرد مجموعه دستورالعمل AVX10 قابل دستیابی است. این با معرفی کتابخانه‌های جدید AVX10 و پشتیب، از ابزار پیشرفته‌تر همسو می‌شود و توسعه‌دهندگان برنامه را قادر می‌سازد تا کدهای هوش مصنوعی و علمی جدیدتر را برای مزایای بهینه جمع‌آوری کنند. علاوه بر این، این بدان م،است که کتابخانه‌های موجود می‌توانند با سازگاری AVX10/256 مجدداً کامپایل شوند و در صورت امکان، برای بهره‌برداری از واحدهای برداری بزرگ‌تر برای عملکرد بهتر، بهینه‌سازی شوند.