دستور AVX-512 چیست و چه کاربردی دارد؟
در مورد دستور AVX-512 چه میدانید؟ در این مقاله قرار است تا به طور کامل درباره دستور AVX-512 صحبت شود و مزایای آن را به صورت کامل بدانید. در واقع با استفاده از دستور AVX-512، میتوانید بر روی رجیستریهای بزرگ کار کنید و همچنین مجوزهای اینتل را دریافت کنید.
پردازندههای ما معمولا با استفاده از ذخیره دادههای کوچک به نام رجیستر، محاسبات را انجام میدهند. در پردازندههای 64 بیتی، از ثباتهای 64 بیتی اغلب استفاده میشود. اکثر پردازندههای مدرن نیز دارای دستورالعملهای برداری هستند و این دستورالعملها بر روی رجیسترهای بزرگتر مانند 128 بیتی، 256 بیتی یا حتی 512 بیتی، عمل میکنند.
پردازندههای جدید اینتل دارای دستور AVX-512 هستند. این دستورالعملها قادر به کار بر روی رجیسترهای بزرگ 512 بیتی هستند. آنها توانایی سرعت بخشیدن به برخی از برنامهها را دارند زیرا میتوانند دادههای بیشتری را برای هر دستورالعمل اجرا کنند.
با این حال، برخی از این دستورالعملها از انرژی زیادی استفاده میکنند و گرمای زیادی تولید میکنند. برای نگه داشتن میزان مصرف برق در محدوده، اینتل فرکانس هستهها را به صورت پویا کاهش میدهد. این کاهش فرکانس در زمانی اتفاق میافتد که پردازنده بیش از حد انرژی مصرف کند یا گرم شود.
با این حال، کاهشهای فرکانسی قطعی نیز وجود دارد که به طور خاص بر اساس کدام دستورالعملها استفاده میکنید و تعدادی از هستهها فعال هستند
در واقع، وقتی از هر دستورالعمل 512 بیتی استفاده میشود، سرعت متوسط کاهش مییابد و اگر هستهای از سنگینترین این دستورالعملها به صورت پایدار استفاده کند، هسته ممکن است بسیار کندتر کار کند.
علاوه بر این، هنگامی که هستههای بیشتری از این دستورالعملهای جدید استفاده میکنند، سرعت آنها معمولا پایینتر است. در بدترین حالت، ممکن است با نیمی از فرکانس تبلیغ شده در حال کار کردن باشید و بنابراین کل برنامه شما کندتر اجرا میشود. بر این اساس، برخی از مهندسان توصیه کردهاند که دستور AVX-512 را به طور پیشفرض در سرورهای خود غیرفعال کنید.
همه چیز درباره دستور AVX-512
دستور AVX-512 در کجا مورد استفاده قرار میگیرد؟
دستور AVX-512 میتواند دستورالعملهایی باشد که در طول رجیسترهای مختلف مانند 128 بیتی، 256 بیتی و 512 بیتی، کار میکنند. هنگام بحث در مورد کلاک کردن AVX-512، منظور ما این است که فقط به دستورالعملهایی که روی رجیسترهای 512 بیتی عمل میکنند، مراجعه کنیم.
بنابراین میتوانید بدون اطمینان، از بسیاری از دستورالعملها و ویژگیهای جدید AVX-512 مانند ثبت ماسک و حالتهای آدرسدهی حافظه جدید بدون نگرانی در مورد کلاک شدن AVX-512 بهرهمند شوید، مادامی که در رجیسترهای کوتاه 128 بیتی یا 256 بیتی کار کنید. هنگام کار بر روی رجیسترهای 128 بیتی هرگز نباید هر زمان فیلتر را دریافت کنید.
انسداد قفل کردن، هر زمان که اتفاق بیفتد، برای هر هسته پیش خواهد آمد و برای مدت کوتاهی پس از استفاده از دستورالعملهای خاص اجرا میشود.
دستورالعملهای مختلف سنگین و سبک وجود دارد. دستورالعملهای سنگین دستورالعملهایی هستند که شامل عملیات نقطه شناور یا ضرب عدد صحیح میشوند.
به نظر میرسد دستورالعملهای پیشرو صفر بیت AVX-512 نیز سنگین در نظر گرفته شدهاند.
دستورالعملهای سبک شامل عملکردهای عدد صحیح غیر از ضرب، عملیات منطقی، تغییر داده مانند vpermw و vpermd و… است. دستورالعملهای سنگین در یادگیری عمیق، تجزیه و تحلیل عددی، محاسبات با کارایی بالا و برخی از رمزنگاری به عنوان مثال، هش کردن مبتنی بر ضرب، به طور معمول مورد استفاده قرار میگیرد.
دستورالعملهای سبک معمولا در پردازش متن، فشردهسازی سریع، پیادهسازی برداری شده از کتابخانه مانند memcpy در C یا System.arrayCopy در جاوا و… مورد استفاده قرار میگیرد.
همه چیز درباره دستور AVX-512
مجوزها در اینتل – همه چیز درباره دستور AVX-512
هستههای اینتل با دستور AVX-512، میتوانند در یکی از سه حالت کار کنند، که شامل مجوز 0 یا L0 سریعترین است و با فرکانسهای توربوی نوشته شده در Box مرتبط است، لایسنس 1 یا L1 کندتر و لایسنس 2 یا L2، دارای کمترین سرعت است.
برای ورود به لایسنس 2، شما نیاز به استفاده مداوم از دستورالعملهای سنگین 512 بیتی دارید، در حالی که منظور پایدار، تقریبا یک چرخه از این دستورات است.
به همین ترتیب، اگر از دستورالعملهای سنگین 256 بیتی با استفاده از دستور AVX-512، به صورت مداوم استفاده میکنید، به L1 منتقل میشوید. پردازنده در مواجهه با دستورالعملهای سنگین بلافاصله به مجوز بالاتر نمیرود، در واقع ابتدا این دستورالعملها را با کاهش عملکرد اجرا میکند و فقط در صورت وجود تعداد زیادی از آنها پردازنده فرکانس خود را تغییر میدهد. در غیر این صورت، هر دستورالعمل 512 بیتی دیگر هسته را به L1 منتقل میکند، در غیر این صورت، پردازنده به محض مواجه شدن با دستورالعمل متوقف میشود و فرکانس آن را تغییر میدهد.
در پردازنده کلاس سرور، رفع انسداد به صورت هستهای براساس مجوز تعیین میشود و تعداد کل هستههای فعال، در همان سوکت پردازنده، صرف نظر از مجوز هستههای دیگر اجرا میشوند.
شما، برای تعیین فرکانس هسته تحت کلاک کردن، فقط باید مجوز آن را بدانید و تعداد هستههایی که کد در آن اجرا میشود را بشمارید.
بنابراین با استفاده از دستورالعملهای سنگین و پایدار AVX-512 روی یک هسته، نمیتوانید هستههای دیگر موجود در همان سوکت را غیر از هسته منطقی در هنگام استفاده از hyper threading، مسدود کنید.
اگر میتوانید کار عددی سنگین خود را روی چند هسته جدا کنید، پس کلاک شدن محدود به این هستهها است.
جدیدترین سی پی یوهای اینتل
سوالات متداول
- دستور AVX-512 چیست؟
پردازندههای جدید اینتل دارای دستور AVX-512 هستند که باعث میشود تا برنامههایی که در حال اجرا هستند، با سرعت بیشتری اجرا شوند و هم اینکه با استفاده از دستور AVX-512، دادههای بیشتری را تولید کنند.
- هستههای اینتل دارای چند مجوز یا لایسنس هستند؟
هستههای اینتل، دارای سه مجوز به نام مجوز 0 یا L0، مجوز 1 یا L1 و مجوز 2 یا L2 میباشد که بسته به نوع کار پردازنده، میتواند شما را بین این مجوزها و یا لایسنسها، منتقل کند.
- آیا باید از دستور AVX-512 استفاده کرد؟ مزایای دستور AVX-512 چیست؟
همانطور که ذکر شد، با استفاده از دستور AVX-512، شما میتوانید نرمافزارهای سیستمی خود را، بسیار روانتر اجرا کنید و از این جهت، دادههای بیشتری را تولید کنید.