شتاب سخت افزاری قابلیتی است که بخشی از بار پردازشی واحد پردازش مرکزی را به سایر سختافزارها محول میکند.
شتاب سخت افزاری (Hardware Acceleration) قابلیتی است که شاید در منو برنامههای مختلف خیلی از دستگاهها مانند گوشیهای اندروید مشاهده کرده باشید. این ویژگی همیشه در برنامههای گوشیهای هوشمند دردسترس نیست؛ اما تعدادی از برنامههای محبوب اندروید مانند یوتیوب و کروم و فیسبوک از آن استفاده میکند.
شتاب سخت افزاری کاربردهای مختلفی دارد؛ از رندرینگ کارآمدتر صدا و ویدئو تا خواناترکردن متن و افزایش سرعت گرافیک دوبعدی و انیمیشنهای رابط کاربری. چنانچه این ویژگی دردسترستان قرار دارد، بهتر است از آن استفاده کنید؛ اما در برخی از مواقع ممکن است موجب نقص و باگ شود. اگر سؤالات مختلفی دربارهی آن در سر دارید و در استفاده از آن مردد هستید، ادامهی این مقاله را دنبال کنید.
شتاب سخت افزاری چیست؟
شتاب سخت افزاری از سخت افزار های بهخصوصی استفاده میکند تا کارایی و سرعت اجرای وظایف را در مقایسه با زمانی افزایش دهد که فقط از پردازنده استفاده میشود. معمولا این کار ازطریق واگذاری بخشی از وظیفهی پردازش به واحد پردازش گرافیکی و پردازندهی سیگنال دیجیتال و سایر بلوکهای سختافزاری انجام میشود که ویژهی انجام وظایف خاص هستند.
روند کار شتاب سخت افزاری تقریبا مشابه رایانش ناهمگن بهنظر میرسد. بهجای اتکا بر SDK پلتفرمی خاص برای دسترسی به قطعات پردازشی مختلف، سیستمعامل انواع مورداستفاده تسریع کارایی را دراختیار توسعهدهندگان نرمافزار قرار میدهد. هنگامیکه شتاب سخت افزاری غیرفعال باشد، پردازنده هنوز میتواند عملکرد لازم در نرمافزار را اجرا کند؛ اما با سرعتی کُندتر از زمانیکه این قابلیت فعال است. یکی از رایجترین موارد استفاده از آن ، رمزگذاری و رمزگشایی ویدئو است و بخشی از بار پردازشی CPU را به سایر سختافزارها محول میکند.
برای مثال، بهجای رمزگشایی استریم ویدئو بهوسیله واحد پردازندش مرکزی که خیلی کارآمد نیست، کارتهای گرافیک یا سایر سختافزارها اغلب بلوکهای اختصاصی برای رمزگذاری و رمزگشایی ویدئو دارند که میتوانند این وظیفه را بسیار کارآمدتر انجام دهند. بهطور مشابه، خارجکردن فایل صوتی از حالت فشرده ازطریق پردازندهی سیگنال دیجیتال، بسیار سریعتر از واحد پردازش مرکزی انجام میشود.
یکی دیگر از رایجترین استفادههای شتاب سخت افزاری ، تسریع گرافیک دوبعدی است؛ مثلا رابطهای کاربری تعداد زیادی اشکال گرافیکی و متن و انیمیشن را باید رندر کنند. این کار را میتواند واحد پردازش مرکزی انجام دهد؛ اما واحد پردازش گرافیکی چنین عملیاتی را سریعتر انجام میدهد. چنین وظایفی میتواند اعمال فیلتر ضدپلهگی (Anti-aliasing) به متن باشد تا صافتر بهنظر برسد یا قراردادن پوشش نیمهشفاف روی ویدئو را شامل شود. برای سایر اعمال گرافیکی پیشرفته، میتوان تسریع فیزیک و نوردهی رهگیری پرتو را مثال زد.
چرا شتاب سخت افزاری مهم است؟
پردازنده نیروی کار عمومی سیستمهای رایانهای محسوب میشود و طوری طراحی شده است تا هر وظیفهای را انجام دهد که به آن واگذار میشود؛ اما این انعطاف به آن معنا است که پردازنده همیشه کارآمدترین قطعه برای انجام وظایف خاص نیست؛ مثلا وظایفی مانند رمزگشایی ویدئو یا رندر گرافیکی که انبوهی از عملیات ریاضی پیاپی را شامل میشوند.
شتاب سخت افزاری وظایف رایج را از واحد پردازش مرکزی به سختافزاری خاصی محول میکند که آنها را نهتنها سریعتر، بلکه کارآمدتر انجام میدهند و باعث خنکترشدن سیستم و دوام بیشتر باتری میشود.
هنگام استفاده از بلوکهای اختصاصی رمزگشایی ویدئو بهجای اجرای الگوریتم روی پردازنده، کاربر با یک بار شارژ، میتواند تعداد بیشتری ویدئو باکیفیت تماشا کند. ناگفته نماند این کار پردازنده را آزاد میکند تا کارهای دیگری انجام دهد و سرعت پاسخدهی اپلیکیشنها را افزایش دهد.
بهرهگیری از سختافزاری بیشتر برای انجام عمل پردازندش هزینه دارد؛ بنابراین، باید تصمیم گرفت چه ویژگیهایی ارزش پشتیبانی بهوسیلهی سختافزار خاصی را دارند. برای مثال، میتوان کُدکهای محبوب ویدئو را ذکر کرد که در مقایسه با هزینه تمامشده، فواید مطلوبی ندارند.
شتاب سخت افزاری از کامپیوترهای شخصی قدرتمند گرفته تا گوشیهای هوشمند، به ابزار مهمی در سیستمهای رایانهای تبدیل شده است. موارد استفاده سختافزارهای اختصاصی با معرفی کاربردهای یادگیری ماشین درحال افزایش است. با این اوصاف، اغلب اوقات فقط برای کاهش مصرف باتری هنگام تماشای ویدئو از یوتیوب استفاده میشود.