از زمان پیدایش محاسبات، برخی از فناوریهای حافظه برای ظرفیت بالاتر و برخی دیگر برای عملکرد بالاتر استفاده شدهاند. سلسله مراتب حافظه و ذخیره سازی مورد استفاده در سیستم های امروزی در هرم نشان داده شده است (شکل 1 را ببینید). این سلسله مراتب از ویژگی اساسی فناوریهای حافظه مختلف بهره میبرد – که برای هزینههای مختلف در هر بیت با تغییر پهنای باند به ازای ظرفیت طراحی شدهاند.
سلسله مراتب حافظه طی چندین دهه در سطح سیستم تکامل یافته است. آنها شامل interleaving برای عملکرد، تصحیح خطا برای قابلیت اطمینان، و رمزگذاری برای امنیت هستند. در خود سلسله مراتب، فضاهای آدرس حافظه چندگانه مرتبط هستند، (مثلاً مجازی و فیزیکی)، و همچنین انتزاعات متعدد، (مثلاً حافظه و ذخیره سازی). روی یک جزء حافظه قرار دارد یا آن داده ای که در آنجا قرار دارد، خطا تصحیح شده است.
همانطور که در شکل 3 نشان داده شده است، رویکردهای موفق NMC از طریق طراحی سیستم، با در نظر گرفتن همه این عوامل، پیاده سازی خواهند شد.
برای اینکه NMC مفید باشد باید به روشی در سیستم ادغام شود که با بقیه سیستم کار کند. دوستی توسعهدهنده یک امر ضروری است. برای دستیابی به مزایای قابل توجه سطح سیستم که وعده داده شده است، نیازی به تغییرات در کد برنامه نیست. تغییرات در زیرساخت نرم افزار مجاز است. در واقع، یک زیرساخت نرمافزاری که بتواند برنامههای کاربردی را قادر سازد تا از مزایای NMC در سیستمهایی که در آن وجود دارد استفاده کنند و در صورت عدم وجود آن هنوز به طور مؤثر اجرا شوند، مورد نیاز است.
هنگام تحقیق در مورد یک فناوری جدید NMC، یا بررسی یک فناوری NMC از دیگران، به کارت امتیازی در شکل 4 فکر کنید تا قضاوت کنید که این فناوری چقدر رقیب جدی برای استقرار واقعی در سطح سیستم است.
صرفه جویی در انرژی باعث محاسبات نزدیک به حافظه می شود
نویسنده: فرانک هدی، عضو اینتل در گروه سیستمهای محاسباتی شتابده و گرافیک
در کنفرانس اخیر بینالمللی مدارهای حالت جامد (ISSCC)، ارائهای با عنوان: «ما درباره رفتوآمدمان تجدید نظر کردهایم. آیا میتوانیم در مورد رفتوآمدهای دادههایمان تجدیدنظر کنیم؟» در اینجا ما در طول ارائه او به جای تمرکز بر روی دستگاه حافظه به علاوه نمای هسته محاسباتی کوچک که اغلب توسط محققین محاسبات حافظه نزدیک (NMC) گرفته می شود، یک نمای سطح سیستم گرفتیم. از این منظر، توضیح دادیم که چرا اکنون ممکن است زمان ورود NMC به سیستمها و همچنین موانع در سطح سیستم باشد.
مشکل چیه؟
سابقه طولانی تحقیقات محاسبات حافظه نزدیک وجود دارد که تاکنون تأثیر کمی بر سیستم های واقعی داشته است. از آنجایی که کاهش سربار انرژی سیستم در طراحی سیستم قوی که هزینههای مرکز داده را پایین نگه میدارد و به مصرف انرژی جهانی میپردازد، مرکزی میشود، NMC احتمالاً جایگاه خود را پیدا میکند. یکپارچهسازی سیستم NMC که به شیوهای جامع و مناسب برنامهنویس انجام میشود، ممکن است در فضای هوش مصنوعی به سرعت در حال تکامل کاربرد پیدا کند. شاید ما در آستانه یک رنسانس جدید در معماری کامپیوتر هستیم که بازار رقابتی را برای راه حل های محاسباتی نزدیک به حافظه ایجاد می کند که ما را از ریشه های فون نویمان دورتر می کند.
به دنبال اطلاعات بیشتر هستید؟
خود موتور تخلیه باید به اندازه کافی انعطاف پذیر باشد تا تغییرات الگوریتم هایی را که بر روی جدول زمانی نرم افزار کار می کنند، به جای جدول زمانی سخت افزاری بسیاری از پیشنهادات NMC تطبیق دهد. به خصوص در هوش مصنوعی، نوآوریهای الگوریتم سریع به بهبود عملکرد سریع ادامه میدهند، و اینها باید توسط یک طراحی موفق NMC پذیرفته شوند.
حافظههای بالای هرم توان عملیاتی بسیار بالاتر و تأخیر کمتری را در هر ظرفیت ارائه میدهند، اما هزینهای برای هر ظرفیت دارند. از آنجایی که سلسله مراتب به سمت پایین طی می شود، سیستم با افزایش مرتبه بزرگی تاخیر مواجه می شود تا ظرفیت بالاتر را با هزینه معقول ارائه دهد. با این حال، یکی دیگر از محصولات جانبی این پیمایش انرژی به ازای هر بیت دسترسی به طور قابل توجهی بالاتر است. این افزایش انرژی به دلیل فناوری حافظه و همچنین حرکت داده ها از حافظه به واحد پردازش است (توجه داشته باشید: انرژی های ذکر شده انرژی دستگاه حافظه هستند زیرا انرژی حرکت داده ها بر اساس محدوده سیستم به شدت متفاوت است).
سه دلیل وجود دارد که «زمان ممکن است اکنون باشد» برای NMC:
NMC از دهه 60 مورد بررسی قرار گرفته است، اما امروزه در سیستم های تجاری بزرگ ما استفاده نمی شود. سوالی که باید از خود بپرسیم این است که “چه چیزی تغییر کرده است؟” اکنون چه چیزی متفاوت است که ممکن است NMC را دوام بیاورد؟
سوم، معرفی یک اتصال حافظه جدید، CXLTM، که توسط اینتل پیشگام بود و اکنون توسط کنسرسیومی در سطح صنعت رهبری می شود، مسیری را برای محاسبه حافظه نزدیک فراهم می کند. امروزه، ما DRAM را با یک رابط DDR به سیستم متصل میکنیم که برای رسیدن به دادهها در یک بازه زمانی ثابت نانوثانیه نیاز دارد. CXLTM دسترسیهای حافظه با تاخیر متغیر را فعال میکند و به طور بالقوه به NMC برای دسترسی به دادهها، شاید چندین عنصر داده و محاسبه کامل قبل از بازگشت پاسخ، زمان میدهد. ماژول های CXLTM شامل یک کنترلر حافظه ساخته شده در یک فرآیند منطقی است که پیوند CXLTM و حافظه ها را به هم متصل می کند و احتمالاً تصحیح خطا را انجام می دهد. این یک مکان واضح برای معرفی NMC است.
تغییر سخت است، بنابراین اولین مانع بر سر راه NMC مزایای واقعاً قابل توجهی در قدرت، عملکرد و هزینه است – مزایایی به اندازه کافی بزرگ برای ایجاد انگیزه در تغییرات پارتیشن بندی کاری در سطح سیستم که ذاتی در NMC است.
پیشبینی ما این است که NMC با یک رسانه شاد در میان شروع میشود، با کنترلکنندههای حافظه که با حافظه در سطح سیستم قرار دارند، اما همچنان بر اساس فرآیندهای منطقی ساخته شدهاند. این NMC دسترسی به دادههای مقیم حافظه را با انرژی کمتر و به طور بالقوه با پهنای باند بالاتر نسبت به سیستمهای امروزی فراهم میکند، در حالی که نیاز به به چالش کشیدن اقتصادهای حافظه را که در حال حاضر در مقیاس کار میکنند، از بین میبرد. NMC می تواند محاسبات را در یک ماژول حافظه CXLTM، یا در یک سوئیچ فابریک حافظه/ذخیره، یا در یک SSD شامل شود.
امروزه ما از زبان های سطح بالا برای اجرا استفاده می کنیم، نه فقط روی یک CPU، بلکه در سیستم های CPU-GPU ناهمگن. در فضای هوش مصنوعی، برنامه نویسان اغلب کدهایی را با PyTorch، TensorFlow یا در سطح مشابهی از انتزاع می نویسند. اینتل به طور مداوم مدل برنامه نویسی منبع باز oneAPI خود را بهبود می بخشد که محاسبات ناهمگن را امکان پذیر می کند. این نوع مدل برنامه نویسی را می توان به عوامل محاسباتی NMC تعمیم داد.
Near Memory Compute (NMC یا CNM)، Near Memory Processing (NMP یا PNM)، Processing in Memory (PiM) و بسیاری از کلمات اختصاری دیگر برای نشان دادن حرکت محاسبات انتخابی به حافظه استفاده می شود. این وبلاگ رویکردی در سطح سیستم دارد و همه این اصطلاحات را در NMC جمعآوری میکند، با اشاره به مفهوم محاسبه، ساده تا پیچیدهتر، که از نظر فیزیکی به حافظه نزدیکتر از CPU یا GPU است. در NMC سه تفاوت مهم در سطح سیستم وجود دارد: با پردازنده، در حافظه و با حافظه. در این وبلاگ، “با پردازنده” را کنار می گذاریم زیرا مکان سیستم نشان می دهد که انرژی حرکت داده ذخیره نشده است. ما همچنین «در حافظه» را فعلا به طراحان حافظه واگذار می کنیم، زیرا این مکان حاکی از یک حافظه جدید و گرانتر است.
همانطور که مجموعه داده ها با سرعتی بیشتر از تراکم حافظه به رشد خود ادامه می دهند، انرژی اختصاص داده شده به حرکت داده در سطح سیستم افزایش می یابد. مجموعه دادههای یادگیری عمیق (DL) در پردازش دادههای هوش مصنوعی یک مثال قوی هستند، با پارامترهای مدل که به طور فزایندهای از نظر اندازه فراتر از حافظههای محلی با پهنای باند بالای GPU یا CPU گسترش مییابند تا بقیه سلسله مراتب را درگیر کنند. جریان داده – از سطوح مختلف به موتورهای محاسباتی و برگشت – به منبعی از انرژی سیستم از دست رفته از محاسبات تبدیل می شود.
هدف قرار دادن رویکرد ما
و البته، هر راه حلی باید همانطور که قبلاً در مورد آن بحث شد، به طور خالص در سیستم ادغام شود و مسیری را برای مقیاس به سیستم های بزرگ ارائه دهد. در نهایت، هزینه باید قابل قبول باشد. این واقع بینانه نیست که فرض کنیم یک قالب حافظه جدید زمانی که فقط در حجم های کوچک تولید می شود، همان قیمت در هر ظرفیت را دارد.
اول، کاهش سرعت در مقیاس بندی Dennard توانایی کاهش توان در سطح دستگاه را محدود کرده است. ترانزیستورهای مقیاس پذیر دیگر دستاوردهای سنتی در کاهش توان را به ارمغان نمی آورند. بدون این اهرم کلیدی تاریخی در سطح دستگاه، نوآوری سیستم باید باتوم کاهش انرژی را انتخاب کند.
تقریباً به طور کلی، سیستمهای امروزی باید با بودجههای محدود قدرت در سطح سیستم عمل کنند. برای این سیستم های محدود به توان، صرفه جویی در انرژی در هر نقطه از سیستم، انرژی بیشتری را برای محاسبات و در نتیجه عملکرد سیستم بالاتر را ممکن می کند. حرکت داده ها در اطراف سیستم بدون کمک مستقیم به محاسبات انرژی مصرف می کند. یک فرصت وسوسه انگیز برای دستیابی به صرفه جویی در انرژی سیستم با کوتاه نگه داشتن رفت و آمد بین حافظه و پردازش تا حد امکان وجود دارد. صرفه جویی در انرژی باید هدف اصلی باشد، ستاره شمالی ما برای محاسبه نزدیک حافظه.
دوم، مدلهای محاسباتی که به موتورهای محاسباتی مختلف (مثلاً یک CPU و یک GPU، یا یک CPU و شتابدهنده) اجازه میدهند تا برای حل یک مشکل کارآمدتر همکاری کنند، گسترش یافتهاند. معرفی سریع این شکل از محاسبات ناهمگن در سطح سیستم، و توانایی برنامهنویسی چنین معماریهایی از زبانهای سطح بالا (اغلب به طور کامل توسط کتابخانهها، زمانهای اجرا، و کامپایلرها هدایت میشوند و برای برنامهنویس نامرئی هستند) برای موفقیت NMC ضروری است.
فناوریهای اینتل ممکن است به فعالسازی سختافزار، نرمافزار یا سرویس نیاز داشته باشند.
© شرکت اینتل. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. نام ها و مارک های دیگر ممکن است به عنوان مالکیت دیگران ادعا شود.
درباره فناوریهای اینتل و نویسنده این داستان، فرانک هادی، در وبلاگهای انجمن اینتل بیشتر بیاموزید.
سلب مسئولیت و اطلاعیه ها: