ساخت یک سرور 300 کانالی برای رمزگذاری ویدیو
فناوری NETINT VPU با پردازنده های Ampere® Altra® Max استانداردهای هزینه عملیاتی و کارایی جدیدی را تعیین می کند.
عکس فوری
سازمان : NETINT، Supermicro و Ampere® Computing
مشکل : تقاضا برای پخش زنده ویدیویی با کیفیت بالا افزایش یافته است و بر هزینه های عملیاتی و انتظارات کاربران فشار وارد می کند. پردازندههای قدیمی x86 برای رسیدگی به وظایف پردازش ویدئویی فشرده مورد نیاز برای نیازهای جریان مدرن تلاش میکنند.
راه حل : NETINT با ترکیب VPU های Quadra خود با پردازنده Altra Max Ampere، سرور رمزگذاری ویدیو را دوباره تصور کرد و سرور کوچکتر، سریعتر و مقرون به صرفه تر ایجاد کرد. این معماری سرور جدید، قابلیتهای پردازش ویدیویی پیشرفته، از جمله وظایف استنتاج هوش مصنوعی و زیرنویسهای خودکار با استفاده از OpenAI's Whisper را امکانپذیر میکند.
ویژگی های کلیدی
عملکرد بالا: قابلیت رمزگذاری همزمان چند جریان ویدیویی (به عنوان مثال، 95x1080i30، 195x720i30).
مقرون به صرفه: هزینه های عملیاتی را تا 80 درصد در مقایسه با راه حل های مبتنی بر x86 سنتی کاهش می دهد.
پردازش پیشرفته: از ترکیبزدایی، رمزگشایی نرمافزار و کارهای استنتاج هوش مصنوعی پشتیبانی میکند.
کنترل انعطاف پذیر: از طریق رابط برنامه کاربردی FFmpeg، GStreamer، SDK یا NETINT Bitstreams Edge مدیریت می شود.
نوآوری های فنی
ASIC های سفارشی: ASIC های اختصاصی NETINT برای پردازش ویدیویی با کیفیت بالا و کم هزینه.
پردازنده Ampere Altra Max: کارایی و عملکرد بی سابقه ای را ارائه می دهد که برای محیط های محاسباتی متراکم بهینه شده است.
نرم افزار بهینه شده: از آخرین نسخه های FFmpeg و دستورالعمل های Arm64 NEON SIMD برای بهبود عملکرد قابل توجه استفاده می کند.
تأثیر : همکاری بین NETINT، Supermicro و Ampere منجر به ایجاد یک سرور ویدیوی زنده پیشگامانه شده است که:
در مقایسه با نرم افزار روی x86، توان عملیاتی را 20 برابر افزایش می دهد.
با کسری از هزینه کار می کند.
عملکرد سیستم را برای پشتیبانی از فرمتهای ویدیویی که به طور بومی توسط VPU NETINT پشتیبانی نمیشوند، گسترش میدهد.
رونویسی دقیق و بیدرنگ پخش زنده را از طریق زیرنویس خودکار فعال میکند.
مقدمه
تقاضا برای پخش زنده ویدیویی با کیفیت بالا در سال های اخیر به شدت افزایش یافته است. در هر دو بازار توسعه یافته و در حال ظهور، هزینه های عملیاتی تحت فشار هستند در حالی که انتظارات کاربران در حال گسترش است. این امر باعث شد تا NETINT دوباره سرور رمزگذاری ویدیو را تصور کند و در نتیجه یک سرور ویدیوی زنده ایجاد شود که قابلیتهای پردازش ویدیوی جدیدی را که با همکاری Supermicro و Ampere Computing ایجاد شده است، باز میکند.
یکی از جنبههای منحصر به فرد این معماری این است که در حالی که VPUهای NETINT پردازش فشرده و رمزگذاری ویدئو را انجام میدهند، یک CPU میزبان قدرتمند میتواند عملکردهای دیگری مانند deinterlacing و رمزگشایی نرمافزاری را انجام دهد که VPU در سختافزار پشتیبانی نمیکند. علاوه بر این، یک CPU میزبان قدرتمند می تواند وظایف استنتاج هوش مصنوعی را انجام دهد. NETINT اخیراً اولین زیرنویس خودکار در صنعت را با استفاده از OpenAI's Whisper، بهینهسازی شده برای پردازنده Ampere® Altra® Max، که رونویسی دقیق و بیدرنگ پخش زنده را امکانپذیر میسازد، اعلام کرد. این سرور جداسازی و کدگذاری ویدیو را به شیوه ای متراکم، با کارایی بالا و مقرون به صرفه انجام می دهد که با پردازنده های قدیمی x86 امکان پذیر نیست.
این سرور با استفاده از CPU های Ampere، وظایف پردازش ویدیو و رمزگذاری را به شیوه ای متراکم، با کارایی بالا و مقرون به صرفه انجام می دهد که با پردازنده های x86 امکان پذیر نیست. مهندسان ویدیو سرور را از طریق رابط برنامه کاربردی FFmpeg، GStreamer، SDK یا NETINT Bitstreams Edge کنترل میکنند و آن را برای استقرار و جایگزینی منابع رمزگذاری موجود یا در نصبهای Greenfield در دسترس قرار میدهند.
این مطالعه موردی بحث میکند که چگونه مهندسان NETINT، Supermicro و Ampere سیستم را برای ارائه یک سرور ویدیویی بازسازیشده که بهطور همزمان جریانهای 95x1080i30، جریانهای 195x720i30، جریانهای 365x576i30، یا جریانهای ترکیبی 160،201x را تبدیل میکند، ارائه میکند 1080i، 40x1080p30 ، پخش جریانی 40×720p30 و 10×576p در یک سرور Supermicro MegaDC SuperServer ARS-110M-NR 1U. این سرور با فعال کردن فرمتهای ویدیویی که به طور بومی توسط VPU NETINT پشتیبانی نمیشوند، عملکرد سیستم را گسترش میدهد، مانند رمزگشایی 96 جریان ورودی 1080i30 H.264 یا H.265 از طریق پردازنده Ampere Altra Max و 320 جریان ورودی 1080i MPEG-2.
نکته اصلی این است که با پردازنده Ampere Altra Max و NETINT VPU، یک سرور Supermicro 1U دنیای کاملا جدیدی از ارزش را باز می کند.
الکس لیو، بنیانگذار NETINT.چشم انداز NETINT
در پاسخ به نگرانی های مشتریان در مورد پردازش محدود CPU و هزینه های سرسام آور برق، NETINT یک ASIC سفارشی را برای یک هدف ساخت: پردازش و رمزگذاری ویدیو با بالاترین کیفیت و کم هزینه. NETINT با ترکیب VPU های NETINT Quadra با پردازنده Altra Max Ampere، سرور انتقال کد زنده ویدیویی را دوباره اختراع کرد تا سرور کوچکتر و سریع تری ایجاد کند که هزینه کارکرد آن 80 درصد کمتر است و در مقایسه با نرم افزار x86، توان عملیاتی را 20 برابر افزایش می دهد.
الزامات برای اختراع مجدد سرور ویدئو
آن را کوچکتر و سریعتر مهندسی کنید.
هزینه کارکرد آن را 80 درصد کمتر کنید.
توان عملیاتی را 20 برابر افزایش دهید.
چرا NETINT پردازنده های آمپر را انتخاب کرد؟
NETINT قبلاً با پردازندههای پرقدرت و کممصرف Ampere Computing آشنا بود که کاملاً مکمل VPUهای Quadra NETINT هستند. پردازنده بومی Cloud Ampere Altra Max برای عصر جدیدی از محاسبات و دنیایی با انرژی محدود طراحی شده است که کارایی و عملکرد بی سابقه ای را ارائه می دهد. از زیرساختهای خدمات وب و ویدئو گرفته تا CDN تا استنتاج AI نیازمند، محصولات Ampere کارآمدترین پلتفرمهای محاسباتی متراکم در بازار هستند. مزایای استفاده از پردازندههای Cloud Native مانند Ampere Altra Max شامل کارایی و مقیاسپذیری بهبود یافته است که همافزایی بسیار خوبی با VPUهای NETINT با کارایی بالا و کارآمد دارند.
مشکل
آیا Ampere Altra Max میتواند به طور همزمان جریانهای ویدئویی 100 576i، 100 720i و 10 1080i را که پردازندههای قدیمی x86 نمیتوانند در یک فاکتور مقرونبهصرفه 1RU از هم جدا کند؟
آمپر چگونه پاسخ داد
مهندسان NETINT، Supermicro و Ampere عملکرد بالای موجود را با Quadra VPU NETINT و پردازنده 96 هستهای Ampere Altra Max برای تعریف مجدد سرور ویدئوی پخش زنده باز کردند. نتایج اولیه با استفاده از Ampere Altra Max با استفاده از FFmpeg 5.0 در مقایسه با پردازندههای قدیمی x86 دلگرمکننده بود، اما هدف NETINT برای افزایش 20 برابری در حالی که هزینهها را 80 درصد کاهش داد، برآورده نشد.
مهندسان Ampere فیلترهای جداسازی مختلف موجود در FFmpeg را مطالعه کردند و بهینه سازی های اخیر Arm64 موجود در نسخه های اخیر FFmpeg را تحلیل کردند. یک پچ avfilter FFmpeg که اجرای مونتاژ بهینهشده را با استفاده از دستورالعملهای Arm64 NEON SIMD ارائه میکند، افزایش عملکرد قابلتوجهی در deinterlacing ویدیو با حداکثر سرعت 2.9 برابر با استفاده از FFmpeg 6.0 در مقایسه با FFmpeg 5.0 نشان داد. با تمام معماری ها، و به ویژه برای معماری Arm64، استفاده از "جدیدترین و بهترین" نسخه های نرم افزار برای بهره مندی از بهبود عملکرد توصیه می شود.
چالش های عملکرد
مهندسان NETINT، Supermicro و Ampere با اجرای حجم کاری کامل ویدئو، ترکیبی از interlacing ویدئویی مبتنی بر CPU و رمزگذاری با استفاده از VPUهای Quadra NETINT، وارد کار شدند. با نتایج برجسته فقط اجرای کارهای جداسازی، نتایج اولیه اجرای حجم کار کامل ویدیو، هدف عملکرد را برآورده نمی کند. تیم با ترکیب تخصص گسترده خود در بهینهسازی سختافزار و نرمافزار، تجزیه و تحلیل کرد، ریشهای ایجاد کرد و توانست نیازهای تهاجمی را برآورده کند و در پایان، تنها از 50 تا 60 درصد استفاده از پردازنده Ampere Altra Max Processor استفاده کرد و فضایی برای آپشن های آینده فراهم کرد. .
نتایج اولیه به هدف رمزگذاری همزمان ویدئوهای ورودی 100x 576i، 100x720i، 10x1080i، 40x1080p30، 40x720p30، و 10x576p دسترسی نداشت. تحلیل عملکرد نشان داد که عملکرد در ابتدا به هدف نزدیک بود اما به طور غیرمنتظره ای در طول زمان کند شد. به دنبال روششناسی عملکردی که در آموزش Ampere، «روش تجزیه و تحلیل عملکرد برای بهینهسازی CPUهای خانواده Altra» آمده است، ابتدا معیارهای عملکرد سطح پلت فرم را مشخص میکند. شکل 2 دادههای ابزار mpstat را نشان میدهد: در ابتدا، سیستم در حدود 4% از عملکرد هدف اجرا میشد، اما تنها با 71% استفاده کلی از CPU، با ~36% در فضای کاربر (mpstat %usr) و ~35 اجرا میشد. % در وظایف مربوط به سیستم - زمان هسته (mpstat %sys)، انتظار برای IO (%iowait mpstat)، و وقفههای نرم (mpstat %soft). این واقعیت که سیستم در 29٪ موارد بیکار بود نشان داد که چیزی عملکرد را مسدود می کند.
شکل 2 خروجی ابزار mpstat نشان می دهد که سیستم 100.0 - 71.4 = 28.6٪ مواقع در طول تجزیه و تحلیل عملکرد اولیه، زمانی که سیستم به هدف عملکردی نرسیده است، بیکار است. این به ما نشان داد که برای تعیین اینکه چه چیزی عملکرد سیستم را محدود می کند به چه چیزی نیاز داریم.
با درصد زیاد وقفههای نرمافزاری و زمان انتظار IO، ما در ابتدا وقفهها را با استفاده از ابزار softirq در BCC تحلیل کردیم که تجزیه و تحلیل، شبکهسازی، نظارت و نظارت بر لینوکس مبتنی بر BPF را ارائه میدهد. ابزار softirq فراخوانیهای هسته لینوکس را برای اندازهگیری تأخیر برای تمام وقفههای نرمافزاری مختلف در سیستم ردیابی میکند، و یک نمودار هیستوگرام که توزیع تأخیر را نشان میدهد، تولید میکند. ابزارهای BCC بسیار قدرتمند و آسان برای اجرا هستند. متوسط تأخیر حدود 20 میکروثانیه در درایور استفاده شده توسط VPU NETINT در حین مدیریت 40K وقفه در ثانیه نشان داد. از آنجایی که مشکل عملکرد ما در حد میلیثانیه بود، ابزار BCC softirq نشان داد که وقفههای نرمافزار عملکرد را محدود نمیکنند، پس ما به تحلیل آنچه که عملکرد را محدود میکند ادامه دادیم.
شکل 3 ابزار BCC softirq تأخیر وقفه نرم افزار را اندازه گیری می کند. خروجی دستگاه بلوک softirq نشاندهنده تأخیر متوسط بلوک IRQ ~ 12 usecs است و پس برای عملکرد کلی هنگام اجرا در 30 FPS یا 33 میلیثانیه در هر فریم حیاتی نیست.
در مرحله بعد، ما از ابزارهای پرف رکورد/گزارش پرف برای اندازهگیری شمارندههای مختلف واحد اندازهگیری عملکرد (PMU) استفاده کردیم تا جزئیات سطح پایین نحوه اجرای برنامه بر روی CPU را مشخص کنیم و به دنبال مشخص کردن تنگنا(های) عملکرد هستیم. از آنجایی که در ابتدا نمیدانستیم چه چیزی عملکرد را محدود میکند، دادههای شمارنده PMU را برای اندازهگیری استفاده از CPU (چرخههای CPU، دستورالعملهای CPU، دستورالعملها در هر ساعت، قسمت جلویی، و توقفهای پشتیبان)، حافظه پنهان و دسترسی به حافظه، پهنای باند حافظه، و دسترسی TLB جمعآوری کردیم. . از آنجایی که سیستم پس از راهاندازی مجدد به 96% هدف عملکرد رسید و پس از اجرای بسیاری از کارها به 60% کاهش یافت، پس از راهاندازی مجدد و زمانی که عملکرد ضعیف بود، دادههای عملکرد را جمعآوری کردیم. با تجزیه و تحلیل دادههای PMU برای جستجوی بزرگترین تفاوتها در موارد عملکرد خوب و ضعیف، تابع هسته alloc_and_insert_iova_range با گرفتن 40 برابر بیشتر چرخههای CPU در مورد عملکرد ضعیف برجسته شد. جستجوی کد منبع هسته لینوکس از طریق وب سایت بسیار قدرتمند live grep نشان داد که این تابع مربوط به IOMMU است. راهاندازی مجدد هسته با گزینه iommu.passthrough=1 مشکل کاهش عملکرد در طول زمان را با کاهش نرخ از دست دادن TLB حل کرد. ما در حدود 96 درصد از هدف عملکرد بودیم، پس نزدیک بودیم اما برای رسیدن به اهدافمان به عملکرد بیشتری نیاز داشتیم!
شکل 4 خروجی ابزار perf عملکردهای حیاتی عملکرد را در زمانی که سیستم کند و سریع کار می کرد نشان می دهد. تابع __alloc_and_insert_iova_range افزایش بسیار زیادی را در چرخه های CPU و Stall Frontend نشان می دهد. این باعث شد تا با استفاده از گزینه بوت هسته لینوکس iommu.passthrough=1، کاهش عملکرد را در طول زمان حل کنیم.
مهندسان NETINT سرعت نهایی عملکرد را افزایش دادند. آنها شاهد بهینهسازیهای اضافی Arm64 deinterlacing در خط اصلی FFmpeg بودند که اهداف عملکرد ما را برآورده میکرد و در عین حال استفاده کلی از CPU را از 70% به 50-60% کاهش داد.
نتایج
نتیجه NETINT 300 Channel Live Video Server Ampere است که بر اساس همکاری NETINT، Supermicro و Ampere است که می تواند به طور همزمان 95x1080i30 استریم، جریان 195x720i30، 36i30i، 7650x، استریم ترکیبی 365x. 100x720i، پخش جریانی 10x 1080i، 40x 1080p30، 40x 720p30، و 10x 576p در سرور Supermicro MegaDC SuperServer ARS-110M-NR 1U. این سرور عملکرد سیستم را برای فعال کردن بارهای کاری ویدیویی که به عملکرد CPU با کارایی بالا در سرور 1U متراکم، قدرتمند و مقرون به صرفه نیاز دارند، گسترش می دهد.
فراخوان برای اقدام
چشم انداز NETINT برای تجسم مجدد سرور ویدئوی زنده بر اساس خواسته های مشتری منجر به نسخه Ampere NETINT Quadra Video Server در یک شاسی سرور Supermicro 1U شد و دنیای کاملا جدیدی از ارزش را برای مشتریانی که نیاز به اجرای بارهای کاری ویدیویی دارند که به پردازش CPU با کارایی بالا نیاز دارند، باز کرد. علاوه بر رمزگذاری ویدیو با VPU های NETINT.
الکس لیو و مارک دانینگان از NETINT، شان وارلی از Ampere Computing، و بن لی از سوپرمیکرو یک وبینار در کانال یوتیوب NETINT برای تماشا در دسترس دارند، "چگونه یک سرور پخش جریانی زنده بسازیم که 300 کانال درهم آمیخته HD ارائه می دهد"، که اطلاعات بیشتری را ارائه می دهد. .
دیگر بارهای کاری ویدیویی که برای اجرا در این سرور عالی هستند شامل پردازش استنتاج هوش مصنوعی است که NETINT اخیراً در NAB 2024 اعلام و نشان داد - NETINT از اولین ویژگی زیرنویس خودکار صنعت با OpenAI Whisper در حال اجرا بر روی Ampere رونمایی کرد.
درباره شرکت ها
NETINT
رویای بزرگ NETINT که در سال 2015 تأسیس شد، ترکیب مزایای سیلیکون با کیفیت و انعطاف پذیری نرم افزار برای رمزگذاری ویدیو با استفاده از ASIC های اختصاصی، اکنون به واقعیت تبدیل شده است. به عنوان اولین فروشنده تجاری سیلیکون مخصوص پردازش ویدئو، NETINT پیشگام توسعه واحد پردازش ویدئو (VPU) بود. نزدیک به 100000 VPU NETINT در سراسر جهان مستقر هستند و بیش از 300 میلیارد دقیقه ویدئو را پردازش می کنند.
سوپرمیکرو
Supermicro یک رهبر فناوری جهانی است که متعهد به ارائه نوآوری های اول به بازار برای Enterprise، Cloud، AI، Metaverse، و 5G Telco/Edge IT Infrastructure، با تمرکز بر محصولات سازگار با محیط زیست و صرفه جویی در انرژی است. سوپرمیکرو از یک رویکرد بلوکهای ساختمانی استفاده میکند تا ترکیبی از عوامل شکلی مختلف را امکانپذیر سازد و آن را انعطافپذیر و سازگار با نیازهای مختلف مشتری میکند. تخصص آنها شامل مهندسی سیستم است که بر اهمیت اعتبارسنجی متمرکز است و اطمینان حاصل می کند که همه اجزا به طور یکپارچه با هم کار می کنند تا سطوح عملکرد مورد انتظار را برآورده کنند. علاوه بر این، آنها هزینه ها را از طریق پیکربندی های مختلف، از جمله انتخاب در حافظه، هارد دیسک و CPU، بهینه می کنند، که با هم تفاوت قابل توجهی در راه حل های کلی ارائه شده توسط Supermicro ایجاد می کنند.
رایانش آمپر
Ampere یک شرکت نیمه هادی مدرن است که آینده رایانش ابری را با اولین پردازنده های Cloud Native در جهان طراحی می کند. پردازندههای Ampere که برای Cloud پایدار با بالاترین عملکرد و بهترین عملکرد در هر وات ساخته شدهاند، تحویل همه برنامههای رایانش ابری را تسریع میکنند. Ampere Cloud Native Processors عملکرد ابری پیشرو در صنعت، بهره وری انرژی و مقیاس پذیری را ارائه می دهد. برای اطلاعات بیشتر به amperecomputing.com مراجعه کنید.
سایر بارهای کاری ویدیویی که برای اجرا در این سرور عالی هستند شامل پردازش استنتاج هوش مصنوعی است که NETINT اخیراً در NAB 2024 اعلام و نشان داد - NETINT از اولین ویژگی زیرنویس خودکار صنعت با OpenAI Whisper در حال اجرا بر روی آمپر رونمایی کرد.
برای یافتن اطلاعات بیشتر در مورد بهینه سازی کد خود در CPU های Ampere، راهنمای تنظیم ما را در مرکز توسعه دهندگان Ampere تحلیل کنید. همچنین میتوانید با ثبتنام در خبرنامه ماهانه برنامهنویسان، بهروزرسانیها و پیوندهایی به محتوای عالیتری مانند این دریافت کنید.
اگر سؤال یا نظری در مورد این مطالعه موردی دارید، یک جامعه کامل از کاربران و طرفداران Ampere آماده پاسخگویی در انجمن توسعه دهندگان Ampere هستند. و حتماً برای محتوای بیشتر متمرکز بر توسعهدهنده در کانال YouTube ما مشترک شوید.
ارسال نظر