تیم توسعه دهنده کُدک FFmpeg اخیراً بر روی مزیت بکارگیری AVX-512 دست گذاشته است که میتواند افزایش کارایی چشمگیری در پردازش ویدئو ایجاد کند. بهگفته یکی از توسعهدهندگان این تیم، استفاده از این دستورات میتواند سرعت رمزگشایی ویدئو را بین سه تا ۹۴ برابر افزایش دهد.
افزونههای برداری پیشرفته (AVX) نوعی از افزونههای «یک دستورالعمل، چند داده» (SIMD) برای معماری مجموعه دستورالعمل x86 هستند که توسط اینتل و AMD در پردازندههای مدرن بهکار گرفته شدهاند. این دستورالعملها میتوانند پردازشهای موازی را بهطرز چشمگیری بهبود بخشند، بهویژه وقتی از رجیسترهای ۵۱۲ بیتی و دیگر قابلیتهای پیشرفته موجود در مجموعه دستورات AVX-512 استفاده شود.
افزایش 94 درصدی سرعت با استفاده از AVX-512 در پخش ویدئو
هرچند جزئیات دقیقی از پردازنده یا سیستمی که این نتایج با آن کسب شده در دست نیست، اما فناوری AVX-512 برای نخستینبار در پردازندههای Xeon Phi x200 اینتل (Knights Landing) در سال ۲۰۱۶ عرضه شد. افزایش عملکرد گسترده، ناشی از ترکیب دستورهای برداری AVX-512 با کد اسمبلی بسیار بهینهشده است، اگرچه دستورات AVX از ابتدا برای بهبود پردازش موازی SIMD طراحی شده بودند.
FFmpeg یک نرمافزار آزاد و منبعباز است که مجموعهای جامع از کتابخانهها و ابزارهای مدیریت جریانهای صوتی و تصویری را ارائه میدهد و بهعنوان یک ابزار همهکاره در دنیای چندرسانهای شناخته میشود؛ از VLC گرفته تا شرکتهای بزرگی چون یوتیوب از این نرمافزار بهره میبرند. این پروژه تحت نظارت تیم اصلی FFmpeg است و توسط جامعهای از داوطلبان که کدها و پچهای جدید اضافه میکنند، توسعه مییابد.
FFmpeg در حال حاضر حدود ۸ درصد از کد خود را به زبان اسمبلی نوشته است، که نشان از ظرفیت زیاد برای بهبود عملکرد دارد. اسمبلی یک زبان سطح پایین است که در دنیای امروز کمتر مورد توجه برنامهنویسان قرار میگیرد، زیرا صنعت نرمافزار اکنون زبانهای سطح بالا و در دسترستری مانند Python را ترجیح میدهد.
با این حال، برنامهنویسان ماهر همیشه مشتاق هستند تا عملکرد کدها را روی سختافزارهای جدید به حداکثر برسانند. FFmpeg شامل رویه های رمزگشایی اختصاصی نوشته شده برای پردازندههای x86 و ARM است، هرچند برخی در صنعت نرمافزار تمایل دارند که AVX-512 «پایانی دردناک» داشته باشد.
اخیراً، اینتل مجموعه دستورات AVX10 را معرفی کرد که استانداردسازی دستورهای AVX-512 را در تمام معماریها و انواع هستههای پردازندههای x86 ارائه میدهد. با این وجود، اینتل با غیر فعالسازی پشتیبانی از AVX-512 در سطح فرمویر برای پردازندههای نسل دوازدهم Core و مدلهای جدیدتر، این مجموعه دستورات SIMD را عملاً از پردازندههای رده مصرف کننده حذف کرده است.
source