طراحی شتابدهنده تقریبی کمتوان بر بستر تراشههای FPGA برای کاربردهای هوش مصنوعی
محورهای موضوعی : مهندسی برق و کامپیوترنادیا سهرابی 1 , امیر باوفای طوسی 2 * , مهدی صدیقی 3
1 - دانشکده مهندسی کامپیوتر، دانشگاه صنعتی امیرکبیر، تهران، ایران
2 - دانشكده كامپيوتر، دانشگاه سجاد، مشهد، ایران،
3 - دانشکده مهندسی کامپیوتر، دانشگاه صنعتی امیرکبیر، تهران، ایران
کلید واژه: جمعکننده تقریبی, شبکه عصبی کانولوشنی, طراحی شبکه عصبی تشخیص ارقام دستنویس, محاسبات تقریبی.,
چکیده مقاله :
یکی از روشهای یادگیری ماشین شبکههای عصبی میباشند که در کاربردهایی نظیر پردازش تصویر به کار میروند. یکی از چالشهای شبکههای عصبی، حجم بالای محاسبات آنهاست. به همین دلیل معماریهای زیادی برای این گونه کاربردها ارائه شده که راهحلهایی برای محاسبات پیچیده آنها ارائه میدهند. معمولاً برای تسریع الگوریتمهای شبکههای عصبی از شتابدهندههای سختافزاری قابل بازپیکربندی مانند تراشههای FPGA استفاده میشود؛ اما مشکل اصلی این تراشهها توان مصرفی نسبتاً بالای آنهاست. برای کاهش توان مصرفی در تراشههای FPGA از تکنیک محاسبات تقریبی میتوان استفاده کرد. ایده اصلی محاسبات تقریبی این است که با ایجاد تغییراتی در مدار یا کد، بین دقت و مصرف انرژی مصالحهای برقرار شود. در این پژوهش یک شبکه عصبی کانولوشنی برای تشخیص ارقام دستنویس بهصورت دقیق و تقریبی با هدف بهبود توان مصرفی طراحی و پیادهسازی شده است. ایده تقریبسازی در بخش محاسبات جمعکننده شبکه عصبی ارائه شده است. این روش با جلوگیری از انتشار رقم نقلی در بیتهای پایین جمعکننده، توان مصرفی را کاهش میدهد. نتایج مقایسه شبکه عصبی بهصورت دقیق و تقریبی نشان میدهد که با تقریبسازی 6 بیت وزن پایین جمعکننده، توان مصرفی 75/43% کاهش مییابد و هیچ خطایی رخ نمیدهد.
One of the challenges of neural networks is the high calculations. For this reason, many architectures have been proposed for such applications, which provide solutions for their complex calculations. Reconfigurable hardware accelerators such as FPGA are usually used to accelerate neural network; But the main problem of these chips is their relatively high-power consumption. To reduce the power consumption in FPGA, the approximate calculation technique can be used. The main idea of approximate computing is to make compromise between accuracy and energy consumption by making changes in the circuit or code. In this research, a convolutional neural network has been designed and implemented to recognize handwritten digits in an accurate and approximate manner with the aim of improving the power consumption. This method reduces the power consumption by preventing the transmission of transfer digit in the low bits of the adder. The results of the comparison of the neural network accurately and approximately show that by approximating the 6 bits of the low weight of the adder, the power consumption is reduced by 43% and no error occurs. Also, by approximating 7 bits of low weight, with 20% error, the power consumption is reduced by 44.11%
[1] Y. Qian, et al., "Approximate logic synthesis in the loop for designing low-power neural network accelerator," in Proc. IEEE Int. Symp. on Circuits and Systems, 5 pp., Daegu, Korea, 22-28 May 2021.
[2] M. S. Ansari, B. F. Cockburn, and J. Han, "An improved logarithmic multiplier for energy efficient neural computing," IEEE Trans. on Computers, vol. 70, no. 4, pp. 614-625, Apr. 2020.
[3] www.altera.com
[4] M. Hamdan, "VHDL auto-generation tool for optimized hardware acceleration of convolutional neural networks on FPGA (VGT)," A thesis submitted to the graduate faculty, Iowa State University, 2018.
[5] C. L. Giles and C. W. Omlin, "Pruning recurrent neural networks for improved generalization performance," IEEE Trans. on Neural Networks, vol. 5, no. 5, pp. 848-851, Sept. 1994.
[6] M. S. Ansari, B. F. Cockburn, and J. Han, "An improved logarithmic multiplier for energy-efficient neural computing," IEEE Trans. on Computers, vol. 70, no. 4, pp. 614-625, Apr. 2021.
[7] F. Li, Y. Lin, and L. He, "FPGA power reduction using configurable dual-Vdd," in Proc. of the 41st Annual Design Automation Conf., pp. 735-740, San Diego, CA, USA, 7-11 Jun. 2004.
[8] K. Yin Kyaw, W. Ling Goh, and K. Seng Yeo, "Low-power high-speed multiplier for error-tolerant application," in ¬Proc. IEEE Int. Conf. of Electron Devices and Solid-State Circuits, 4 pp., Hong Kong, China, 15-17 Dec. 2010.
[9] S. S. P. Goswami, B. Paul, S. Dutt, and G. Trivedi, "Comparative review of approximate multipliers," in ¬Proc. 30th Int. Conf. Radioelektronika, 6 pp., Bratislava, Slovakia, 15-16 Apr.
2020. [10] M. Vasudevan and C. Chakrabarti, "In image processing using approximate datapath units," in ¬Proc. IEEE Int. Symp. on Circuits and Systems, pp. 1544-1547, Melbourne, Australia, 1-5 Jun. 2014.
[11] S. Ullah, et al., "Area-optimized low-latency approximate multipliers for FPGA-based hardware accelerators," in ¬Proc. 55th ACM/ESDA/IEEE Design Automation Conf., 6 pp., San Francisco, CA, USA 24-28 Jun. 2018.
[12] S. Ullah, S. Rehman, M. Shafique, and A. Kumar, "High-performance accurate and approximate multipliers for FPGA-based hardware accelerators," IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 41, no. 2, pp. 211-224, Feb. 2021.
[13] K. Nepal, Y. Li, R. I. Bahar, and S. Reda, "Automated high-level synthesis of low power/area approximate computing circuits," First Workshop on Approximate Computing Across the System Stack, 6 pp., Salt Lake City, UT, USA, 2-2 Mar. 2014.
[14] Y. Kim, Y. Zhang, and P. Li, "An energy efficient approximate adder with carry skip for error resilient neuromorphic VLSI systems," in ¬Proc. IEEE/ACM Int. Conf. on Computer-Aided Design, pp. 130-137, San Jose, CA, USA, 18-21 Nov. 2013.
[15] R. Venkatesan, A. Agarwal, K. Roy, and A. Raghunathan, "MACACO: modeling and analysis of circuits for approximate computing," in Proc. IEEE/ACM Int. Conf. on Computer-Aided Design, pp. 667-673, 7-10 Nov. 2011.
[16] D. P. Williamson and D. B. Shmoys, The Design of Approximation Algorithms, Cambridge University Press, vol. 1, pp. 14-15, 2011.
[17] H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger, "Architecture support for disciplined approximate programming," in Proc. Intl. Conf. Architectural Support for Programming Languages and Operating Systems, pp. 301-312, London, UK, 3-7 Mar. 2012.
[18] K. Lengwehasatit and A. Ortega, "Scalable variable complexity approximate forward DCT," IEEE Trans. on Circuits and Systems for Video Technology, vol. 14, no. 11, pp. 1236-1248, Nov. 2004.
[19] Z. Li, et al., "Laius: an 8-bit fixed-point CNN hardware inference engine," in Proc. IEEE Int. Symp. on Parallel and Distributed Processing with Applications and IEEE Int. Conf. on Ubiquitous Computing and Communications, pp. 143-150, Guangzhou, China, 12-15 Dec. 2017.
[20] T. Yang, T. Sato, and T. Ukezono, "An accuracy-configurable adder for low-power applications," IEICE Trans. on Electronics, vol. E103-C, no. 3, pp. 68-76, 2020.
[21] M. Sano, et al., "An accuracy-controllable approximate adder for FPGAs," in Proc. 4th Int. Symp. on Advanced Technologies and Applications in the Internet of Things, pp. 60-66, Ibaraki, Japan 24-26 Aug. 2022.
[22] D. Piyasena, R. Wickramasinghe, D. Paul, S. Lam, and M. Wu, "Reducing dynamic power in streaming CNN hardware accelerators by exploiting computational redundancies," in Proc. 29th Int. Conf. on Field Programmable Logic and Applications, pp. 354-359, Barcelona, Spain, 8-12 Sept. 2019.
نشریه مهندسی برق و مهندسی کامپیوتر ایران، ب- مهندسی کامپیوتر، سال 23، شماره 1، بهار 1404 51
مقاله پژوهشی
طراحی شتابدهنده تقریبی کمتوان بر بستر تراشههای FPGA
برای کاربردهای هوش مصنوعی
نادیا سهرابی، امیر باوفای طوسی و مهدی صدیقی
چکیده: یکی از روشهای یادگیری ماشین شبکههای عصبی میباشند که در کاربردهایی نظیر پردازش تصویر به کار میروند. یکی از چالشهای شبکههای عصبی، حجم بالای محاسبات آنهاست. به همین دلیل معماریهای زیادی برای این گونه کاربردها ارائه شده که راهحلهایی برای محاسبات پیچیده آنها ارائه میدهند. معمولاً برای تسریع الگوریتمهای شبکههای عصبی از شتابدهندههای سختافزاری قابل بازپیکربندی مانند تراشههای FPGA استفاده میشود؛ اما مشکل اصلی این تراشهها توان مصرفی نسبتاً بالای آنهاست. برای کاهش توان مصرفی در تراشههای FPGA از تکنیک محاسبات تقریبی میتوان استفاده کرد. ایده اصلی محاسبات تقریبی این است که با ایجاد تغییراتی در مدار یا کد، بین دقت و مصرف انرژی مصالحهای برقرار شود. در این پژوهش یک شبکه عصبی کانولوشنی برای تشخیص ارقام دستنویس بهصورت دقیق و تقریبی با هدف بهبود توان مصرفی طراحی و پیادهسازی شده است. ایده تقریبسازی در بخش محاسبات جمعکننده شبکه عصبی ارائه شده است. این روش با جلوگیری از انتشار رقم نقلی در بیتهای پایین جمعکننده، توان مصرفی را کاهش میدهد. نتایج مقایسه شبکه عصبی بهصورت دقیق و تقریبی نشان میدهد که با تقریبسازی 6 بیت وزن پایین جمعکننده، توان مصرفی 75/43% کاهش مییابد و هیچ خطایی رخ نمیدهد.
کلیدواژه: جمعکننده تقریبی، شبکه عصبی کانولوشنی، طراحی شبکه عصبی تشخیص ارقام دستنویس، محاسبات تقریبی.
1- مقدمه
امروزه در زمینه یادگیری ماشین، پیشرفتهای چشمگیری به وجود آمده است. یکی از پرکاربردترین مباحث در زمینه یادگیری ماشین شبکههای عصبی میباشد. شبکههای عصبی در کاربردهای مختلفی مانند پردازش تصویر، تشخیص صدا و فشردهسازی تصویر به کار میروند و از اهمیت بالایی برخوردار هستند.
شبکههای عصبی در هر لایه دارای حجم زیادی از محاسبات هستند و بهمنظور انجام کارهای پیچیدهتر و بیشتر، تعداد لایههای شبکههای عصبی افزایش مییابند. این لایهها شامل تعداد زیادی ضرب و جمع هستند که باید با سرعت بالایی انجام شوند. هرچه شبکههای عصبی بزرگتر میشوند و تعداد لایهها و سرعت پردازش آنها افزایش مییابند، مصرف انرژی آنها نیز افزایش مییابد. پژوهشگران به دنبال راهحلی برای کاهش و مدیریت این مصرف انرژی هستند.
از سوی دیگر، برخی از کاربردها میتوانند اندکی کاهش دقت در محاسبات خود را تحمل کنند، بدون این که عملکرد کلی آنها دچار آسیب جدی شود. چنین تحمل خطایی در یک الگوی طراحی و پیادهسازی جدید به نام محاسبات تقریبی2 میتواند مورد استفاده قرار گیرد. ایده اصلی محاسبات تقریبی این است که با ایجاد تغییراتی در مدار یا کد، بین دقت و مصرف انرژی یا برخی پارامترهای دیگر مصالحهای برقرار شود.
یکی از کاربردهایی که استفاده از محاسبات تقریبی در آن مناسب است، پیادهسازی شبکههای عصبی است [1]. مطالعات نشان دادهاند در شبکههای عصبی افزونگی3 وجود دارد [2]؛ بنابراین قابلیت تحملپذیری خطا نیز میتواند وجود داشته باشد که این امر زمینه را برای بهکارگیری محاسبات تقریبی مناسب میسازد. پس میتوان نتیجه گرفت که در شبکههای عصبی، ایجاد مصالحهای بین دقت و حجم محاسبات یک نیاز مهم است که طراحان را به چالش میکشد تا طراحی با کارایی بالاتر و بهرهوری انرژی بهتر ارائه دهند.
معمولاً برای تسریع در پردازش دادهها و الگوریتمهای شبکههای عصبی از پردازندههای خاصمنظوره، پردازندههای گرافیکی و یا شتابدهندههای سختافزاری استفاده میشود. نتایج مقایسهها نشان میدهد که طراحی ASIC به دلیل انعطافپذیری بسیار کم و پیچیدگی طراحی، معمولاً در کاربردهای خاصمنظوره مورد استفاده قرار میگیرد. همچنین تراشههای 4FPGA نسبت به پردازندههای گرافیکی کارایی بالاتر و توان مصرفی پایینتری دارند؛ اما طراحی آنها پیچیدهتر است [3].
سیستمهای قابل بازپیکربندی مانند تراشههای FPGA به دلیل قابلیت برنامهریزی مجدد، هزینه کمتر و سرعت توسعه و طراحی سریعتر نسبت به تراشههای ASIC برای کاربردهای یادگیری عمیق و هوش مصنوعی انتخاب مناسبتری هستند. استفاده از تراشههای قابل بازپیکربندی در طراحی شتابدهندههای یادگیری عمیق مرسوم بوده است؛ اما از نظر مصرف انرژی چالشهای زیادی و توان مصرفی بالایی دارند. به همین دلیل پژوهشهایی برای کاهش توان مصرفی آنها ارائه شده است [4].
در پژوهشهای پیشین برخی از رویکردهای رایج برای طراحی تقریبی شبکههای عصبی مانند هرس وزن5 و کاهش عرض بیتی داده را میتوان بهعنوان نمونههایی از تقریبسازی محاسبات در نظر گرفت [5]. همچنین
شکل 1: عملیات هرس وزن.
در برخی از پژوهشهای پیشین مانند [1] و [6] بر روی نوع دیگری از روشهای محاسبات تقریبی برای طراحی شتابدهندههای شبکه عصبی، یعنی جایگزینی مدارهای حسابی با نسخههای تقریبی آنها تمرکز شده است.
یکی دیگر از تکنیکهای متداول در مدارهای CMOS برای صرفهجویی انرژی، کاهش ولتاژ منبع تغذیه است [7]؛ اما این تکنیک معایبی دارد: 1) با کاهش ولتاژ، تأخیر گیتها و مدار افزایش مییابد. برای غلبه بر این مشکل ولتاژ آستانه را کاهش میدهند. 2) حاشیه نویز یکی از نگرانیهای مهم در طراحی مدارها و سیستمها میباشد. این تکنیک باعث تخریب حاشیه نویز امن مدار میشود. برای حل این گونه مشکلها روشهای جدیدی در برخی از پژوهشها ارائه شده است [8] و [9]. این پژوهشها با استفاده از اصول محاسبات تقریبی، تقریبهای کاربردی را برای طراحی انواع مختلف ضربکنندههای تقریبی با عملکرد متفاوت پیشنهاد میکنند. این پژوهشها بر روی تراشههای ASIC طراحی شدهاند و به دلیل تفاوتهای بین معماری تراشههای FPGA و ASIC، بیشتر این تکنیکها در صورت ترکیب مستقیم برای سیستمهای مبتنی بر تراشههای FPGA، کارایی محدودی را به همراه دارند [10]. به همین دلیل برای تأکید بیشتر بر نیاز به طراحی واحدهای تقریبی مبتنی بر تراشههای FPGA، مطالعاتی نظیر [11] و [12] انجام شده است.
همچنین در پژوهشهای پیشین طرحهای زیادی برای تقریبیکردن جمعکنندهها ارائه شده است [13] و [14].
در این مقاله، یک شتابدهنده شبکه عصبی عمیق از نوع شبکه عصبی کانولوشنی بر بستر تراشههای FPGA پیشنهاد شده که با تقریبیسازی بخش محاسبات، توان مصرفی تراشه را کاهش میدهد. هدف این پژوهش طراحی و پیادهسازی شتابدهندههای مبتنی بر تراشههای FPGA در کاربردهای هوش مصنوعی با استفاده از محاسبات تقریبی برای کاهش توان مصرفی میباشد. با توجه به ساختار شبکه عصبی کانولوشنی و حجم بالای پارامترهای این شبکه، جهت کاهش حجم محاسبات و کاهش توان مصرفی آن از ایده تقریبیسازی 6 بیت از 10 بیت مانتیس اعداد ممیز شناور در بخش محاسبات جمعکننده شتابدهنده استفاده شده است. تقریب مورد نظر پیچیدگی محاسباتی را کاهش داده و باعث بهبود توان مصرفی با حفظ دقت شبکه شده است.
جهت پیادهسازی شبکه عصبی و آموزش شبکه از ابزار متلب استفاده شده است. سپس با توجه به شبکه آموزشدیده در متلب و پارامترهای بهدستآمده از آن، شتابدهنده در سطح انتقال ثبات با استفاده از زبان توصیف سختافزار وریلاگ طراحی و در محیط ویوادو6 پیادهسازی شده و نهایتاً سنتز واحدها در محیط ویوادو انجام شده است. در این پژوهش از تراشهها و ابزارهای شرکت زایلینکس7 استفاده گردیده است.
در ادامه این مقاله در بخش دوم پژوهشهای پیشین و مرتبط در زمینه طراحی شتابدهندهها و محاسبات تقریبی بررسی شده است. در بخش سوم روش پیشنهادی شامل نوآوری و جزئیات روش شرح داده شده است. در بخش چهارم روش پیشنهادی مورد ارزیابی قرار گرفته و نتایج آن بررسی شده و نهایتاً بخش پنجم به نتیجهگیری اختصاص داده شده است.
2- پژوهشهای پیشین
در این بخش به بررسی برخی مطالعات انجامشده در زمینه شبکههای عصبی و محاسبات تقریبی پرداخته شده است. تکنیکهای محاسبات تقریبی را میتوان به دو دسته نرمافزاری8 [5] و [15] تا [18] و سختافزاری9 [11]، [12] و [19] تا [22] طبقهبندی کرد. هنگامی که تقریب در نرمافزار اعمال میشود، تغییرات الگوریتمی در کد ایجاد میشود تا دقت و توان مصرفی را جبران کند. در روشهای سختافزاری، تغییرات ممکن است بهصورت دستی در سطح مدار یا نظیر کارهای اخیر، با تغییر توصیف طراحی در سطوح بالاتر از طریق روشهای سنتز تا حدودی خودکار انجام شوند. روش هرس وزن، یک تکنیک نرمافزاری [5] برای
از بین بردن گرههای زائد و حفظ اتصالات مفید شبکههای عصبی است که میتواند منابع محاسباتی و ذخیرهسازی را کاهش دهد. عملیات هرس وزن سرعت را بهبود میبخشد و همچنین انرژی مورد نیاز را برای اجرای شبکههای بزرگ ضمن حفظ دقت پیشبینی کاهش میدهد. این روش ضمن حفظ دقت شبکه، یک شبکه عصبی متراکم را به یک شبکه عصبی تنک تبدیل میکند که باعث کاهش محاسبات و میزان حافظه مورد نیاز جهت ذخیرهسازی وزنها میشود. شکل 1 عملیات هرس وزن را نشان میدهد.
روش دیگر تقریبسازی، کاهش عرض بیتی داده میباشد. عرض بیتی تأثیر بسیاری در ساختار معماری شتابدهنده، واحدهای محاسباتی، دقت نتایج و میزان منابع مصرفی دارد. بررسیها نشان میدهد که در لایههای مختلف شبکههای عصبی، عرض بیتی متفاوتی مورد نیاز است. قالب عددی رایج برای کاربردهای یادگیری عمیق دقت تکبیتی (32بیتی) است؛ با این حال قالبهای با دقت کم، مزایایی مانند کاهش پیچیدگی و افزایش کارایی واحدهای محاسباتی دارند که بتوانند عملیاتی مانند ضرب و جمع ماتریس را تسریع کنند.
پژوهش [19] روشی برای شبکههای عصبی کانولوشنی ارائه میدهد که از محاسبات با دقت ثابت10 8بیتی استفاده میکند. این روش با کاهش دقت محاسبات از ممیز شناور به دقت ثابت 8بیتی، حجم دادهها و توان مصرفی را کاهش میدهد. این کاهش دقت تأثیر قابل توجهی بر دقت کلی مدل ندارد، زیرا شبکههای عصبی کانولوشنی نسبت به کاهش دقت تا حدی مقاوم هستند.
در [20] یک جمعکننده تقریبی به نام جمعکننده قابل پوشاندن رقم نقلی11 ارائه شده است. دلیل ارائه این جمعکننده آن است که میتواند برای کاربردهای مختلف بهصورت پویا دقت جمع را تغییر دهد. در [16]، 12CMA برای تراشههای ASIC طراحی شده است. در روش [20] برای یک جمعکننده هشتبیتی CMA از یک بیت MASK برای کنترل انتشار
شکل 2: جمعکننده تقریبی 4بیتی [16].
شکل 3: تمام جمعکننده قابل پوشاندن رقم نقلی [15].
رقم نقلی، یک نیمجمعکننده و 7 تمامجمعکننده استفاده شده است. در شکل 2 مدار یک جمعکننده تقریبی 4بیتی نشان داده شده است. در این جمعکننده، علاوه بر دو عدد ورودی و
و رقم نقلی
، یک ورودی جدید برای کنترل دقت به نام
تعبیه شده است.
روابط خروجی هر بلوک در عملیات جمع تقریبی در (1) و (2) نشان داده شده است
(1)
(2)
هنگامی که مقدار بیت ، 0 باشد جمعکننده جمع دقیق را انجام میدهد. هنگامی که مقدار بیت
1 باشد جمعکننده با جلوگیری از انتشار رقم نقلی از بیت پایین به بیت بالا، جمع تقریبی را انجام میدهد. در حالت تقریبی، نتیجه جمع حاصلجمع منطقی (OR) دو ورودی است؛ پس عدم انتشار بیت نقلی باعث کاهش توان مصرفی و تأخیر میشود.
در این جمعکننده با 1 قراردادن بیتهای وزن پایین بر روی 1 و
بیتهای وزن بالا بر روی 0، بیتهای وزن بالا بهطور دقیق محاسبه میشوند و بیتهای وزن پایین بهصورت تقریبی محاسبه میشوند؛ بنابراین با کنترل
بر اساس کاربرد میتوان مصالحهای را بین دقت، تأخیر و مصرف انرژی برقرار کرد (شکل 3).
در [20] CMA برای تراشههای ASIC طراحی گردیده است و نحوه پیادهسازی CMA بر روی تراشههای FPGA بررسی نشده است. اگر عبارات بولی CMA به ابزارهای سنتز تراشههای FPGA داده شود، هر تمامجمعکننده آن به یک یا دو جدول جستوجو نگاشت میشود. در این حالت، جداول جستوجو بهصورت سری به هم متصل میشوند. این پیادهسازی از نظر تأخیر و مصرف انرژی بهینه نیست؛ زیرا جداول جستوجو تأخیر و توان مصرفی بالایی دارند. به همین دلیل [21] روشی برای پیادهسازی CMA بر روی تراشههای FPGA ارائه داده است.
تراشههای FPGA دارای زنجیره رقم نقلی هستند. شکل 4 شماتیکی از یک جمعکننده دقیق 4بیتی را با استفاده از یک واحد زنجیره رقم نقلی
شکل 4: جمعکننده دقیق 4بیتی با زنجیره رقم نقلی [21].
شکل 5: معماری شبکه عصبی کانولوشنی تشخیص ارقام دستنویس.
نشان میدهد. واحد زنجیره رقم نقلی از 4 مالتیپلکسر، 4 دروازه XOR و 4 جدول جستوجو تشکیل شده است. در جمعکننده دقیق هر جدول جستوجو XOR دو ورودی را محاسبه میکند؛ در نتیجه، رقم نقلی از طریق جداول جستوجو منتشر نمیشود. نهایتاً این پژوهش با استفاده از جمعکننده تقریبی، جمعکننده شکل 4 را ارائه داده که در این جمعکننده از زنجیره رقم نقلی استفاده شده است [21].
پژوهش [22] با تمرکز بر تکرارهای محاسباتی در پردازش دادهها و عملیات در شبکههای عصبی کانولوشنی، روشی برای کاهش مصرف انرژی ارائه میدهد. این روش عملیات مشابه در فیلترها را شناسایی میکند و تنها آنها را یک بار اجرا میکند. سپس دادههای پردازششده
را برای سایر محاسبات باز استفاده میکند. حذف این تکرارها یا اشتراکگذاری محاسبات با کاهش بار محاسباتی و کاهش مصرف حافظه، منابع سختافزاری را آزاد میکند. روش پیشنهادی توانسته است با حفظ دقت توان پویا شتابدهنده را 79/10% تا 17/12% کاهش دهد. همچنین زمان اجرای لایههای مختلف را کاهش داده و باعث افزایش سرعت پردازش شده است.
3- پیادهسازی شتابدهنده تقریبی کمتوان
در این بخش، طراحی معماری شتابدهنده شبکه عصبی کانولوشنی در محیط متلب و پیادهسازی آن با زبان توصیف سختافزار وریلاگ در محیط ویوادو شرح داده شده است.
3-1 طراحی شبکه عصبی کانولوشنی تشخیص ارقام دستنویس
در این مقاله برای طراحی و آموزش شبکه عصبی کانولوشنی از جعبه ابزار یادگیری ماشین در محیط متلب استفاده شده است. متلب یک ابزار پرکاربرد برای یادگیری ماشین است و چندین توابع داخلی، جعبه ابزار و کتابخانه برای پشتیبانی از یادگیری ماشین ارائه میدهد. معماری مدل در شکل 5 نشان داده شده است. شبکه عصبی کانولوشنی برای طبقهبندی
شکل 6: مجموعه تصاویر ارقام دستنویس (MNIST).
اعداد دستنویس طراحی و پیادهسازی شده و شامل لایههای کانولوشن13، لایه ادغام14، لایه کاملاً متصل15 و تابع ReLU میباشد.
در این پژوهش برای آموزش و آزمودن شبکه از مجموعه تصاویر ارقام دستنویس (MNIST) استفاده شده است. ورودی شبکه یک عکس سیاه و سفید از ارقام دستنویس با ابعاد 28×28 پیکسل میباشد. هر پیکسل یک تصویر خاکستری است؛ به همین دلیل ورودی شبکه یک ماتریس دوبعدی از اعداد است که هر عدد مقداری بین ۰ و ۲۵۵ دارد که توسط ابزار متلب تبدیل به اعداد بین 0 و 1 شدهاند. مقدار صفر معادل با رنگ سیاه و مقدار ۲۵۵ معادل با رنگ سفید است. همان طور که در شکل 6 نشان داده شده است، هر عکس نشاندهنده یکی از اعداد 0 تا 9 از دیتاست MNIST میباشد و خروجی شبکه شامل ده کلاس (0 تا 9) است که هر کلاس امتیاز کسبشده توسط آن کلاس را نشان میدهد.
3-2 آموزش شبکه عصبی کانولوشنی تشخیص ارقام دستنویس
آموزش شبکه شامل تنظیم وزن نورونهای شبکه برای حداقلکردن تفاوت بین خروجی پیشبینیشده و خروجی واقعی است. این امر از طریق فرایندی به نام انتشار روبهجلو16 به دست میآید که الگوریتمی برای محاسبه گرادیان تابع هزینه با توجه به وزنهاست. شکل 7 نشاندهنده فرایند آموزش در محیط متلب میباشد. همان طور که در شکل نشان داده شده است، فرایند آموزش برای شبکه عصبی کانولوشنی تشخیص ارقام دستنویس در 10 دوره تکرار میشود و هر دوره شامل یک گذر کامل از مجموعه داده آموزشی است. در هر دوره پس از فرایند انتشار روبهجلو، با استفاده از تابع هزینه خطای خروجی محاسبه میشود.
پس از محاسبه خطای خروجی، در فرایند پسانتشار مشتق تابع هزینه محاسبه میشود و نهایتاً با استفاده از یک الگوریتم بهینهسازی مانند تابع گرادیان نزولی تصادفی 17(SGD) وزنها بهروزرسانی میشوند. وزن نورونها پس از هر دسته از نمونههای آموزشی بهروزرسانی میشود.
در طول فرایند آموزش، شبکه یاد میگیرد که ویژگیهای مهم ارقام دستنویس را شناسایی و آنها را در یکی از ده کلاس طبقهبندی کند. در شکل 7 دو نمودار دقت و خطای شبکه عصبی نشان میدهند وزنهای شبکه به گونهای تنظیم میشوند که با کاهش خطا مدل دقیقتری در طول زمان ایجاد شود. دقت تست شبکه عصبی کانولوشنی تشخیص ارقام دستنویس در این مدل 98% میباشد.
3-3 پیادهسازی شبکه عصبی کانولوشنی تشخیص ارقام دستنویس
در این پژوهش ابتدا مدل دقیق شبکه عصبی کانولوشنی و سپس مدل تقریبی آن شرح داده میشود. در شکل 8 ساختار کلی مدل و سلسلهمراتب آن نشان داده شده است. این شبکه به ترتیب دارای واحدهای کانولوشن، تابع فعالساز (ReLU)، ادغام و کاملاً متصل میباشد.
در این مدل، خروجی هر واحد، ورودی واحد بعدی آن است که هر واحد با یکشدن سیگنال شروع خود فعال میشود.
ورودیهای شبکه شامل سیگنال تکبیتی پالس ساعت، ریست و سیگنال شروع میباشد. خروجی شبکه شامل 16 بیت نشاندهنده امتیاز هر کلاس و سیگنال اتمام کار شبکه است. در این شبکه 784 پیکسل تصویر ورودی (16بیتی) در یک حافظه RAM ذخیره میشوند و بعد از یکشدن سیگنال فعالسازی شبکه، پیکسلها بهصورت سریالی از حافظه خوانده و به واحد کانولوشن ارسال میشوند.
برای پیادهسازی عملیات حسابی این شبکه مانند جمع و ضرب، یک واحد جمعکننده و ضربکننده ممیز شناور پیادهسازی شده است. در این دو واحد ورودیها (2 ورودی) اعداد 16بیتی شامل 1 بیت (بیت علامت)، 5 بیت نما و 10 بیت مانتیس است. همان طور که در شکل 9 نشان داده شده است، بیت علامت خروجی با انجام عملیات XOR بر روی بیت علامت ورودیها به دست میآید. سپس برای انجام عملیات ضرب یا جمع بعد از یکسانسازی نماها، ضرب یا جمع انجام میشود. نهایتاً پس از انجام نرمالسازی خروجی نهایی تولید میشود.
خروجی اصلی شبکه، شامل 10 عدد 16بیتی میباشد که خروجی هر نورون امتیاز آن کلاس را به ترتیب نشان میدهد. کلاسی که دارای بالاترین امتیاز است نشاندهنده کلاس صحیح میباشد.
3-4 طراحی جمعکننده تقریبی
در مطالعات اخیر پژوهشهای زیادی در سطوح مختلف طراحی از ترانزیستور تا معماری بر روی مدارهای محاسباتی تقریبی انجام شده است. در این مقاله برای تقریبسازی شبکه عصبی کانولوشن تشخیص ارقام دستنویس، با هدف کاهش توان مصرفی و حفظ دقت مطلوب از جایگذاری جمعکننده تقریبی بهجای جمعکننده دقیق استفاده شده است. دلیل انتخاب این جمعکننده قابلیت کنترل دقت مورد نیاز در تقریبسازی بر اساس کاربرد است. در ادامه به بررسی روش ارائهشده و مدل تقریبی شبکه عصبی پرداخته شده است.
3-5 جمعکننده و تفریقکننده تقریبی
در شکل 10 روابط جمعکننده دقیق و تقریبی نشان داده شده است. جمعکننده تقریبی استفادهشده در این مقاله بر اساس روابط جدول 1 روش تقریبسازی ارائه شده است. در این روش تقریبسازی در جمع و تفریق مانتیس اعداد ورودی، در جمعکننده ممیز شناور انجام میشود.
برای تقریبسازی در این پژوهش و رسیدن به دقت لازم شبکه و بهبود توان مصرفی از ایده تقریبسازی نیمی از بیتهای مانتیس اعداد ممیز شناور استفاده شده است. دلیل استفاده از این ایده در تقریبسازی در ادامه شرح داده شده است. پیکسلهای تصویر ورودی 784 عدد بین 0 تا 255 هستند که در ابزار متلب به اعدادی بین 0 و 1 تبدیل شدهاند. در مجموعه تصاویر ارقام دستنویس بهطور حدودی میتوان گفت نیمی از پیکسلهای هر تصویر، کمتر از حد وسط بازه و نیمی دیگر بیشتر از حد وسط بازه میباشند. به همین دلیل پیشبینی میشود که با
[1] این مقاله در تاریخ 22 اردیبهشت ماه 1403 دریافت و در تاریخ 16 دی ماه 1403 بازنگری شد.
نادیا سهرابی، دانشکده مهندسی کامپیوتر، دانشگاه صنعتی امیرکبیر، تهران، ایران،
(email: nadiasohrabi@aut.ac.ir).
امیر باوفای طوسی (نویسنده مسئول)، دانشكده كامپيوتر، دانشگاه سجاد، مشهد، ایران، (email: abavafat@sadjad.ac.ir).
مهدی صدیقی، دانشکده مهندسی کامپیوتر، دانشگاه صنعتی امیرکبیر، تهران، ایران، (email: msedighi@aut.ac.ir).
[2] . Approximate Computing
[3] . Redundancy
[4] . Field-Programmable Gate Array
[5] . Weight Pruning
[6] . Vivado
[7] . Xilinx
[8] . Software
[9] . Hardware
[10] . Fixed-Point
[11] . Maskable Carry Adder
[12] . Carry-Maskable Adder
[13] . Convolution Layer
[14] . Pooling Layer
[15] . Fully Connected Layer
[16] . Feed-Forward
[17] . Stochastic Gradient Descent
شکل 7: فرایند آموزش شبکه عصبی کانولوشنی تشخیص ارقام دستنویس.
شکل 8: معماري شبكه عصبی کانولوشنی تشخيص ارقام دستنويس.
شکل 9: ساختار واحد جمعکننده ممیز شناور.
تقریبیکردن نیمی از 11 بیت مانتیس جمعکننده (6 بیت وزن پایین)، حداقل 50% از اعداد دچار خطا نشوند. منظور از خطا تبدیلشدن اعداد مثبت به منفی و بالعکس میباشد.
در این شبکه واحد ReLU نقش بسیار مهمی در عملیات تقریبسازی شبکه عصبی کانولوشنی تشخیص ارقام دستنویس دارد؛ زیرا حد آستانه در این ماژول 0 میباشد. اگر تعداد اعداد دارای خطا زیاد باشد، واحد ReLU اعدادی که با خطا تبدیل به منفی شدهاند را صفر و اعدادی که مثبت شدهاند را بدون تغییر برمیگرداند. نهایتاً با انتشار خطا، دقت شبکه کاهش مییابد و ممکن است منجر به تشخیص اشتباه در برخی کلاسها
جدول 1: روابط جمع و تفریق تقریبی.
شود. در شکلهای 11و 12، تقریبسازی جمعکننده و تفریقکننده در شبکه تشخیص ارقام دستنویس در 6 بیت نشان داده شده است. این مدل برای تراشههای FPGA طراحی شده و برای انتشار رقم نقلی از واحد زنجیره رقم نقلی استفاده میکند.
از ایده جمعکننده تقریبی در انجام عملیات جمع و تفریق در واحد حسابی جمع ممیز شناور استفاده شده است. همان طور که گفته شد، در جدول 1 روابط استفادهشده برای هر بیت در جمع و تفریق دو ورودی در جمعکننده تقریبی آمده است. این جمعکننده در واحد جمعکننده ممیز شناور بعد از یکسانسازی نماها برای جمع و تفریق مانتیسها استفاده میشود. در واقع در واحد جمع و تفریق ممیز شناور با هدف کاهش توان مصرفی بهجای استفاده از عملگر و
، از این واحدهای تقریبی استفاده شده است.
در جدول 2، جدول درستی برای مقایسه نتایج بیتی جمعکننده تقریبی پیشنهادی و جمعکننده دقیق نشان داده شده است. نتایج نشان میدهند
شکل 10: روابط جمعکننده تقریبی و دقیق.
شکل 11: جمعکننده تقریبی 6بیتی.
شکل 12: تفریقکننده تقریبی 6بیتی.
جدول 2: مقایسه جدول درستی جمعکننده حالت تقریبی و حالت دقیق.
دقیق | تقریبی | |||||||||
x | y | Cin | P | G | S | Cout | P | G | S | Cout |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
که جمعکننده تقریبی در مقایسه با جمعکننده دقیق، زمانی که دو بیت ورودی 1 هستند، دارای خطاست.
4- ارزیابی
4-1 نتایج شبکه عصبی کانولوشنی تشخیص ارقام دستنویس بدون تقریب
در این بخش، نتایج امتیاز کلاسهای حاصل از فرایند آموزش و آزمودن شبکه عصبی از 10 تصویر تصادفی (هر عکس از یک کلاس) در دو محیط متلب و ویوادو به دست آمده و با هم مقایسه شدهاند. دیتاست تشخیص ارقام دستنویس شامل 60000 تصویر برای فرایند آموزش و 1000 تصویر برای فرایند آزمودن شبکه میباشد. همان طور که در
بخش 3 شکل 7 نشان داده شده است، نتایج بهدستآمده دقت شبکه را 04/98% نشان میدهد. همچنین نتایج نشان میدهند که امتیازهای هر کلاس در هر دو محیط مشابه هستند. جدول 3 نتایج امتیاز کلاسها را در محیط ویوادو نشان میدهد. در جدول 3 هر ستون، امتیازات مربوط به یک کلاس را نشان میدهد و بزرگترین عدد هر ستون نشاندهنده کلاس خروجی است. بهطور مثال در ستون چهارم، تصویر ورودی شبکه عصبی تشخیص ارقام دستنویس عدد 4 میباشد. بزرگترین عدد ستون چهارم عدد 88/16 است که متناظر با سطر چهارم میباشد. در نتیجه میتوان گفت خروجی متناظر با تصویر ورودی ستون چهارم، سطر چهارم (کلاس 4) است که نشاندهنده کلاس صحیح میباشد.
برای انجام عملیات شبیهسازی و سنتز از برد 7- Vertex و تراشه FPGA از همان خانواده استفاده شده است. جدول 4 درصد منابع مصرفی از این تراشه را نمایش میدهد. جدول 5 توان مصرفی شبکه عصبی کانولوشنی تشخیص ارقام دستنویس در حالت بدون تقریب را با فرکانس 50 مگاهرتز توسط ابزار ویوادو نشان میدهد.
جدول 3: نتایج شبیهسازی شبکه تشخیص ارقام دستنویس در محیط ویوادو.
9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | شماره کلاس |
82/2- | 705/0 | 09/1 | 82/7 | 23/3- | 22/9- | 54/2 | 41/5 | 87/2- | 76/16 | 0 |
91/3- | 37/7- | 54/0 | 02/6- | 85/4- | 09/7 | 08/4- | 79/7 | 33/14 | 54/7- | 1 |
309/3- | 31/0- | 21/7 | 13/2 | 27/0 | 69/1- | 807/8 | 22/17 | 47/0 | 60/4 | 2 |
98/0- | 41/4 | 64/0- | 38/2 | 79/2- | 004/8- | 82/15 | 95/0 | 62/2- | 09/0 | 3 |
56/0 | 43/8- | 07/0 | 32/7- | 32/4- | 88/16 | 03/9- | 01/4- | 68/5 | 27/5- | 4 |
03/0 | 31/5 | 17/2 | 42/2 | 73/11 | 51/0- | 601/7 | 18/2- | 03/1 | 28/4 | 5 |
68/6- | 99/0- | 92/10- | 31/18 | 61/0 | 95/2- | 34/2- | 76/6 | 48/0 | 04/10 | 6 |
74/8 | 36/6- | 19/21 | 48/9- | 98/1- | 16/8 | 65/2- | 04/4- | 43/5 | 93/7- | 7 |
31/5 | 98/10 | 809/0- | 54/5 | 93/4 | 76/6 | 93/2 | 07/0 | 60/1- | 53/3 | 8 |
82/14 | 43/5 | 24/12 | 11/0- | 47/0 | 702/11 | 32/1 | 27/1 | 76/1 | 205/1 | 9 |
جدول 4: درصد منابع مصرفی شبکه عصبی کانولوشنی تشخیص ارقام دستنویس در حالت بدون تقریب.
درصد منابع مصرفی | منابع مصرفی | منابع در دسترس | منبع |
84/53 | 186504 | 346400 | واحد LUT |
04/0 | 64 | 174200 | واحد LUTRAM |
27/11 | 78081 | 692800 | فلیپفلاپ |
69/4 | 135 | 2880 | واحد DSP |
جدول 5: درصد توان مصرفی شبکه عصبی کانولوشنی تشخیص ارقام دستنویس در حالت بدون تقریب.
پویا | ایستا | ||||
W 306/1 | W 335/0 | ||||
سیگنال | logic | BRAM | DSP | I/O | |
604/0 | 580/0 | 001/0 | 051/0 | 001/0 |
جدول 6: نتایج حاصل از تقریبسازی 6 بیت.
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | شماره کلاس | |
73/0 | 43/0 | 74/1 | 49/8 | 65/1- | 91/4- | 24/5 | 24/6 | 03/2- | 99/14 | 0 |
98/16 | 17/2- | 87/3 | 86/1- | 98/0- | 24/8 | 81/0- | 74/7 | 99/12 | 53/2- | 1 |
74/7 | 28/0- | 49/8 | 35/3 | 42/0- | 61/1- | 24/7 | 49/13 | 46/0 | 24/4 | 2 |
71/1- | 24/4 | 108/0- | 12/4 | 06/0- | 46/5- | 49/15 | 56/1 | 05/0- | 74/1 | 3 |
99/9 | 35/3- | 37/3 | 902/3- | 24/0 | 99/14 | 39/1- | 54/1- | 99/4 | 02/1- | 4 |
98/29 | 42/5 | 99/1 | 99/2 | 99/9 | 009/0 | 99/8 | 53/0- | 81/1 | 87/3 | 5 |
37/2- | 64/0 | 66/5- | 99/14 | 06/1 | 84/0- | 005/0 | 49/7 | 34/0 | 78/3 | 6 |
74/7 | 32/4- | 98/19 | 7/5- | 05/1- | 87/6 | 58/0- | 82/1- | 35/5 | 07/6- | 7 |
41/0- | 46/10 | 88/0 | 49/5 | 99/8 | 99/8 | 99/5 | 12/7 | 33/0 | 24/4 | 8 |
97/33 | 23/6 | 99/13 | 12/1 | 24/3- | 49/12 | 06/2 | 62/2 | 17/3 | 62/3 | 9 |
جدول 7: درصد منابع مصرفی کل شبکه عصبی کانولوشنی تشخیص ارقام دستنویس در حالت تقریبی.
منابع مصرفی | منابع در دسترس | منبع | |
33/50 | 17434 | 346400 | واحد LUT |
04/0 | 64 | 174200 | واحد LUTRAM |
28/11 | 78068 | 692800 | فلیپفلاپ |
69/4 | 135 | 2880 | واحد DSP |
4-2 نتایج شبکه عصبی تشخیص ارقام دستنویس تقریبی
همان طور که در بخش سوم ذکر شد، برای پیادهسازی عملیات حسابی مانند جمع و ضرب، یک واحد جمعکننده و ضربکننده ممیز شناور پیادهسازی شده است. در این روش برای تقریبسازی شبکه عصبی از جایگذاری جمعکننده تقریبی بهجای جمعکننده دقیق استفاده شده است. همان طور که در بخش 3 شرح داده شد، پیشبینی میشود با تقریبیکردن نیمی از 11 بیت مانتیس جمعکننده (6 بیت وزن پایین)، حداقل 50%
از اعداد دچار خطا نشوند. در نتیجه برای تقریبسازی شبکه تشخیص ارقام دستنویس و دستیابی به دقت لازم و تشخیص کلاس صحیح، تقریبسازی 6 بیت از 11 بیت مانتیس آزموده شده است.
جدول 6 نتایج حاصل از تقریبسازی 6 بیت بر روی کلاسهای 0 تا
9 را نشان میدهد و هر ستون نشاندهنده امتیازهای مربوط به آن کلاس است.
نتایج نشان میدهد که با تقریبسازی 6 بیت از 11 بیت، دقت شبکه تشخیص ارقام دستنویس حفظ میشود. در جدول 7 درصد منابع مصرفی شبکه عصبی تشخیص ارقام دستنویس نشان داده شده است. همچنین در جدول 8 مقایسهای از توان مصرفی کل شبکه عصبی تشخیص ارقام دستنویس در حالت تقریبی و حالت دقیق (بدون در نظر گرفتن بیتهای تقریبی) نشان داده شده است.
مقایسه نتایج دو حالت بدون تقریب و با تقریب نشان میدهد که
با تقریبیسازی 6 بیت در شبکه عصبی کانولوشنی تشخیص ارقام دستنویس به دلیل کاهش تعداد دروازهها، توان مصرفی پویا در
بخش منطق و سیگنالها بهبود چشمگیری دارد و نهایتاً توان مصرفی
کل 75/43% کاهش مییابد. حال برای بهبود بیشتر توان مصرفی،
جدول 8: مقایسه توان مصرفی کل شبکه عصبی کانولوشنی تشخیص ارقام دستنویس حالت بدون تقریب و حالت تقریبی.
تقریبی | دقیق | ||||||||||
923/0 | 641/1 | ||||||||||
پویا | ایستا | پویا | ایستا | ||||||||
594/0 | 329/0 | 306/1 | 335/0 | ||||||||
سیگنال | logic | BRAM | DSP | I/O | سیگنال | logic | BRAM | DSP | I/O | ||
247/0 | 248/0 | 001/0 | 027/0 | 001/0 | 604/0 | 580/0 | 001/0 | 051/0 | 001/0 |
جدول 9: نتایج حاصل از تقریبسازی 7 بیت.
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | شماره کلاس | |
53/0 | 81/0 | 12/1 | 99/7 | 34/0- | 65/2- | 49/4 | 99/5 | 909/0- | 99/11 | 0 |
99/8 | 53/0- | 49/5 | 34/0- | 32/0 | 99/6 | 68/0 | 99/7 | 99/10 | 67/0- | 1 |
74/3 | 06/1 | 99/7 | 87/0- | 99/0- | 38/0- | 99/6 | 99/12 | 99/0 | 24/3 | 2 |
62/0 | 99/6 | 23/0- | 99/5 | 87/1 | 96/2- | 98/19 | 99/3 | 68/0 | 99/1 | 3 |
49/8 | 52/0- | 74/4 | 36/0- | 37/2 | 99/12 | 74/0 | 405/0 | 49/4 | 62/0 | 4 |
98/17 | 49/4 | 99/2 | 74/3 | 99/10 | 12/1 | 48/7 | 007/0- | 49/2 | 49/5 | 5 |
43/1- | 42/0- | 29/3- | 99/11 | 49/2 | 68/0- | 002/0- | 49/5 | 28/0 | 49/7 | 6 |
49/3 | 74/2- | 98/17 | 12/4- | 24/0- | 99/9 | 49/4 | 00006/0- | 99/4 | 37/2- | 7 |
98/17 | 49/10 | 74/0- | 99/5 | 49/8 | 99/8 | 496/5 | 49/4 | 09/1 | 99/5 | 8 |
98/17 | 99/8 | 99/11 | 99/2 | 49/4 | 99/15 | 748/3 | 99/2 | 24/4 | 74/3 | 9 |
جدول 10: نتایج تقریبسازی جمعکننده روی بیتهای مختلف.
دقیق | 00000000000 | 00000000001 | 00000000010 | 00000000011 | 00000000100 | 00000000101 | |
0 | 03/1 | 03/1 | 06/1 | 05/1 | 08/1 | 08/1 | 04/1 |
1 | 44/0 | 44/0 | 56/0 | 59/0 | 67/0 | 63/0 | 69/0 |
2 | 11/7 | 11/7 | 13/7 | 09/7 | 01/7 | 94/6 | 94/6 |
3 | 69/0- | 71/0- | 69/0- | 68/0- | 73/0- | 701/0- | 834/0- |
4 | 08/0 | 08/0 | 19/0 | 28/0 | 38/0 | 41/0 | 61/0 |
5 | 13/2 | 13/2 | 13/2 | 11/2 | 15/2 | 11/2 | 16/2 |
6 | 89/10- | 89/10- | 68/10- | 52/10- | 19/10- | 37/10- | 23/10- |
7 | 11/21 | 11/21 | 13/21 | 11/21 | 73/20 | 36/21 | 98/20 |
8 | 7/0- | 7/0- | 66/0- | 56/0- | 509/0- | 612/0- | 503/0- |
9 | 36/12 | 36/12 | 37/12 | 46/12 | 33/12 | 51/12 | 57/12 |
تقریبسازی 7 بیت از 10 بیت مانتیس آزموده شده است. نتایج حاصل از جدول 9 نشان میدهد تقریبسازی 7 بیت در برخی از کلاسها دچار تشخیص اشتباه میشود. این مشکل ناشی از آن است که بیش از نیمی از بیتهای مانتیس تقریبی شده و در زمان انجام عملیات جمع، خطا در واحد کانولوشن انتشار مییابد. سپس در خروجی کانولوشن برخی از اعداد مثبت را تبدیل به منفی و برخی از اعداد منفی را مثبت میکند.
در نهایت انتشار این خطا باعث تشخیص کلاس اشتباه میشود و نتایج نشان میدهد با افزایش تعداد بیتهای تقریبیسازیشده از 6 بیت به
7 بیت، با ایجاد 20% خطا توان مصرفی 91/44% کاهش مییابد.
جداول 10 و 11 نتایج خروجی شبکه کانولوشنی حاصل از تقریبیسازی بیتهای مختلف را بر روی ورودی تصویر رقم دستنویس 7 نشان میدهد. همان طور که پیشبینی میشد با توجه به حفظ دقت شبکه در تقریبیسازی 6 بیت، در تقریبسازی با سایر بیتهای کمتر از 6، کلاس درست شناسایی شده است.
بهمنظور بررسی عملکرد روش پیشنهادی، نتایج بهدستآمده در این مقاله با نتایج [19] و [22] مقایسه شده است. هدف از این مقایسه، ارزیابی میزان بهبود دقت و کاهش توان مصرفی در شرایط مشابه میباشد. همان طور که در جدول 12 نشان داده شده است، روش پیشنهادی با 75/43% بهبود در توان مصرفی و 11/50% بهبود در تأخیر نسبت به روش ارائهشده در [19] که دارای 77/32% بهبود توان مصرفی و 15/21% بهبود در تأخیر است و همچنین روش [22] که 79/10% تا 17/12% بهبود توان مصرفی دارد، عملکرد بهتری را ارائه میدهد. این نتایج نشاندهنده اثربخشی قابل توجه روش پیشنهادی در بهینهسازی مصرف انرژی است. همچنین لازم به ذکر است روش پیشنهادی در مقایسه با دو روش ذکرشده، هیچ گونه کاهش دقتی نداشته که نشاندهنده حفظ کیفیت نتایج بهدستآمده است.
5- نتیجهگیری
یکی از پرکاربردترین مباحث در زمینه یادگیری ماشین، شبکههای عصبی هستند. در این شبکهها برای رسیدن به دقت بالا در خروجی، تعداد پارامترهای شبکه (وزنها) افزایش مییابند و باعث افزایش حجم پردازش دادههای شبکه میشوند؛ پس نیاز به تسریع پردازش دادههای شبکه است.
جدول 11: نتایج تقریبسازی جمعکننده روی بیتهای مختلف.
دقیق | 00000000110 | 00000000111 | 00000001000 | 0000001111 | 00000011111 | 00000111111 | 00001111111 | |
0 | 03/1 | 10/1 | 14/1 | 01/1 | 97/0 | 79/0 | 74/1 | 12/1 |
1 | 44/0 | 83/0 | 82/0 | 81/0 | 64/1 | 37/2 | 87/3 | 49/5 |
2 | 11/7 | 12/7 | 02/7 | 93/6 | 99/6 | 12/7 | 49/8 | 99/7 |
3 | 71/0- | 73/0- | 601/0- | 74/0- | 55/0- | 71/0- | 108/0- | 23/0- |
4 | 08/0 | 66/0 | 79/0 | 71/0 | 37/1 | 18/2 | 37/3 | 74/4 |
5 | 13/2 | 16/2 | 19/2 | 13/2 | 209/2 | 14/2 | 99/1 | 99/2 |
6 | 89/10- | 06/10- | 68/9- | 13/10- | 93/8- | 66/7- | 66/5- | 29/3- |
7 | 1/21 | 11/21 | 86/20 | 86/20 | 98/20 | 98/20 | 98/19 | 98/17 |
8 | 69/0- | 47/0- | 24/0- | 38/0- | 09/0- | 503/0 | 88/0 | 74/0- |
9 | 36/12 | 58/12 | 43/12 | 62/12 | 49/12 | 24/13 | 99/13 | 99/11 |
جدول 12: بررسی عملکرد روش پیشنهادی.
پژوهش | دیتاست | دقت | بهبود تأخیر | بهبود توان مصرفی |
[19] Zhisheng, et al. | MNIST | 19/98% | 15/21% | 77/32% |
[22] Piyasena, et al. | MNIST | 9/99% | - | 79/10% تا 17/12% |
روش پیشنهادی | MNIST | 100% | 11/50% | 75/43% |
یکی از روشهای تسریع الگوریتمهای شبکههای عصبی، استفاده از شتابدهندههای سختافزاری است. معمولاً از یک بستر همهمنظوره مانند طراحی ASIC به دلیل انعطافپذیری بسیار کم و پیچیدگی طراحی در کاربردهای خاصمنظوره استفاده میشود. به همین جهت در این مقاله برای پیادهسازی شبکه عصبی کانولوشنی از بستر تراشههای FPGA (به نظر مصرف انرژی چالشهایی دارند. یکی از روشهای کاهش توان مصرفی استفاده از مفهوم محاسبات تقریبی در تراشههای FPGA است. همچنین مطالعات نشان دادهاند در شبکههای عصبی قابلیت تحملپذیری خطا میتواند وجود داشته باشد که این امر زمینه را برای بهکارگیری محاسبات تقریبی مناسب میسازد.
در این مقاله از شبکه عصبی کانولوشنی برای تشخیص ارقام دستنویس استفاده شده است. برای تسریع محاسبات، این شبکه تشخیص ارقام دستنویس بر روی یک تراشه FPGA پیادهسازی شده است. ایده تقریبسازی برای کاهش توان مصرفی در بخش عملیات جمع پیادهسازی شده است. با استفاده از روش پیشنهادی و تقریبسازی 6 بیت از 10 بیت جمع مانتیس اعداد ممیز شناور به علت سادهسازی مدار در سطح گیت با حفظ دقت لازم پیچیدگی محاسبات شبکه کاهش مییابد و همچنین توان مصرفی 75/43% بهبود مییابد. با افزایش تعداد بیت تقریبسازی از 6 بیت به 7 بیت با ایجاد 20% خطا، توان مصرفی 91/44% کاهش مییابد که این میزان خطا با توجه به توان مصرفی مناسب نیست و تقریبسازی روی 6 بیت مناسبتر است.
6- کارهای آینده
ضربکنندهها در واحدهای محاسباتی شبکههای عصبی، کاربرد و مصرف انرژی بالایی دارند؛ به همین دلیل به نظر میرسد که با پژوهش بر روی تقریبسازی ساختار ضربکنندههای شبکه عصبی کانولوشنی میتوان توان مصرفی را باز هم بیشتر بهبود داد. همچنین میتوان استفاده از مدارهای محاسباتی تقریبی را برای سایر انواع شبکههای یادگیری عمیق با هدف بهبود مصرف انرژی، مساحت یا کارایی بررسی کرد.
مراجع
[1] Y. Qian, et al., "Approximate logic synthesis in the loop for designing low-power neural network accelerator," in Proc. IEEE Int. Symp. on Circuits and Systems, 5 pp., Daegu, Korea, 22-28 May 2021.
[2] M. S. Ansari, B. F. Cockburn, and J. Han, "An improved logarithmic multiplier for energy efficient neural computing," IEEE Trans. on Computers, vol. 70, no. 4, pp. 614-625, Apr. 2020.
[3] www.altera.com
[4] M. Hamdan, "VHDL auto-generation tool for optimized hardware acceleration of convolutional neural networks on FPGA (VGT)," A thesis submitted to the graduate faculty, Iowa State University, 2018.
[5] C. L. Giles and C. W. Omlin, "Pruning recurrent neural networks
for improved generalization performance," IEEE Trans. on Neural Networks, vol. 5, no. 5, pp. 848-851, Sept. 1994.
[6] M. S. Ansari, B. F. Cockburn, and J. Han, "An improved logarithmic multiplier for energy-efficient neural computing," IEEE Trans. on Computers, vol. 70, no. 4, pp. 614-625, Apr. 2021.
[7] F. Li, Y. Lin, and L. He, "FPGA power reduction using configurable dual-Vdd," in Proc. of the 41st Annual Design Automation Conf., pp. 735-740, San Diego, CA, USA, 7-11 Jun. 2004.
[8] K. Yin Kyaw, W. Ling Goh, and K. Seng Yeo, "Low-power
high-speed multiplier for error-tolerant application," in Proc. IEEE Int. Conf. of Electron Devices and Solid-State Circuits, 4 pp., Hong Kong, China, 15-17 Dec. 2010.
[9] S. S. P. Goswami, B. Paul, S. Dutt, and G. Trivedi, "Comparative review of approximate multipliers," in Proc. 30th Int. Conf. Radioelektronika, 6 pp., Bratislava, Slovakia, 15-16 Apr. 2020.
[10] M. Vasudevan and C. Chakrabarti, "In image processing using approximate datapath units," in Proc. IEEE Int. Symp. on Circuits and Systems, pp. 1544-1547, Melbourne, Australia, 1-5 Jun. 2014.
[11] S. Ullah, et al., "Area-optimized low-latency approximate multipliers for FPGA-based hardware accelerators," in Proc. 55th ACM/ESDA/IEEE Design Automation Conf., 6 pp., San Francisco, CA, USA 24-28 Jun. 2018.
[12] S. Ullah, S. Rehman, M. Shafique, and A. Kumar, "High-performance accurate and approximate multipliers for FPGA-based hardware accelerators," IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 41, no. 2, pp. 211-224, Feb. 2021.
[13] K. Nepal, Y. Li, R. I. Bahar, and S. Reda, "Automated high-level synthesis of low power/area approximate computing circuits," First Workshop on Approximate Computing Across the System Stack, 6 pp., Salt Lake City, UT, USA, 2-2 Mar. 2014.
[14] Y. Kim, Y. Zhang, and P. Li, "An energy efficient approximate adder with carry skip for error resilient neuromorphic VLSI systems," in Proc. IEEE/ACM Int. Conf. on Computer-Aided Design, pp. 130-137, San Jose, CA, USA, 18-21 Nov. 2013.
[15] R. Venkatesan, A. Agarwal, K. Roy, and A. Raghunathan, "MACACO: modeling and analysis of circuits for approximate computing," in Proc. IEEE/ACM Int. Conf. on Computer-Aided Design, pp. 667-673, 7-10 Nov. 2011.
[16] D. P. Williamson and D. B. Shmoys, The Design of Approximation Algorithms, Cambridge University Press, vol. 1, pp. 14-15, 2011.
[17] H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger, "Architecture support for disciplined approximate programming," in Proc. Intl. Conf. Architectural Support for Programming Languages and Operating Systems, pp. 301-312, London, UK, 3-7 Mar. 2012.
[18] K. Lengwehasatit and A. Ortega, "Scalable variable complexity approximate forward DCT," IEEE Trans. on Circuits and Systems for Video Technology, vol. 14, no. 11, pp. 1236-1248, Nov. 2004.
[19] Z. Li, et al., "Laius: an 8-bit fixed-point CNN hardware inference engine," in Proc. IEEE Int. Symp. on Parallel and Distributed Processing with Applications and IEEE Int. Conf. on Ubiquitous Computing and Communications, pp. 143-150, Guangzhou, China, 12-15 Dec. 2017.
[20] T. Yang, T. Sato, and T. Ukezono, "An accuracy-configurable adder for low-power applications," IEICE Trans. on Electronics, vol. E103-C, no. 3, pp. 68-76, 2020.
[21] M. Sano, et al., "An accuracy-controllable approximate adder for FPGAs," in Proc. 4th Int. Symp. on Advanced Technologies and Applications in the Internet of Things, pp. 60-66, Ibaraki, Japan 24-26 Aug. 2022.
[22] D. Piyasena, R. Wickramasinghe, D. Paul, S. Lam, and M. Wu, "Reducing dynamic power in streaming CNN hardware accelerators by exploiting computational redundancies," in Proc. 29th Int. Conf. on Field Programmable Logic and Applications, pp. 354-359, Barcelona, Spain, 8-12 Sept. 2019.
نادیا سهرابی تحصیلات خود را در مقطع کارشناسی مهندسی کامپیوتر در سال 1399 از دانشگاه صنعتی شاهرود به پایان رسانده و در سال 1402 موفق به اخذ مدرک کارشناسی ارشد مهندسی کامپیوتر با گرایش معماری کامپیوتر از دانشگاه صنعتی امیرکبیر گردیده است. وی در طول دوران تحصیل خود بر حوزههای مرتبط با طراحی دستگاههای دیجیتال و سختافزارهای هوش مصنوعی تمرکز داشته است. زمینههای تحقیقاتی مورد علاقه وی شامل طراحی سختافزارهای کممصرف، شتابدهندههای هوش مصنوعی، معماری دستگاههای یادگیری عمیق، و پیادهسازی الگوریتمهای یادگیری ماشین بر بستر FPGA میباشد.
امیر باوفای طوسی با هدف شکستن مرز دانشهای عملی و تجربی در مهندسی کامپیوتر بهمنظور حل مشکلات صنعتی کشور و پرورش دانشجویان با مهارت از سال 1379 همکاری خود را با دانشکده کامپیوتر دانشگاه سجاد آغاز نمود. وی از سال 1401 مدیر گروه دانشکده کامپیوتر دانشگاه سجاد و فارغالتحصیل دکتری مهندسی کامپیوتر از دانشگاه صنعتی امیرکبیر در سال 1399 میباشد. نامبرده با تدریس دروس آزمون المپیاد کامپیوتر همچون معماری کامپیوتر، مدارهای منطقی و سیستمعامل با همکاری سایر اساتید سجاد دانشجویانی پرورش داده است که از سال 1390 تاکنون هرسال در آزمون نهایی المپیاد دانشجویی رتبههای تکرقمی و کمتر از 50 کشور و در آزمون کارشناسی ارشد کامپیوتر از سال 1381 تاکنون رتبههای دورقمی و برتر کشور را کسب میکنند. ایشان مقام دوم پژوهشهای توسعهای در بیستمین جشنواره بینالمللی خوارزمی و دارای USPatent میباشد. ایشان با عقد قرارداد صنعتی در سال 1390 آزمایشگاه پژوهشی ESRL را تأسیس نمود. زمینههای تحقیقاتی ایشان عباراتاند از: FPGA و سنتز دیجیتال، شتابدهندههای هوش مصنوعی، کاربردهای پردازش تصویر، سیستمهای هوشمند، پردازشهای سریع و برنامهنویسی موازی، اینترنت اشیاء، سیستمهای توزیعشده و محاسبات ابری میباشد.
مهدي صديقي در سال 1369 مدرك كارشناسي مهندسي برق گرايش سختافزار كامپيوتر خود را از دانشگاه صنعتی شريف، و در سالهاي 1373 و 1377 مدارك كارشناسي ارشد و دكتراي خود را در رشته مهندسي برق و كامپيوتر از دانشگاه كلرادو در بولدر آمريكا دريافت نمود. در فاصله سالهای 1375 تا 1380 ايشان بهعنوان طراح ارشد دستگاههای ديجيتال در شركتهاي مختلفي در دره سيليكون به كار مشغول بود. از سال 1380 تاكنون دكتر صديقي عضو هیأتعلمی دانشكده مهندسي كامپيوتر و فناوري اطلاعات دانشگاه صنعتي اميركبير میباشد. زمینههای علمي موردعلاقه ايشان شامل محاسبات كوانتومي، سنتز دستگاههای حسابي، و دستگاههای نهفته میباشد.