افزونه‌بردار پیشرفته

افزونه بردار پیشرفته (AVX، که همچنین به عنوان افزونه جدید Sandy Bridge خوانده می‌شود)، افزونه معماری مجموعه دستورالعمل‎های x86 برای ریزپردازنده‌های اینتل و AMD است که توسط اینتل در مارس ۲۰۰۸ پیشنهاد شده‌است و برای اولین بار توسط اینتل در پردازنده سندی بریج در Q1 2011 پشتیبانی شد؛ و بعد AMD با پردازنده بلدوزر در 2011 Q3 عرضه کرد. AVX ویژگی‌های جدید، دستورالعمل‌های جدید و طرح بندی جدید را فراهم می‌کند.

AVX2 اکثر دستورهای عدد صحیح (int) را به ۲۵۶ بیت گسترش می‌دهد و عملیات FMA را معرفی می‌کند. AVX-512، AVX را به پشتیبانی ۵۱۲ بیتی با استفاده از یک کدگذاری جدید پیشوندی EVEX prefix که توسط اینتل در ماه ژوئیه ۲۰۱۳ ارائه شده، گسترش می‌دهد و اولین بار توسط اینتل در پردازنده Knights Landing در سال ۲۰۱۶ عرضه شد.

 افزونه بردار پیشرفته 
AVX از ۱۶ ثبات YMM استفاده می‌کند. هر ثبات YMM شامل موارد زیر است:
 هشت ثبات ۳۲ بیتی برای اعداد ممیز شناور تک دقت یا چهار ثبات ۶۴ بیتی برای اعداد ممیز شناور دو دقت.

طول ثبات‌های SIMD از ۱۲۸ بیت به ۲۵۶ بیت افزایش یافت و از XMM 0-XMM7 به YMM0-YMM7 (در حالت x86-64، YMM0-YMM15) تغییر نام پیدا کردند. در پردازنده‌هایی با پشتیبانی AVX، دستورالعمل‌هایی با پشتوانه SSE (که قبلاً در ثبات‌های ۱۲۸ بیتی XMM استفاده می‌شده‌است) را می‌توان با استفاده از کدگذاری VEX prefix برای کار بر روی ۱۲۸ بیت پایین از ثبات YMM گسترش داد.
 نقشه ثبات‌های AVX-512 به عنوان جایگزین ثبات‌های AVX (YMM0-YMM15) و SSE (XMM0-XMM15) 511 256 255 128 127 0 ZMM0 YMM0 XMM0 ZMM1 YMM1 XMM1 ZMM2 YMM2 XMM2 ZMM3 YMM3 XMM3 ZMM4 YMM4 XMM4 ZMM5 YMM5 XMM5 ZMM6 YMM6 XMM6 ZMM7 YMM7 XMM7 ZMM8 YMM8 XMM8 ZMM9 YMM9 XMM9 ZMM10 YMM10 XMM10 ZMM11 YMM11 XMM11 ZMM12 YMM12 XMM12 ZMM13 YMM13 XMM13 ZMM14 YMM14 XMM14 ZMM15 YMM15 XMM15 ZMM16 YMM16 XMM16 ZMM17 YMM17 XMM17 ZMM18 YMM18 XMM18 ZMM19 YMM19 XMM19 ZMM20 YMM20 XMM20 ZMM21 YMM21 XMM21 ZMM22 YMM22 XMM22 ZMM23 YMM23 XMM23 ZMM24 YMM24 XMM24 ZMM25 YMM25 XMM25 ZMM26 YMM26 XMM26 ZMM27 YMM27 XMM27 ZMM28 YMM28 XMM28 ZMM29 YMM29 XMM29 ZMM30 YMM30 XMM30 ZMM31 YMM31 XMM31
AVX یک فرمت دستورالعمل SIMD با سه عملوند ارائه می‌دهد، بطوریکه ثبات مقصد از ثبات دو عملوند مرجع متمایز است. به عنوان مثال، یک دستور SSE با استفاده از فرم دو عاملی معمولی a = a + b را اکنون می‌توان با استفاده از یک فرم غیر مخرب سه عملوندی با حفظ هر دو عملوند مرجع به فرمc = a + b، جایگزین کرد. فرمت سه عملوندی AVX محدود به دستورالعمل‌های SIMD (YMM) است و شامل دستورالعمل‌هایی با استفاده از ثبات‌های همه منظوره نمی‌شود (مثلاً EAX). چنین پشتیبانی اولین بار در AVX2 ظاهر خواهد شد.

