تراشه‌هایی هوشمند همسو با محاسباتی هوشمند‌تر
پردازش درون‌حافظه‌ای: راهکاری برای سامانه‌های هوشمند آینده
رایانش درون‌حافظه‌ای (In-Memory Computing یا Computational Memory) یک مفهوم نسبتا جدید است و در این روش سعی می‌شود از خصوصیات فیزیکی ابزارهای ذخیره‌سازی، هم برای ذخیره‌سازی و هم برای پردازش اطلاعات استفاده شود.

 این برخلاف معماری فعلی کامپیوترهای شخصی یا تلفن‌های همراه است که در آن،‌ داده‌‌‌ها بین حافظه و پردازنده در رفت‌وآمد هستند و همین سبب کاهش سرعت و افزایش مصرف انرژی می‌شود. حال زمان آن رسیده که سخت‌افزارهایی با معماری جدید پیشنهاد شوند. کارشناسان با توجه به نیازهای پردازشی امروزی به‌ویژه در حوزه هوش مصنوعی، معتقدند چاره‌ای نداریم جز این‌که با یافتن معماری‌های جدید، به طریقی این واحدهای پردازشی و ذخیره‌سازی را به یکدیگر نزدیک کنیم. در این مقاله مثال‌هایی می‌آوریم از تلاش‌هایی که در این زمینه صورت گرفته است.
در کامپیوترهای امروزی که غالبا مبتنی بر معماری فون‌نویمان(Von Neumann) هستند، تراشه پردازنده از تراشه ذخیره‌سازی داده جداست و راه‌های ارتباطی بین این دو محدود است. این مسیر ارتباطی توانایی پشتیبانی از حجم بسیار زیادی از داده‌هایی را که باید بین پردازنده و حافظه ردوبدل شوند، ندارد. تاریخچه معماری فون‌نویمان به دهه ۴۰ میلادی بازمی‌گردد. این معماری امکان ساخت کامپیوترهایی را فراهم کرد که می‌توانستند دستورالعمل‌ها را در حافظه خود ذخیره کنند و هنوز هم ستون فقرات کامپیوترهای امروزی محسوب می‌شوند. با استفاده از فناوری‌های فعلی تولید تراشه‌ها و با توجه به فضای بسیار محدود موجود روی آن‌ها، نمی‌توان این دو بخش جدا افتاده را به حد کافی به هم نزدیک کرد و مسیرهای ارتباطی کوتاه‌تری داشت. البته این را هم نباید از یاد ببریم که ترانزیستورهای سیلیکونی مورداستفاده در ساخت این تراشه‌ها، دیگر آن‌طور که باید امکان افزایش سرعت را ندارند. Naresh Shanbhag، مهندس کامپیوتر دانشگاه ایلی‌نویز، از جمله کارشناسانی است که معتقد است برای پردازش حجم زیاد داده‌هایی که امروز در اختیار داریم، نیازمند سخت‌افزاری با معماری جدید هستیم که در آن تا حد امکان، واحد پردازش به واحد ذخیره‌سازی نزدیک‌تر باشد. به‌طور مثال، یک برنامه ساده مبتنی بر هوش مصنوعی را در نظر بگیرید که وظیفه آن شناسایی چهره یک شخص در یک عکس است. هوش مصنوعی با انجام مجموعه‌ای از عملیات ریاضی این کار را انجام می‌دهد. در چنین مثالی، میزان انرژی صرف شده برای انتقال داده از حافظه به پردازنده، ده تا صد برابر بیشتر از میزان انرژی صرف شده برای پردازش اصلی است. این نکته در مورد اغلب الگوریتم‌های هوش مصنوعی که روی سخت‌افزارهای مبتنی بر معماری فعلی اجرا می‌شوند، صدق می‌کند. Subhasish Mitra، مهندس برق دانشگاه استنفورد می‌گوید: «جهان به‌تدریج در حال درک این موضوع است که باید فکری برای این مشکل کرد.» او نیز معتقد است: «واحد پردازش باید تا حد امکان به واحد ذخیره‌سازی داده نزدیک شود؛ اما پرسش اینجاست؛ چقدر نزدیک‌.»

محاسبات نفس‌گیر شبکه‌های عصبی

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


مطلب پیشنهادی

اختراع شبکه‌ عصبی پلاستیکی شبیه به مغز انسان

 دانشگاه ایلی نویز

