اگر اهل جستجو در منوهای تو در توی دستگاه های مختلف به ویژه کامپیوتر یا گوشی باشید، حتما به گزینه Hardware Acceleration یا شتاب سخت افزاری برخورد کرده اید. این قابلیت در برخی سیستم ها کارایی را بهبود می بخشد اما در تعدادی دیگر ممکن است به مشکلاتی غیرمنتظره منجر شود.
شتاب سخت افزاری (HA) فرایند اجرای روانتر برنامه ها و افزایش بازدهی سیستم از طریق محول کردن بخشی از بار پردازش به قطعاتی غیر از CPU است. این قابلیت مزایای بسیاری را به همراه دارد که از افزایش سرعت رندرهای ویدیویی و صوتی گرفته تا اجرای روانتر رابط کاربری را شامل می شود.
شتاب سخت افزاری عمر باتری سیستم را افزایش میدهد
هرچند بسیاری از اپلیکیشن ها فاقد چنین قابلیتی هستند اما تعدادی از برنامه های پرکاربرد نظیر یوتیوب، کروم و فیسبوک با تکیه بر شتاب سخت افزاری کارایی خود را افزایش داده و به شکل روانتری اجرا می شوند. اگر سیستم شما دارای چنین قابلیتی است بهتر است خود را از آن محروم نکنید، مگر اینکه باعث وقوع خطا یا باگ شود.
اگر تا کنون برایتان این سوال پیش آمده که شتاب سخت افزاری چیست و چرا باید از آن استفاده کرد، ادامه مطلب را از دست ندهید.
شتاب سخت افزاری چیست؟
شتاب سخت افزاری یا Hardware Acceleration همانطور که از نام آن برمی آید از سخت افزارهای خاص برای افزایش سرعت یا بازدهی اپ ها نسبت به زمانی که صرفا در CPU پردازش می شوند، بهره می برد. اینکار معمولا با محول کردن بخشی از بار محاسبات به پردازشگر گرافیکی (GPU)، واحد پردازش عصبی، پردازنده سیگنال دیجیتال (DSP) یا دیگر بلاک های سخت افزاری با قابلیت ویژه انجام می شود.
شتاب سخت افزاری به روش محاسبات ناهمگن شبیه است اما برای دسترسی به اجزای محاسباتی مختلف به SDK پلتفرم های اختصاصی وابستگی نداشته و بیشتر بر اساس سیستم عامل و راهکارهای توسعه دهندگان صورت می گیرد. حتی در صورتی که این قابلیت غیرفعال باشد پردازنده هنوز قادر به اجرای توابع مورد نیاز در نرم افزار است اما در این حالت سرعت قربانی خواهد شد.
پردازشگر گرافیکی یا GPU اصلی ترین نقش را در فرایند شتاب سخت افزاری بازی می کند. این قطعات با بهره گیری از هزاران هسته و ده ها واحد پردازشی (کارت رادئون RX 5700 XT میزبان 2560 هسته پردازشی است) بهترین گزینه برای اجرای محاسبات موازی هستند.
یکی دیگر از قطعات ویژه شتاب سخت افزاری «واحد پردازش عصبی» یا NPU است. این ریزپردازنده ها در شتاب دهی به الگوریتم های یادگیری ماشین تخصص دارند که اغلب از طریق پردازش مدل های پیش بینی نظیر شبکه های عصبی مصنوعی (ANNs) یا جنگلهای تصمیم تصادفی (یک روش یادگیری ترکیبی برای دستهبندی) صورت می گیرد.
کاربردهای شتاب سخت افزاری
یکی از پرکاربردترین موارد استفاده از شتاب سخت افزاری کدگذاری و رمزگشایی ویدیوها است. توسعه دهندگان به خوبی می دانند که رمزگشایی استریم ویدیویی در پردازنده چندان بازدهی مناسبی به همراه نخواهد داشت و به همین خاطر آن را به کارت گرافیک یا دیگر سخت افزاری بهره مند از بلاک های ویژه کدنگاری و رمزگشایی منتقل می کنند.
کاهش دمای پردازنده از مزایای HA است
به همین ترتیب CPU در تبدیل بسته های صوتی به سیگنال های دیجیتال غیر فشرده چندان کارامد نیست و بهتر است اینکار در پردازشگر سیگنال دیجیتال یا کارت صدا صورت بگیرد.
یکی دیگر از کاربردهای رایج شتاب سخت افزاری به افزایش سرعت گرافیک های 2 بعدی مربوط می شود. برای مثال رابط های کاربری اغلب شامل انبوهی از جلوه های گرافیکی، متن و انیمیشن هستند که همگی در صف رندر قرار می گیرند.
پردازش هایی نظیر حذف واپیچیدگیهای مصنوعی عکس، کاهش الایزینگ بخش های خاصی از تصویر، حذف دندانه های کناری متون یا حتی اعمال یک لایه نیمه شفاف روی ویدیو را می توان در CPU هم انجام داد اما GPU و قطعات دیگر در انجام محاسبات تخصصی از این دست به مراتب کارایی بالاتری دارند.
برای مثال کارت های گرافیک انویدیا از قبیل RTX 2060 و RTX 2080 به لطف قابلیت «سوپر سمپلینگ یادگیری عمیق» یا DLSS به عنوان نسخه مبتنی بر هوش مصنوعی آنتی الایزینگ، به راحتی واپیچیدگی های مصنوعی را کاهش داده و بدون کاهش کارایی رزولوشن را بهبود می بخشند. طبیعتا موارد پیشرفته تری نظیر رهگیری پرتو که بازتاب واقع گرایانه نور را به صورت بلادرنگ میسر می سازد نیز در همین رده قرار می گیرند.
در سال های اخیر و با افزایش محبوبیت یادگیری ماشین GPU نقش منبعی مطمئن و کارامد را برای اجرای وظایف مربوط به آن (برای مثال آموزش مدل های یادگیری ماشین با مقادیر کلان داده، آزمایش و پیش بینی آنها) ایفا کرده است. در این فرایند با بهره بردن از پردازش چند رشته ای زمان اجرای محاسبات تا حد زیادی کاهش پیدا می کند.
شتاب سخت افزاری چه اهمیتی دارد؟
پردازنده شبیه فردی است که اجرای انواع و اقسام کارها را می پذیرد اما در بسیاری از آنها تخصصی ندارد و تنها با صرف انرژی و زمان زیاد از عهده کارها برمی آید. این قطعه به گونه ای طراحی شده که به هیچ پردازشی نه نگوید اما در بسیاری از موارد به ویژه فرایندهای نیازمند محاسبات ریاضیاتی مکرر نظیر رندر گرافیکی و رمزگشایی ویدیو بازدهی چندانی ندارد.
این قابلیت سرعت اجرای برنامههای دیگر را افزایش میدهد
شتاب سخت افزاری بار فعالیت های متداول را از روی پردازنده برداشته و به سخت افزار اختصاصی انتقال می دهد، این کار منجر به انجام سریع تر و بهینه تر وظایف می شود. این یعنی دستگاه در دمای کمتری فعالیت می کند و باتری هم دوام بسیار بیشتری خواهد داشت. در نتیجه اگر به جای الگوریتم های پردازنده، از بلاک های اختصاصی رمزگشایی ویدیو استفاده کنید، با یک بار شارژ قادر به مشاهده تعداد بسیار بیشتری ویدیوی با کیفیت خواهید بود.
فراموش نکنیم که این کار منجر به برداشته شدن بار اضافه از روی پردازنده خواهد شد و این قطعه هم زمان می تواند به انجام وظایف دیگر بپردازد که در نهایت به عملکرد سریعتر برنامه های دیگر منجر می شود.
شتاب سخت افزاری در تمام سیستم های کامپیوتری از تلفن های هوشمند کم مصرف گرفته تا کامپیوترهای شخصی قوی، تبدیل به ابزاری مهم شده است. موارد استفاده از سخت افزار اختصاصی نیز با معرفی برنامه های یادگیری ماشینی رو به افزایش هستند. با این حال، در اکثر مواقع از شتاب سخت افزاری تنها برای طولانی کردن عمر باتری هنگام استریم ویدیوها از یوتیوب استفاده می شود.
با این حال اضافه کردن سخت افزار مخصوص برای پردازش های اضافه هزینه هایی هم دارد. در نتیجه مهمترین تصمیمی که باید گرفته شود این است که چه قابلیت هایی ارزش پشتیبانی شدن توسط سخت افزار مخصوص را دارند و نسبت هزینه به سود کدام موارد منطقی نیست.