تراز مورد نیاز از عملوند حافظه SIMD آرام است.

شیوه جدید کدگذاری VEX (VEX coding scheme) مجموعه ای جدید از کدهای پیشوندی را به وجود می‌آورد که فضای آپ‌کد را گسترش می‌دهد و این امکان را فراهم می‌سازد که دستورالعمل‌ها بیش از دو عملوند و ثبات‌های بردار SIMD طولانی‌تر از ۱۲۸ بیت باشد. پیشوند VEX همچنین می‌تواند بر روی دستورالعمل‌های SSE مورد استفاده قرار گیرد و آن‌ها را به شکل سه عملوندی درآورد و آن‌ها را با استفاده از دستورهای AVX بدون نیاز به VZEROUPPER و VZEROALL به صورت تعاملی بیشتری بسازد.

دستورالعمل‌های AVX هر دو ثبات ۱۲۸ بیتی و ۲۵۶ بیتی SIMD را پشتیبانی می‌کنند. نسخه‌های ۱۲۸ بیتی می‌توانند برای بهبود کدهای قدیمی بدون نیاز به گسترش فشرده سازی، و با دوری از دشواری‌های رفتن از SSE به AVX، سریعتر از برخی از پیاده‌سازی‌های اولیه AMD برای AVX باشند. این حالت گاهی اوقات با نام AVX-128 شناخته می‌شود.

 دستورالعمل‌های جدید 
این دستورالعمل‌های AVX علاوه بر آن‌هایی هستند که پسوندهای ۲۵۶ بیتی از دستورالعمل SSE 128 بیتی قدیمی را دارند؛ اکثر آن‌ها در هر دو حالت ۱۲۸ بیتی و ۲۵۶ بیتی قابل استفاده هستند.
 دستورالعمل شرح VBROADCASTSS، VBROADCASTSD، VBROADCASTF128 کپی یک خانه ۳۲ بیتی، ۶۴ بیتی یا ۱۲۸ بیتی حافظه به تمام عناصر ثبات بردار XMM یا YMM. VINSERTF128 جایگزینی نیمه پایینی یا نیمه بالایی از ۲۵۶ بیت ثبات YMM با مقدار یک عملوند مرجع ۱۲۸ بیتی. نیمی دیگر از مقصد بدون تغییر است. VEXTRACTF128 جدا کردن نیمه پایین یا نیمه بالای از ۲۵۶ بیت ثبات YMM و کپی مقدار آن در یک عملوند مقصد ۱۲۸ بیتی. VMASKMOVPS، VMASKMOVPD هر عدد از عناصر عملگر حافظه برداری SIMD را خوانده و به یک ثبات مقصد می‌دهد، عناصر باقی‌مانده بردار را ناخوانده قرار داده و عناصر مربوط را در ثبات مقصد صفر می‌گذارد. به‌طور متناوب، هر عدد از عناصر را از یک عملگر ثبات برداری SIMD بر روی یک عملگر حافظه بردار می‌نویسد و عناصر باقی مانده از عملگر حافظه را بدون تغییر رها می‌کند. در معماری پردازنده AMD Jaguar، این دستورالعمل با یک عملوند حافظه زمانیکه ماسک صفر است ۳۰۰ کلاک طول می‌کشد، در آن حالت دستورالعمل هیچ کاری انجام نمی‌دهد. این یک نقص طراحی به نظر می‌رسد. VPERMILPS، VPERMILPD Permue In-Lane. الحاق عناصر بردار ۳۲ بیتی یا ۶۴ بیتی با یک عملگر ورودی را کنار هم. این‌ها دستورالعمل‌های ۲۵۶ بیتی در خط هستند، به این معنی که آن‌ها در تمام ۲۵۶ بیت یعنی دو ۱۲۸ بیتی جداگانه کار می‌کنند، بنابراین نمی‌توانند در خطوط ۱۲۸ بیتی تغییر مسیر داده شوند. VPERM2F128 الحاق بردار ۱۲۸ بیتی از دو عملوند مرجع ۲۵۶ بیتی به یک عملوند مقصد ۲۵۶ بیتی، با در نظر گرفتن عدد ثابت به عنوان انتخابگر. VZEROALL تمام YMM را به صفر تنظیم می‌کند و آن‌ها را به عنوان استفاده نشده در نظر می‌گیرد. هنگام تغییر از ۱۲۸ بیتی و استفاده ۲۵۶ بیتی مورد استفاده قرار می‌گیرد. VZEROUPPER نیمه بالای تمام ثبات YMM را صفر تنظیم می‌کند. هنگام تغییر از ۱۲۸ بیتی و استفاده ۲۵۶ بیتی مورد استفاده قرار می‌گیرد.

 CPU با AVX 
 اینتل
 پردازنده Sandy Bridge , Q1 2011
 پردازنده Sandy Bridge E، Q4 2011
 پردازنده Ivy Bridge , Q1 2012
 پردازنده Ivy Bridge E، Q3 2013
 پردازنده Haswell , Q2 2013
 پردازنده Haswell E، Q3 2014
 پردازنده Broadwell , Q4 2014
 پردازنده Broadwell E، Q2 2016
 پردازنده Skylake , Q3 2015
 پردازنده یاب Kaby , Q3 2016 (ULV mobile) / Q1 2017 (دسکتاپ / تلفن همراه)
 پردازنده Skylake-X، Q2 2017
 پردازنده یخچال قهوه، 2017 Q4
 پردازنده Cannon Lake (microarchitecture)، انتظار می‌رود در سال ۲۰۱۸ رونمایی شود
 پردازشگر Cascade Lake، انتظار می‌رود در سال ۲۰۱۸
 پردازنده یخ دریا، انتظار می‌رود در سال ۲۰۱۸

توجه: همه CPUهای خانواده‌های ذکر شده از AVX پشتیبانی نمی‌کنند. به‌طور کلی CPUها با نام تجاری Core i3 / i5 / i7 از آن‌ها پشتیبانی می‌کنند، در حالی که پردازنده‌های Pentium و Celeron پشتیبانی نمی‌کنند.
 ای‌ام‌دی:
 پردازنده‌های Jaguar-based و جدیدتر
 پردازنده‌های Puma-based و جدیدتر
 پردازنده‌های «تجهیزات سنگین»
 پردازنده‌های مبتنی بر بولدوزر، Q4 2011
 پردازنده‌های Piledriver , Q4 2012
 پردازنده‌های مبتنی بر Steamroller , Q1 2014
 پردازنده‌های مبتنی بر بیل و جدیدتر، ۲۰۱۵
 پردازنده‌های مبتنی بر Zen , Q1 2017
 پردازنده‌های مبتنی بر Zen , Q2 2018

مسائل مربوط به سازگاری بین پردازنده‌های آینده اینتل و AMD در مجموعه دستورالعمل XOP مورد بحث قرار می‌گیرد.

 پشتیبانی کامپایلر و اسمبلر 
جی‌سی‌سی با نسخه ۴٫۶ آغاز می‌شود (هرچند شاخه ۴٫۳ با پشتیبانی خاصی وجود دارد) و مجموعه کامپایلر اینتل با نسخه ۱۱٫۱ پشتیبانی از AVX آغاز کرد. کامپایلر ویژوال استودیو ۲۰۱۰ / ۲۰۱۲ پشتیبانی از AVX را از طریق توابع ذاتی و / قوس: سوئیچ AVX انجام می‌دهد. نسخه ۴٫۵٫۱ کامپایلر Open64 AVX را با پرچم mavx پشتیبانی می‌کند. Absoft از پرچم -mavx پشتیبانی می‌کند. PathScale از پرچم -mavx پشتیبانی می‌کند. کامپایلر رایگان پاسکال از AVX و AVX2 با استفاده از سوئیچ‌های -CfAVX و -CfAVX2 از نسخه ۲٫۷٫۱ پشتیبانی می‌کند. کامپایلر Vector Pascal از AVX از طریق پرچم -cpuAVX32 پشتیبانی می‌کند. توابع اجرایی مونتاژ (GNU Assembler - GAS) این دستورالعمل‌ها را در اینلاین اسمبلی پشتیبانی می‌کنند (از طریق GCC قابل دسترسی هستند)، همان‌طور که در دستورهای ابتدایی Intel و اسمبلر Inline اینتل این کار را انجام می‌دهند (نزدیک به سازگار با GAS، اگرچه بیشتر در اداره ارجاعات محلی درون اینلاین اسمبلی به کار می‌رود). اسمبلرهای دیگر مانند نسخه MASM VS2010، YASM , YASM 0.7.0 یادداشت انتشار http://yasm.tortall.net/releases/Release0.7.0.html  FASM، NASM و JWASM نیز از این امکان برخوردارند.

 پشتیبانی از سیستم عامل 
AVX ثبات-وضعیت جدیدی را از طریق ثبات‌های YMM 256 بیتی اضافه می‌کند، بنابراین برای حفظ و بازگرداندن رجیسترهای AVX از میان سوئیچ‌های متنی، نیاز به پشتیبانی صحیح سیستم عامل وجود دارد. نسخه‌های سیستم عامل زیر از پشتیبانی از AVX برخوردارند:
 دراگون‌فلای بی‌اس‌دی: پشتیبانی در اوایل ۲۰۱۳ اضافه شد.
 فری‌بی‌اس‌دی: پشتیبانی در یک پچ افزوده شده در تاریخ ۲۱ ژانویه ۲۰۱۲ اضافه شد، که در نسخه ۹٫۱ باقی مانده منتشر شد
 لینوکس: پشتیبانی از نسخه کرنل ۲٫۶٫۳۰، در تاریخ ۹ ژوئن ۲۰۰۹ منتشر شد.
 macOS: پشتیبانی در ۱۰٫۶٫۸ (برفی پلنگ) به روز رسانی  منتشر شده در تاریخ ۲۳ ژوئن ۲۰۱۱ اضافه شده‌است.
 OpenBSD: پشتیبانی در تاریخ ۲۱ مارس ۲۰۱۵ اضافه شد.
 Solaris: در Solaris 10 به روز رسانی ۱۰ و سولاریس ۱۱ پشتیبانی می‌شود
 ویندوز: در ویندوز 7 SP1 و ویندوز سرور 2008 R2 SP1، ویندوز ۸، ویندوز ۱۰ پشتیبانی می‌شود
 ویندوز سرور 2008 R2 SP1 با Hyper-V نیاز به یک اصلاحیه برای پشتیبانی از پردازنده‌های AMD AVX (Opteron 6200 و ۴۲۰۰)، KB2568088

 افزونه بردار پیشرفته ۲ 
Extensions Vector Advanced 2 (AVX2)، همچنین به عنوان دستورالعمل‌های جدید Haswell شناخته می‌شود، یک توسعه مجموعه دستورالعمل‌های AVX است که در میکرو آرشیو فناوری Haswell توسط اینتل معرفی شده‌است. AVX2 موارد زیر را اضافه می‌کند:
 گسترش اکثر دستورهای SSE و AVX عددهای بردار به ۲۵۶ بیت
 ثبات‌های همه منظوره سه عملوندی جهت راحتی کار
 پشتیبانی را الگوریتم جمع‌آوری (Gather) که عناصر بردار را از مکان‌های حافظه غیر مجاور بارگذاری می‌کند
 جانشانی DWORD- و QWORD- به صورت دانه‌دانه در تغییرات بردار.

گاهی اوقات فرمت دیگری با استفاده از یک پرچم پردازنده دیگر بخشی از AVX2 محسوب می‌شود؛ این دستورالعمل‌ها در صفحه مخصوص به خود و نه در زیر ذکر شده‌است:
 پشتیبانی از سه عملوند چند ضلعی تجمع (fused multiply-accumulate) (FMA3)

 دستورالعمل‌های جدید 
 دستورالعمل شرح VBROADCASTSS، VBROADCASTSD کپی ثبات‌های ۳۲ بیتی یا ۶۴ بیتی به تمام عناصر یک ثبات بردار XMM یا YMM. این‌ها نسخه ثبات‌ها مشابه دستورهای در AVX1 هستند. اما نسخه ۱۲۸ بیتی وجود ندارد، اما همان اثر را می‌توان با استفاده از VINSERTF128 به دست آورد. VPBROADCASTB، VPBROADCASTW، VPBROADCASTD، VPBROADCASTQ یک عدد صحیح ۸، ۱۶، ۳۲ یا ۶۴ بیتی از ثبات یا عملوند حافظه را به کلیه عناصر یک ثبات XMM یا YMM کپی می‌کند. VBROADCASTI128 یک عملگر حافظه ۱۲۸ بیتی را به تمام عناصر یک ثبات بردار YMM کپی کنید. VINSERTI128 جایگزین نیمه پایین یا نیمه بالای ۲۵۶ بیتی ثبات YMM با مقدار یک عملوند مرجع ۱۲۸ بیتی. نیمی دیگر از مقصد بدون تغییر است. VEXTRACTI128 جدا کردن نیمه پایین یا نیمه بالایی ۲۵۶ بیت از ثبات YMM و انتقال ارزش آن به یک عملوند مقصد ۱۲۸ بیتی. VGATHERDPD، VGATHERQPD، VGATHERDPS، VGATHERQPS پیاده‌سازی الگوریتم جمع‌آوری ممیز شناور یک یا دو دقت با استفاده از ۳۲ یا ۶۴ بیت شاخص و مقیاس. VPGATHERDD، VPGATHERDQ، VPGATHERQD، VPGATHERQQ جمع‌آوری مقادیر عدد صحیح ۳۲ یا ۶۴ بیتی با استفاده از شاخص‌های ۳۲ یا ۶۴ بیتی و مقیاس. VPMASKMOVD، VPMASKMOVQ هر عدد از عناصر از یک عملگر حافظه بردار SIMD را به یک ثبت نام مقصد می‌دهد، عناصر بردار باقی مانده را خوانده و عناصر مربوط را در ثبت نام مقصد به صفر می‌گذارد. به‌طور متناوب، هر عدد از عناصر را از یک عملگر ثبت‌کننده بردار SIMD به یک عملگر حافظه بردار می‌نویسد و عناصر باقی مانده از عملگر حافظه را بدون تغییر باقی می‌گذارد. VPERMPS، VPERMD الحاق هشت عدد عنصر بردار ۳۲ بیتی یک عملوند مرجع ۲۵۶ بیتی را به یک عملوند مقصد ۲۵۶ بیتی، با در نظر گرفتن ثبات یا حافظه به عنوان انتخابگر. VPERMPD، VPERMQ الحاق چهار عدد عنصر بردار ۶۴ بیتی یک عملوند مرجع ۲۵۶ بیتی را به یک عملوند مقصد ۲۵۶ بیتی، با در نظر گرفتن ثبات یا حافظه به عنوان انتخابگر. VPERM2I128 الحاق چهار عنصر بردار ۱۲۸ بیتی از دو عملوند مرجع ۲۵۶ بیتی را به یک عملوند مقصد ۲۵۶ بیتی، با در نظر گرفتن یک عدد ثابت به عنوان انتخابگر. VPBLENDD نسخه فوری دو کلمه‌ای دستورالعمل PBLEND از SSE4. VPSLLVD، VPSLLVQ شیفت به چپ منطقی. به متغیرها اجازه می‌دهد تا در هر المانی با توجه به بسته ورودی شیفت پیدا کنند. VPSRLVD، VPSRLVQ شیفت به راست منطقی. به متغیرها اجازه می‌دهد تا در هر المانی با توجه به بسته ورودی شیفت پیدا کنند. VPSRAVD شیفت به راست منطقی. به متغیرها اجازه می‌دهد تا در هر المانی با توجه به بسته ورودی شیفت پیدا کنند.

 پردازنده‌های AVX2 
 اینتل
 پردازنده Haswell , Q2 2013
 پردازنده Haswell E، Q3 2014
 پردازنده Broadwell , Q4 2014
 پردازنده Broadwell E، Q3 2016
 پردازنده Skylake , Q3 2015
 پردازنده یاب Kaby , Q3 2016 (ULV mobile) / Q1 2017 (دسکتاپ / تلفن همراه)
 پردازنده Skylake-X، Q2 2017
 پردازنده یخچال قهوه، 2017 Q4
 پردازنده کانن دریاچه، انتظار می‌رود در سال ۲۰۱۸ رونمایی شود
 پردازشگر آبشار Cascade Lake، انتظار می‌رود در سال ۲۰۱۹ رونمایی شود
 پردازنده یخ دریا، انتظار می‌رود در سال ۲۰۱۹
 AMD رونمایی شود
 پردازنده بیل مکانیکی و جدیدتر، Q2 2015
 پردازنده ذن، Q1 2017
 پردازنده Zen + , Q2 2018

 AVX-512 
