محاسبات تقریبی

محاسبات تقریبی یک الگوی نوظهور برای طراحی با انرژی کارآمد و/یا با کارایی بالا است.J. Han and M. Orshansky, "Approximate computing: An emerging paradigm for energy-efficient design", in the 18th IEEE European Test Symposium, pp. 1-6, 2013. این شامل انبوهی از تکنیک‌های محاسباتی است که یک نتیجه احتمالاً نادرست را به جای یک نتیجه دقیق تضمین شده برمی‌گرداند، و می‌تواند برای برنامه‌هایی استفاده شود که یک نتیجه تقریبی برای هدف آن کافی است.A. Sampson, et al. "EnerJ: Approximate data types for safe and general low-power computation", In ACM SIGPLAN Notices, vol. 46, no. 6, 2011. یک مثال از چنین شرایطی برای یک موتور جستجو است که در آن ممکن است پاسخ دقیقی برای یک جستجوی خاص وجود نداشته باشد و از این رو، بسیاری از پاسخ‌ها ممکن است قابل قبول باشند. به‌طور مشابه، افت گاه به گاه برخی فریم‌ها در یک برنامه ویدیویی به دلیل محدودیت‌های ادراکی انسان‌ها می‌تواند شناسایی نشود. محاسبات تقریبی مبتنی بر این مشاهدات است که در بسیاری از سناریوها، اگرچه انجام محاسبات دقیق به منابع زیادی نیاز دارد، اما اجازه دادن به تقریب محدود می‌تواند دستاوردهای نامتناسبی را در عملکرد و انرژی ایجاد کند، در حالی که همچنان به دقت نتیجه قابل قبولی دست می‌یابد. برای مثال، در الگوریتم خوشه بندی k میانگین، اجازه می‌دهد از دست دادن تنها ۵٪ دقت طبقه می‌تواند ۵۰ برابر انرژی ارائه صرفه جویی در مقایسه با طبقه‌بندی کاملاً دقیق است.

شرط کلیدی در محاسبات تقریبی این است که تقریب را می‌توان تنها در داده‌های غیر بحرانی معرفی کرد، زیرا تقریب داده‌های حیاتی (به عنوان مثال، عملیات کنترل) می‌تواند منجر به عواقب فاجعه آمیزی مانند خرابی برنامه یا خروجی اشتباه شود.

 استراتژی‌ها 
برای انجام محاسبات تقریبی می‌توان از چندین استراتژی استفاده کرد.

 مدارهای تقریبی
 مدارهای حسابی تقریبی:Jiang et al. , "Approximate Arithmetic Circuits: A Survey, Characterization, and Recent Applications", the Proceedings of the IEEE, Vol. 108, No. 12, pp. 2108 - 2135, 2020. جمع‌کننده‌ها،J. Echavarria, et al. "FAU: Fast and Error-Optimized Approximate Adder Units on LUT-Based FPGAs", FPT, 2016.J. Miao, et al. "Modeling and synthesis of quality-energy optimal approximate adders", ICCAD, 2012 ضرب‌کننده دودویی و سایر دروازه منطقی می‌توانند سربار سخت‌افزار را کاهش دهند.S. Venkataramani, et al. "SALSA: systematic logic synthesis of approximate circuits", DAC, 2012.J. Miao, et al. "Approximate logic synthesis under general error magnitude and frequency constraints", ICCAD, 2013R. Hegde et al. "Energy-efficient signal processing via algorithmic noise-tolerance", ISLPED, 1999. به عنوان مثال، یک جمع‌کننده تقریبی چند بیتی می تواند زنجیره حمل را نادیده بگیرد و بنابراین، به همه جمع‌کننده‌های فرعی خود اجازه می‌دهد تا عملیات جمع را به صورت موازی انجام دهند.
 ذخیره‌سازی تقریبی
 به جای ذخیره دقیق مقادیر داده، می‌توان آنها را تقریباً ذخیره کرد، به عنوان مثال، با کوتاه کردن بیت‌های پایین در داده‌های محاسبات ممیز شناور روش دیگر پذیرش حافظه کمتر قابل اعتماد است. برای این کار، در حافظه تصادفی پویا و eDRAM، نرخ تازه‌سازی را می‌توان کاهش داد یا کنترل کرد. در حافظه دسترسی تصادفی ایستا، ولتاژ تغذیه را می‌توان کاهش داد یا کنترل کرد. ذخیره‌سازی تقریبی را می‌توان برای کاهش مصرف انرژی نوشتاری بالای MRAM اعمال کرد. به‌طور کلی، هر مکانیزم تشخیص و تصحیح خطا باید غیرفعال شود.
 تقریب در سطح نرم‌افزار
 روش‌های مختلفی برای تقریب در سطح نرم‌افزار وجود دارد. یادداشت را می‌توان اعمال کرد. برخی از ایتریشن کنترل جریان برای رسیدن به نتیجه سریعتر می‌توان نادیده گرفت (به عنوان سوراخ حلقه نامیده می‌شود). برخی از وظایف را نیز می‌توان نادیده گرفت، به عنوان مثال زمانی که یک شرط زمان اجرا نشان می‌دهد که آن وظایف مفید نیستند (پرش از کار). الگوریتم‌های مونت کارلو و الگوریتم‌های تصادفی صحت را با تضمین زمان اجرا معامله می‌کنند.C.Alippi, Intelligence for Embedded Systems: a Methodological approach, Springer, 2014, pp. 283 محاسبات را می‌توان با توجه به پارادایم‌هایی که به راحتی امکان شتاب را روی سخت‌افزارهای تخصصی می‌دهد (به عنوان مثال یک واحد پردازش عصبی) دوباره فرموله کرد.
 سیستم تقریبی
 در یک سیستم تقریبی، زیرسیستم‌های مختلف سیستم مانند پردازنده، حافظه، حسگر و ماژول‌های ارتباطی به‌طور هم افزایی برای به دست آوردن منحنی مبادله QE در سطح سیستم بسیار بهتر در مقایسه با تقریب‌های جداگانه برای هر یک از زیرسیستم‌ها تقریب می‌شوند. .

 حوزه‌های کاربرد 
محاسبات تقریبی در حوزه‌های مختلفی که برنامه‌های کاربردی در برابر خطا مقاوم هستند، مانند پردازش چند رسانه‌ای ، یادگیری ماشین، پردازش سیگنال، محاسبات علمی استفاده شده‌است؛ بنابراین، محاسبات تقریبی عمدتاً توسط برنامه‌هایی هدایت می‌شود که با ادراک/شناخت انسان مرتبط هستند و دارای انعطاف‌پذیری ذاتی خطا هستند. بسیاری از این کاربردها مبتنی بر محاسبات آماری یا احتمالاتی هستند، مانند تقریب‌های مختلفی که می‌توان برای برآورده شدن بهتر اهداف مورد نظر انجام داد. یکی از کاربردهای قابل توجه در یادگیری ماشین این است که Google از این رویکرد در واحد پردازشی تنسور خود (TPU، یک ASIC سفارشی) استفاده می‌کند.

 پارادایم‌های مشتق شده 
مسئله اصلی در محاسبات تقریبی، شناسایی بخشی از برنامه است که می‌توان آن را تقریب کرد. در مورد برنامه‌های کاربردی در مقیاس بزرگ، بسیار رایج است که افرادی را بیابیم که در تکنیک‌های محاسباتی تقریبی تخصص دارند و در حوزه برنامه تخصص کافی ندارند (و بالعکس). به منظور حل این مشکل، پارادایم‌های برنامه‌نویسی ارائه شده‌است. همه آنها در تفکیک نقش روشن بین برنامه‌نویس برنامه و متخصص موضوعی برنامه مشترک هستند. این رویکردها به گسترش رایج‌ترین بهینه‌سازی‌ها و تکنیک‌های محاسباتی تقریبی اجازه می‌دهد.

 منابع 

رده:بهینه‌سازی نرم‌افزار
رده:تقریب‌های ریاضی
رده:معماری رایانه