Naresh Shanbhag و گروهش روی معماری جدیدی کار می‌کنند که این امکان را فراهم کند تا بخشی از محاسبات هوش مصنوعی، در نزدیکی حافظه انجام شوند. در این راهکار جدید، مدارهای کنترل آنالوگ، آرایه‌ سلول‌های حافظه را در برمی‌گیرند. در این معماری، به‌جای ارسال داده‌ها به پردازنده، مدارهای آنالوگ الگوریتم‌های ساده هوش مصنوعی را روی این داده‌ها اجرا می‌کنند. آن‌ها این طراحی راdeep in-memory architecture نامیده‌اند. به عقیده Shanbhag در این طراحی مدارهای پردازشی و ذخیره‌سازی به حد کافی به هم نزدیک هستند تا از نظر مصرف انرژی و سرعت انتقال داده، شاهد عملکرد قابل‌قبولی باشیم. گروه وی مدعی است در فرآیند شناسایی چهره‌، بهبودی10 برابری در مصرف انرژی و 5 برابری در سرعت حاصل‌شده است.
 به عقیده Mitra هنوز مشخص نیست که آیا پردازش درون حافظه‌ای(in-memory computing) می‌تواند معماری‌های فعلی را به چالش بکشد و جایگزین آن‌ها شود یا خیر؟ او معتقد است که سرعت و مصرف انرژی چنین راهکاری باید هزار برابر باشد تا شرکت‌های سازنده نیمه‌‌هادی، طراحان مدار و برنامه‌نویسان به استفاده از آن رغبت نشان دهند. به عقیده Meng-Fan Chang مهندس برق دانشگاه National Tsing Hua تایوان، استارت‌آپ‌ها می‌توانند زمینه‌ساز خوبی برای چنین تغییری باشند. استارت‌آپ‌هایی نظیر Mythic در تگزاس به‌منظور ساخت مدارهای اختصاصی هوش مصنوعی روی فناوری‌های مشابهی کار می‌کنند. (شکل ۱) 
به عقیده Chang: «در حال حاضر فرصتی برای ورود به بازارهای کوچک‌تر فراهم‌شده است.»

پردازش درون حافظه‌ای: راهکاری برای سامانه‌های هوشمند آیندهشکل۱ - نمونه اولیه تراشه Mythic (وسط)

 شرکت Mythic

شرکت نوپای Mythic روی توسعه تراشه‌ اختصاصی هوش مصنوعی‌ای متمرکز است که بر مبنای «شبکه‌های عصبی آموزش‌دیده» کار می‌کند. Mythic در تراشه خود از روش رایانش مبتنی بر سیگنال ترکیبی (mixed-signal computing) استفاده می‌کند که در آن ترکیبی از مدارات دیجیتال و آنالوگ محاسبات مربوط به DNN را انجام می‌دهند. وزن‌های شبکه روی حافظه فلش ذخیره‌شده و محاسبات توسط مدارات آنالوگ اجرا می‌شوند. این مدارات آنالوگ که نسبت به مدارات دیجیتال فضای کمتری اشغال می‌کنند و مصرف توان پایین‌تری دارند، قادرند اعمال ریاضی نظیر جمع و ضرب را انجام دهند. با این تمهید دیگر نیازی نیست داده‌های مربوط به وزن شبکه عصبی به پردازنده فرستاده شوند. این ویژگی باعث بهبود بسیار چشمگیری در میزان مصرف توان و صرف زمان می‌شود و تراشه Mythic را به کمک‌پردازنده‌ای تبدیل می‌کند که قادر است داده‌ها را دریافت کند، با اعمال وزن‌های ذخیره‌شده و اجرای عملیات ریاضی روی مدارات آنالوگ، نتیجه نهایی را تحویل دهد بدون این‌که از منابع سیستم اصلی مایه بگذارد. این ایده آنقدر جذاب بوده که حالا صحبت از سرمایه‌گذاری ۴۰ میلیون دلاری روی این شرکت نوپاست.

دانشگاه‌های استنفورد و ام‌آی‌تی