AVX-512 512 بیتی برای ۲۵۶ بیت پیشرفته Extension Vector Extensions دستورالعمل SIMD برای معماری مجموعه دستورالعمل x86 ارائه شده توسط اینتل در ماه ژوئیه ۲۰۱۳ است و برنامه‌ریزی شده در سال ۲۰۱۵ با پردازشگر Knights Landing اینتل پشتیبانی می‌شود.

دستورهای AVX-512 با پیشوند جدید EVEX رمزگذاری می‌شود. این شیوه ۴ عملوند، ۷ ثبات opmask جدید ۶۴ بیتی، حالت حافظه اسکالر با پخش خودکار، کنترل صحیح گرد کردن اعداد و حالت آدرس دهی حافظه جابجایی فشرده فراهم می‌کند. طول ثبات‌ها به ۵۱۲ بیت افزایش می‌یابد و تعداد کل ثبات‌ها در حالت x86-64 به ۳۲ عدد (ثبات‌های ZMM0-ZMM31) افزایش می‌یابد.

AVX-512 شامل چندین افزونه است که به معنای آن نیست که همه آن‌ها توسط تمام پردازنده‌ها پشتیبانی می‌شوند. مجموعه دستورالعمل اضافه شده شامل موارد زیر است:
 بنیاد AVX-512- چندین دستورالعمل جدید اضافه می‌کند و بیشتر دستورات۳۲ بیتی و ۶۴ بیتی SSE-SSE4.1 و AVX/AVX2 را با کدگذاری EVEX برای پشتیبانی از ثبات‌های ۵۱۲ بیتی، ماسک‌های عملیاتی، پخش پارامتر، گرد کردن نهفته اعداد و کنترل استثناءها گسترش می‌دهد.
 دستورالعمل تشخیص اختلال AVX-512 (CD) شناسایی تعارض کارآمد برای اجازه دادن به حلقه‌های بیشتر برای فشرده سازی که توسط Knights Landing پشتیبانی می‌شود.
 دستورالعمل‌های نمایی و متقابل AVX-512 (ER) عملیات نمایی و متقابل، برای کمک به عملیات غیر جبری طراحی شده که توسط Knights Landing پشتیبانی می‌شود.
 دستورالعمل Prefetch AVX-512 (PF) قابلیت پیش واکشی جدید، پشتیبانی شده توسط Knights Landing
 AVX-512 Extensions Length Vector (VL) اکثر عملیات AVX-512 را گسترش می‌دهد و همچنین بر روی ثبات‌های XMM (128 بیتی) و YMM (256 بیت) عمل می‌کند. (از جمله XMM16-XMM31 و YMM16-YMM31 در حالت x86-64)
 دستورالعمل AVX-512 بایت و کلمه (BW) AVX-512 برای پوشش عملیات عددی ۸ بیتی و ۱۶ بیتی گسترش داده شده‌است
 دستورالعمل AVX-512 دوکلمه و چهار کلمه عملیات عددی ۳۲ بیتی و ۶۴ بیتی بهبود یافته
 اضافه کردن Fused Multiply Add AVX-512 Integer (IFMA) جمع عدد صحیح ۵۱۲ بیتی به صورت IFMA اضافه شده‌است. 
 دستورالعمل‌های دستکاری بایت‌های AVX-512 (VBMI) دستورالعمل‌های جایگزینی را اضافه می‌کند که در AVX-512BW وجود ندارد.
 دستورالعمل‌های شبکه عصبی AVX-512 Vector دقت متغیر (4VNNIW) دستورالعمل‌های برداری برای یادگیری عمیق
 AVX-512 انباشت چند ضلعی بسته‌بندی شده تک دقت (4FMAPS) دستورالعمل‌های برداری برای یادگیری عمیق
 VPOPCNTDQ تعداد بیت‌های ۱ شده.
 VPCLMULQDQ در ضرب اعداد چهار کلمه‌ای
 دستورالعمل شبکه شبکه عصبی AVX-512 (VNNI) دستورالعمل‌های برداری برای یادگیری عمیق
 AVX-512 Galois Field New Instructions (GFNI) دستورالعمل‌های برداری برای محاسبه میدان گالویز.
 دستورالعملهای AES-AVR-512 (VAES) دستورالعمل‌های برداری برای برنامه‌نویسی AES.
 دستورالعمل‌های دستکاری بایت AVX-512 2 (VBMI2) بار، ذخیره و الحاق کلمه/بایت به وسیله شیفت.
 الگوریتم‌های بیت AVX-512 (BITALG) دستورالعمل دستکاری بیت بایت / کلمه بسط داده شده VPOPCNTDQ.

تنها فرمت هسته AVX-512F (AVX-512 Foundation) مورد نیاز تمام پیاده‌سازی‌ها است، هرچند تمام پردازنده‌های فعلی نیز از CD پشتیبانی می‌کنند (شناسایی تعارض)؛ محاسبه پردازنده‌های کمکی و مجتمع علاوه بر این از ER, PF، 4VNNIW، 4FMAPS و VPOPCNTDQ نیز پشتیبانی خواهند کرد، در حالی که پردازنده‌های دسکتاپ از VL, DQ, BW, IFMA, VBMI, VPOPCNTDQ, VPCLMULQDQ و غیره پشتیبانی می‌کنند.

دستورالعمل‌های SSE / AVX به روز شده در AVX-512F از همان روش‌هایی مانند نسخه‌های AVX استفاده می‌کنند؛ آن‌ها می‌توانند در ثبات ۵۱۲ بیتی ZMM عمل کنند و همچنین از ۱۲۸/۲۵۶ بیت ثبات XMM / YMM (با AVX-512VL) و بایت، کلمه، دو کلمه، چهار کلمه و اعداد صحیح (با AVX-512BW / DQ و VBMI) پشتیبانی خواهند کرد. 

 پردازنده‌های AVX-512 
 AVX-512 Subset F CD ER PF 4FMAPS 4VNNIW VL DQ BW IFMA VBMI VBMI2 VPOPCNTDQ BITALG VNNI VPCLMULQDQ GFNI VAES Xeon Phi x200 (Knights Landing) processors (2016)colspan="2" rowspan="5" colspan="2" colspan="14"  Knights Mill  processors (2017)colspan="4" colspan="6" colspan="1" colspan="5" Skylake-SP, Skylake-X processors (2017)colspan="4" rowspan="3" colspan="3"  colspan="9" Cannon Lake processors (expected in 2018)colspan="5" colspan="7" Ice Lake processorscolspan="12" 

 کامپایلرهای پشتیبانی کننده از AVX-512 
 GCC 4.9 و جدیدتر
 کلاه ۳٫۹ و جدیدتر
 ICC 15.0.1 و جدیدتر
 مایکروسافت ویژوال استودیو ۲۰۱۷ کامپایلر سی ++
 جاوا 9

 کاربردها 
 مناسب برای محاسبات ممیز شناور - در برنامه‌های چند رسانه ای، علمی و مالی (AVX2 پشتیبانی از عملیات عدد صحیح را اضافه می‌کند).
 افزایش موازی سازی و توانایی در محاسبات ممیز شناور با SIMD.
 به دلیل دستورالعمل‌های غیر مخرب بار ثبات‌ها را کاهش می‌دهد.
 بهبود عملکرد نرم‌افزار لینوکس RAID (مورد نیاز AVX2، AVX کافی نیست)

 نرم‌افزار 
 Blender از AVX2 در چرخه موتور رندر استفاده می‌کند.
 OpenSSL از نسخه ۱٫۰٫۲ از توابع رمزنگاری بهینه شده AVX و AVX2 استفاده می‌کند. این پشتیبانی نیز در کلون‌ها و چنگال‌های مختلف مانند LibreSSL وجود دارد
 Prime95 / MPrime، نرم‌افزاری که برای GIMPS استفاده می‌شود، از زمان انتشار نسخه 27.x از دستورالعمل AVX شروع شده‌است.
 dav1d AV1 decoder می‌تواند از AVX2 بر روی CPUهای پشتیبانی شده‌استفاده کند.
 Dnetc، نرم‌افزاری که توسط distributed.net استفاده می‌شود، دارای یک هسته AVX2 برای پروژه RC5 خود است و به زودی یکی از آن را برای پروژه OGR-28 خود منتشر خواهد کرد.
 انیشتین @ Home با استفاده از AVX در برخی از برنامه‌های توزیع شده خود که برای امواج گرانشی جستجو می کنند.
 RPCS3، شبیه‌ساز PlayStation 3 منبع باز، از دستورالعمل‌های AVX2 و AVX-512 برای تقلید از بازی‌های PS3 استفاده می‌کند.
 رابط دستگاه شبکه، NDI® یک پروتکل ویدیویی / صوتی IP است که توسط NewTek برای پخش مستقیم پخش شده‌است، از AVX و AVX2 برای افزایش کارایی استفاده می‌کند.
 Tensorflow از نسخه ۱٫۶ نیاز به پردازنده پشتیبانی حداقل AVX.
 Xenia نیاز به دستورالعمل AVX برای اجرا دارد.
 رمزگذارهای ویدئویی x264 و x265 می‌توانند AVX2 یا AVX-512 را برای سرعت بخشیدن به رمزگذاری استفاده کنند.
 انواع مختلف پردازنده‌های مبتنی بر cryptocurrency مبتنی بر (مانند cpuminer pooler برای Bitcoin و Litecoin) از AVX و AVX2 برای رویه‌های مربوط به گریوتوگرافی مختلف، از جمله SHA-256 و Script استفاده می‌کنند.
 libsodium از AVX در اجرای ضرب عددی برای الگوریتم‌هایCurve25519 و Ed25519 ا، از AVX2 برای BLAKE2b , Salsa20، ChaCha20 و AVX2 و AVX-512 در اجرای Argon2 استفاده می‌کند.
 پیاده‌سازی مرجع open source libvpx VP8 / VP9 encoder / decoder، از AVX2 یا AVX512 در صورت موجود بودن استفاده می‌کند.
 FFTW می‌تواند از AVX, AVX2 و AVX-512 در صورت موجود بودن استفاده کند.
 LLVMpipe یک نرم‌افزار رندر OpenGL در Mesa با استفاده از زیرساخت‌های Gallium و LLVM، از AVX2 در صورت موجود بودن استفاده می‌کند.
 glibc با استفاده از AVX2 (با FMA) برای اجرای بهینه (یعنی expf, sinf, powf, atanf, atan2f) از توابع ریاضی مختلف در libc استفاده می‌کند.
 هسته لینوکس با استفاده از AVX یا AVX2، همراه با AES-NI به عنوان بهینه‌سازی اجرای الگوریتم رمزنگاری AES-GCM می‌تواند استفاده کند.
 کرنل لینوکس با استفاده از AVX یا AVX2 که در دسترس است، در اجرای بهینه شده از چندین رمزگذاری دیگر بهره می‌برد: Camellia, CAST5، CAST6، Serpent, Twofish, MORUS-1280 و دیگر Primitives: Poly1305، SHA1، SHA256، SHA512، ChaCha20.
 POCL، یک زبان رایانه قابل حمل که اجرای OpenCL را فراهم می‌کند، از AVX, AVX2 و AVX512 در صورت امکان استفاده می‌کند.
 . هسته اصلی و . چارچوب NET می‌تواند AVX را از طریق سیستم استفاده کند. عددی کتابخانه وکتورها.

 جستارهای وابسته 
 افزونه‌های حفاظت از حافظه Memory Protection Extensions
 Extension Vector Scalable برای ARM - یک مجموعه دستورالعمل جدید بردار (تکمیل VFP و NEON) شبیه به AVX-512 با برخی از ویژگی‌های اضافی است.

 منابع 

رده:دستورالعمل‌های اکس۸۶
رده:رایانش یک دستور چند داده
رده:صفحات با ترجمه بازبینی‌نشده
رده:فناوری‌های دستگاه‌های میکرو پیشرفته