گروهی متشکل از محققان دانشگاه‌های استنفورد و ام‌آی‌تی، معماری متفاوت‌تری را پیشنهاد داده و سعی کرده‌اند با استفاده از نانولوله‌های کربنی به‌جای سیلیکون و به‌کار بردن RRAM پردازنده و حافظه را به هم نزدیک کنند. آن‌ها با روی هم قرار دادن نانو‌لوله‌های کربنی و RRAM، یک ساختار پردازشی سه‌بعدی و متراکم ایجاد کرده‌اند که در آن بخش‌های پردازشی و ذخیره‌سازی به‌صورت لایه‌به‌لایه روی هم قرار داده شده‌اند و مجموعه‌ای تودرتو از سیم‌ها، ارتباط این لایه‌ها با یکدیگر را برقرار می‌کند. (شکل ۲)
 این محققان موفق شده‌اند با یکپارچه‌سازی بیش از یک‌میلیون سلول RRAM و دو میلیون ترانزیستور ساخته‌شده از نانولوله کربنی (به‌طور دقیق‌تر carbon nanotube field-effect transistors) به یکی از پیچیده‌ترین سامانه‌های نانوالکترونیکی حال حاضر دنیا دست یابند. تولید چنین ساختار سه‌بعدی با فناوری‌های رایج فعلی مبتنی بر سیلیکون امکان‌پذیر نیست. مدارهای امروزی ساختارهایی دو بعدی دارند و ازآنجایی‌که ترانزیستورهای سیلیکونی رایج در دماهای بسیار بالا (بیش از هزار درجه سلسیوس) ساخته می‌شوند، امکان قرار دادن لایه‌های ساخته‌شده روی یک‌لایه دیگر وجود ندارد زیرا سبب آسیب‌ رسیدن به لایه‌ زیرین خواهد شد. 
با روش پیشنهادی محققان ام‌آی‌تی و استنفورد، می‌توان مدارها را در دماهای بسیار پایین‌تر (کمتر از ۲۰۰ درجه سلسیوس) ساخت و روی هم قرار داد. چنین روشی چندین مزیت دارد که در آینده سامانه‌‌های پردازشی به‌کار می‌آیند. مدارهای منطقی ساخته‌شده با نانولوله‌های کربنی مصرف توان بسیار بهینه‌تری در مقایسه با همتایان سیلیکونی امروزی خود دارند. از سوی دیگر RRAM را می‌توانبا چگالی ذخیره‌سازی بالاتر، سرعت بیشتر انتقال داده و با مصرف بهینه‌تری نسبت به حافظه‌های DRAM رایج ساخت؛ اما مزیت دیگر این معماری جدید، رفع چشمگیر مشکل ارتباط بین دو بخش پردازشی و ذخیره‌سازی است. یکپارچه‌سازی بخش‌های پردازشی و ذخیره‌سازی در قالب یک معماری سه‌بعدی، تبادل داده بین این دو بخش را سریع‌تر خواهد کرد. در نتیجه تراشه از یک‌سو قادر به ذخیره‌سازی حجم بسیار بالایی از داده است و از سوی دیگر قادر به پردازش محلی داده‌ها بدون نیاز به ارسال آن‌ها برای یک پردازنده خارجی خواهد بود.
این محققان به‌منظور آزمودن روش خود، بیش از یک‌میلیون حسگر مبتنی بر نانولوله‌های کربنی را روی این تراشه قرار دادند تا با استفاده از آن گازهای محیطی را شناسایی و دسته‌بندی کنند. تراشه قادر بود مقادیر هر حسگر را به‌طور هم‌زمان خوانده و با سرعت بالایی در حافظه قرار دهد. به عقیده Jan Rabaey، استاد مهندسی برق و علوم کامپیوتر دانشگاه کالیفرنیا:‌ «این محققان با در هم‌آمیختن بخش‌های ذخیره‌سازی و پردازشی، چشم‌انداز جدیدی را در حوزه معماری کامپیوتر ایجاد کرده‌اند.» به عقیده او چنین معماری می‌تواند به‌ویژه در سامانه‌هایی نظیر سامانه‌های پردازشی ملهم از مغز انسان و شبکه‌های عصبی عمیق مفید باشد و «آنچه این محققان انجام داده‌اند، قطعا نخستین گام اساسی در این مسیر است». ویژگی بسیار مهم این معماری جدید این است که با فناوری‌های فعلی طراحی و تولید تراشه به‌خوبی سازگار است و می‌توان تراشه‌های مبتنی بر این معماری را با استفاده از زیرساخت‌های موجود تولید تراشه، ساخت.
Max Shulaker استادیار مهندسی برق و علوم کامپیوتر دانشگاه ام‌آی‌تی می‌گوید: «این فناوری نه‌تنها رایانش سنتی را بهبود می‌دهد، بلکه کاربردهایی جدیدتر نیز خواهد داشت. دانشجویان من در حال بررسی تولید تراشه‌هایی هستند که وظایفی بیش از رایانش را انجام دهند.»

                                                                                                                                                            پردازش درون حافظه‌ای: راهکاری برای سامانه‌های هوشمند آینده

پردازش درون حافظه‌ای: راهکاری برای سامانه‌های هوشمند آیندهشکل۲ - بالا:نمایی از معماری پیشنهادی محققان استنفورد؛ در این تصویر بخش‌هایی
که با رنگ سبز مشخص شده‌اند، ترانزیستورهای مبتنی بر نانولوله‌های کربنی هستند و
بخش‌های ارغوانی، RRAM ها. پایین: در این شکل نحوه قرار گرفتن لایه RRAM 
روی لایه پردازشی به‌خوبی مشخص است.

پردازش درون حافظه‌ای: راهکاری برای سامانه‌های هوشمند آیندهشکل۳ - پیشنهاد شرکت Crossbar برای قرار دادن ReRAM در میان بخش پردازشی

شرکت‌های Crossbar و Microsemi

شرکت Crossbar از جمله شرکت‌هایی است که توجه ویژه‌ای به کاهش فاصله بین حافظه و پردازنده دارد (شکل ۳). این شرکت بر فناوری حافظه‌های ReRAM (یا Resistive RAM) متمرکز است و به‌تازگی قرارداد همکاری با شرکت تراشه‌ساز Microsemi را به امضا رسانده تا امکان ترکیب این حافظه‌ها با تراشه‌های پردازشی را فراهم کند و سامانه‌های هوش مصنوعی داده‌های موردنیاز خود را به‌طور محلی ذخیره‌سازی کنند و نیازی به فضاهای ابری یا ذخیره‌سازهای خارجی نباشد. ReRAM شرکت Crossbar با فرآیند تولید رایج CMOS قابل ساخت است و می‌توان آن‌را در ابعادی کمتر از ۱۰ نانومتر هم ساخت بدون این‌که تأثیر منفی بر عملکرد تراشه بگذارد. 
به گفته Sylvain Dubois، معاون بخش توسعه کسب‌وکار و بازاریابی استراتژیک شرکت Crossbar: «در معماری‌های رایج، بزرگ‌ترین چالش پیش روی طراحان هوش مصنوعی، غلبه بر محدودیت‌های سرعت حافظه و مصرف توان است». او معتقد است که با کمک ReRAM می‌توان کل مدل آموزش داده‌شده یا پایگاه دانش را روی تراشه قرار داد، به‌طوری‌که شبکه عصبی به‌طور مستقیم آن‌را در اختیار داشته باشد و این سبب صرفه‌جویی فوق‌العاده‌ای در مصرف توان و بهبود عملکرد خواهد شد. Crossbar مدعی است که با پیاده‌سازی فناوری ReRAM در ساختارهای سه‌بعدی می‌توان به ظرفیت ذخیره‌سازی تا چندین ترابایت روی یک تراشه دست یافت.
معماری‌های آیندهکارشناسان معتقدند، اگر می‌خواهیم قابلیت‌هایی نظیر اجرای مستقل (بدون نیاز به پردازش ابری) هوش مصنوعی روی تلفن همراه را در اختیار داشته باشیم لازم است که صنعت چنین معماری‌های جدیدی را به رسمیت بشناسد. 
شاید چند سال پیش معماری سنتی کامپیوترها جوابگو بودند و نیازی به یک معماری جدید احساس نمی‌شد اما در آینده‌ای نه‌چندان دور، شبکه‌ای از حسگرها، ما و محیط زندگی ما را در بر خواهند گرفت و به‌طور لحظه‌ای بر حجم داده‌ها افزوده خواهد شد. شرکت‌ها و مؤسسات زیادی در دنیا وجود دارند که بیش از ما علاقه‌مند به پردازش این داده‌ها هستند و برنامه‌های خوبی برای استفاده از آن‌ها دارند. برنامه‌هایی که برای عملی‌شدنشان، به راهکاری مناسب‌تر از معماری پیشنهادی جناب فون‌نویمان نیاز است.

پی‌نوشت:
 اصطلاحی که این محققان برای حافظه مقاومتی با دسترسی تصادفی (resistive random-access memory) به کار می‌برند. RRAM یا ReRAM، گونه‌ای از حافظه‌‌های غیرفرار مبتنی بر ممریستور است

برچسب: