معماری هوپر انویدیا NVIDIA Hooper
ریزمعماری هوپر انویدیا (NVIDIA Hopper Microarchitecture)
هوپر (Hopper) یک ریزمعماری واحد پردازش گرافیکی (GPU) است که توسط شرکت انویدیا توسعه یافته است. این معماری برای مراکز داده طراحی شده و در کنار ریزمعماری آدا لاولیس (Ada Lovelace) مورد استفاده قرار میگیرد. هوپر جدیدترین نسل از محصولات سابقاً با نام تجاری انویدیا تسلا (Nvidia Tesla) است که اکنون با عنوان GPUهای مرکز داده انویدیا (Nvidia Data Centre GPUs) شناخته میشوند.
معماری هوپر به افتخار دانشمند کامپیوتر و دریادار نیروی دریایی ایالات متحده، گریس هوپر (Grace Hopper) نامگذاری شده است. این معماری در نوامبر ۲۰۱۹ لو رفت و در مارس ۲۰۲۲ بهصورت رسمی معرفی شد. هوپر نسبت به نسلهای قبلی خود یعنی معماریهای تورینگ (Turing) و آمپر (Ampere)، پیشرفتهایی داشته است که شامل استریمینگ مالتیپروسسور جدید، زیرسیستم حافظه سریعتر و موتور شتابدهی ترنسفورمر است.

گریس هوپر (Grace Hopper) کیست؟
گریس هوپر (Grace Hopper) از پیشگامان علم کامپیوتر بود که بهعنوان یکی از اولین برنامهنویسان کامپیوتر «هاروارد مارک ۱» (Harvard Mark 1) شناخته میشود. کامپیوتر «هاروارد مارک ۱» یکی از نخستین رایانههای الکترومکانیکی بزرگ تاریخ بود که در دهه ۱۹۴۰ برای انجام محاسبات پیچیده ساخته شد. گریس هوپر نقشی کلیدی در توسعه برنامهنویسی و زبانهای برنامهنویسی اولیه ایفا کرد و به همین دلیل از او به عنوان یکی از مهمترین چهرههای تاریخ برنامهنویسی و محاسبات کامپیوتری یاد میشود. او همچنین به خاطر خلق اولین کامپایلرها و تلاشهایش در توسعه زبان برنامهنویسی COBOL شهرت دارد.
چند جمله معروف از گریس هوپر (Grace Hopper) که به حوزه فعالیت و فلسفه کاری او مرتبط است عبارتاند از:
- “The most dangerous phrase in the language is, ‘We’ve always done it this way.’”
«خطرناکترین جملهای که میتوان گفت این است که “ما همیشه این کار را به همین شکل انجام دادهایم.”» - “Humans are allergic to change. They love to say, ‘We’ve always done it this way.’ I try to fight that.”
«انسانها به تغییر حساسیت دارند و دوست دارند بگویند “ما همیشه همینطور انجام دادهایم.” من همیشه تلاش میکنم با این تفکر مبارزه کنم.» - “If it’s a good idea, go ahead and do it. It’s much easier to apologize than it is to get permission.”
«اگر ایده خوبی است، جلو برو و آن را انجام بده. عذرخواهی کردن خیلی سادهتر از اجازه گرفتن است.» - “One accurate measurement is worth a thousand expert opinions.”
«یک اندازهگیری دقیق به اندازه هزار نظر کارشناس ارزش دارد.»
این جملات بهخوبی نگرش نوآورانه، عملگرایانه و آیندهنگر گریس هوپر را در زمینه برنامهنویسی و توسعه فناوری نشان میدهد.

تاریخچه معماری NVIDIA Hooper
در نوامبر ۲۰۱۹، یک حساب توییتر معروف افشا کرد که معماری بعد از آمپر (Ampere)، هوپر (Hopper) نام خواهد داشت؛ نامی برگرفته از گریس هوپر، دانشمند کامپیوتر و دریادار نیروی دریایی ایالات متحده که از اولین برنامهنویسان کامپیوتر هاروارد مارک یک (Harvard Mark I) بود. این حساب توییتر اعلام کرد هوپر مبتنی بر طراحی چند تراشهای (multi-chip module) خواهد بود که باعث بهبود بازده و کاهش ضایعات خواهد شد.
انویدیا رسماً در کنفرانس GTC سال ۲۰۲۲ معماری هوپر را معرفی کرد.
در اواخر سال ۲۰۲۲ به دلیل محدودیتهای صادرات تراشهها به جمهوری خلق چین که توسط ایالات متحده وضع شد، انویدیا تراشه H100 را با مدل H800 برای بازار چین تطبیق داد. این مدل در مقایسه با مدل اصلی H100 از پهنای باند پایینتری برخوردار است. در اواخر سال ۲۰۲۳، دولت ایالات متحده محدودیتهای جدیدی بر صادرات تراشههای هوش مصنوعی به چین، از جمله مدلهای A800 و H800 وضع کرد.
در سال ۲۰۲۳ و در زمان رونق هوش مصنوعی، تقاضا برای تراشههای H100 بسیار بالا رفت. لری الیسون از شرکت اوراکل در همان سال گفت که در یک شام مشترک با جنسن هوانگ، مدیرعامل انویدیا، او و ایلان ماسک از تسلا و xAI «عملاً برای دریافت H100 التماس میکردند؛ شاید بهترین توصیف این باشد که یک ساعت سوشی و التماس بود.»
در ژانویه ۲۰۲۴ تحلیلگران شرکت مالی ریموند جیمز برآورد کردند که انویدیا هر GPU مدل H100 را در بازه قیمتی ۲۵ هزار تا ۳۰ هزار دلار میفروشد، در حالی که قیمت تکی این GPUها در eBay بیش از ۴۰ هزار دلار است. تا فوریه ۲۰۲۴، گزارش شد که انویدیا پردازندههای H100 را با خودروهای زرهی به دیتاسنترها ارسال میکند.
معماری هوپر (Nvidia Hopper)
پردازنده گرافیکی Nvidia Hopper H100 با استفاده از فرآیند TSMC N4 ساخته شده و شامل ۸۰ میلیارد ترانزیستور است. این GPU میتواند تا ۱۴۴ استریمینگ مالتیپروسسور داشته باشد. به دلیل افزایش پهنای باند حافظه از طریق سوکت SXM5، پردازنده گرافیکی Nvidia Hopper H100 در حالت پیکربندی SXM5 عملکرد بهتری نسبت به سوکت PCIe معمولی دارد.

استریمینگ مالتی پروسسور (SM)
استریمینگ مالتی پروسسور streaming multiprocessor (SM) در معماری هوپر انویدیا نسبت به ریزمعماریهای تورینگ و آمپر بهبود یافتهاند، هرچند حداکثر تعداد warpهای همزمان برای هر استریمینگ مالتیپروسسور (SM) همچنان مشابه آمپر و معادل ۶۴ باقی مانده است. معماری هوپر مجهز به شتابدهنده حافظه تانسوری (Tensor Memory Accelerator – TMA) است که انتقال حافظه دوسویه و غیرهمزمان بین حافظه مشترک (Shared Memory) و حافظه سراسری (Global Memory) را فراهم میکند. تحت TMA، برنامهها میتوانند تا تانسورهای پنجبُعدی (5D Tensors) را انتقال دهند. هنگام نوشتن از حافظه مشترک به حافظه سراسری میتوان از کاهش عنصری (Elementwise Reduction) و عملگرهای بیتی (Bitwise Operators) استفاده کرد که نیاز به استفاده از رجیسترها و دستورالعملهای SM را حذف کرده و به کاربران اجازه میدهد کدهای تخصصی warp بنویسند. این قابلیت از طریق دستور cuda::memcpy_async در دسترس است.
توسعهدهندگان هنگام موازیسازی برنامهها میتوانند از کلاسترهای بلوک رشتهای (Thread Block Clusters) استفاده کنند. بلوکهای رشتهای میتوانند عملیات اتمیک را در حافظه مشترک بلوکهای رشتهای دیگر درون کلاستر انجام دهند، که به این مفهوم حافظه مشترک توزیعشده (Distributed Shared Memory) گفته میشود. حافظه مشترک توزیعشده میتواند توسط SM به صورت همزمان با حافظه نهان سطح دوم (L2 Cache) استفاده شود. در ارتباط دادهها بین SMها، از پهنای باند ترکیبی حافظه مشترک توزیعشده و L2 بهره میگیرد. حداکثر اندازه قابل حمل کلاسترها ۸ است؛ با این حال پردازنده Nvidia Hopper H100 میتواند از اندازه کلاستر ۱۶ پشتیبانی کند که با استفاده از تابع cuda Func Attribute Non Portable Cluster Size Allowed فعال میشود و احتمالاً باعث کاهش تعداد بلوکهای فعال میگردد. استفاده از مالتیکستینگ حافظه L2 و حافظه مشترک توزیعشده باعث کاهش پهنای باند مورد نیاز برای خواندن و نوشتن در حافظه دسترسی تصادفی پویا (DRAM) میشود.
معماری هوپر دارای توان عملیاتی بهبود یافته در قالب ممیز شناور تکدقت (FP32) است که دو برابر عملیات FP32 در هر چرخه بر هر SM نسبت به نسل قبلی فراهم میکند. علاوه بر این، معماری هوپر از دستورالعملهای جدیدی مانند الگوریتم Smith–Waterman پشتیبانی میکند. مانند آمپر، از محاسبات TensorFloat-32 (TF-32) نیز پشتیبانی میشود. الگوی نگاشت برای هر دو معماری یکسان است.
ویژگیهای استریمینگ مالتیپروسسور (SM) در معماری هوپر:
-
پردازش موازی: هر SM قادر است هزاران رشته پردازشی را به صورت همزمان و موازی مدیریت کند. این ویژگی برای پردازشهای پیچیده و حجیم در زمینههای هوش مصنوعی (AI)، یادگیری عمیق (Deep Learning)، شبیهسازیهای علمی، و پردازش گرافها حیاتی است.
-
پشتیبانی از عملیاتهای پیچیده: SMها در معماری هوپر قادر به اجرای عملیاتهای پیچیدهای مانند جمع، ضرب، و محاسبات ماتریسی با سرعت بسیار بالا هستند که برای یادگیری ماشین و پردازشهای دادهای پرحجم ضروری است.
-
حافظه کش و مدیریت دادهها: SM در معماری هوپر از حافظه کش (cache) برای بهینهسازی دسترسی به دادهها استفاده میکند و این امکان را فراهم میآورد که دادهها سریعتر از حافظه اصلی در دسترس قرار گیرند. این ویژگی به کاهش تاخیر و افزایش کارایی کمک میکند.
-
دستگاههای خاص و شتابدهی: در معماری هوپر، هر SM به واحدهای پردازشی خاصی برای عملیاتهای مختلف مانند محاسبات فشردهسازی داده، پردازش گرافها، و یادگیری ماشین تجهیز شده است. این واحدها به بهینهسازی فرآیندهای خاص مانند عملیاتهای مبتنی بر شبکه عصبی کمک میکنند.
-
پشتیبانی از یادگیری ماشین و هوش مصنوعی: SMهای هوپر بهطور خاص برای پشتیبانی از عملیاتهای یادگیری ماشین مانند ضرب ماتریسها و جمعهای برداری طراحی شدهاند. این ویژگیها باعث میشوند که معماری هوپر برای استفاده در مدلهای یادگیری عمیق و کاربردهای هوش مصنوعی بسیار مناسب باشد.
-
مقیاسپذیری بالا: معماری هوپر به SMها این امکان را میدهد که در مقیاس بزرگتری نسبت به نسلهای پیشین عمل کنند. این ویژگی به معنای توانایی انجام محاسبات موازی بیشتر و دسترسی به پردازشهای پیچیدهتر در مقیاسهای بزرگ است.
-
پشتیبانی از چندین کاربر و چندین فرآیند (Multi-Tenant): معماری هوپر قابلیت مدیریت چندین SM بهطور همزمان را دارد و میتواند به طور بهینه منابع پردازشی را بین چندین کاربر و فرآیند مختلف تقسیم کند.

حافظه HBM3e, HBM3, HBM2e
پردازندههای Nvidia Hopper H100/H200/H800 از حافظه HBM3e, HBM3, HBM2e از ظرفیت ۴۰ تا ۱۴۱ گیگابایت پشتیبانی میکند. حافظه HBM (High Bandwidth Memory) یک نوع حافظه با پهنای باند بالا است که برای بهبود عملکرد سیستمهای محاسباتی، بهویژه در پردازندههای گرافیکی (GPU) و سایر سختافزارهای شتابدهنده طراحی شده است. سیستم حافظه HBM3 دارای پهنای باند بیش از ۲ تا ۴.۸ ترابایت بر ثانیه است که نسبت به حافظه ۲ ترابایت بر ثانیه در Nvidia Ampere A100 بیش از پنجاه درصد افزایش یافته است. همچنین ظرفیت و پهنای باند حافظه نهان سطح دوم (L2 Cache) در کل معماری افزایش یافته است.
هوپر به کرنلهای محاسباتی CUDA اجازه میدهد از فشردهسازی خودکار و خطی (Automatic Inline Compression) استفاده کنند؛ حتی در تخصیص حافظه فردی، که دسترسی به حافظه را با پهنای باند بالاتری امکانپذیر میکند. این قابلیت میزان حافظه در دسترس برنامه را افزایش نمیدهد؛ زیرا دادهها (و در نتیجه قابلیت فشرده شدن آنها) ممکن است هر لحظه تغییر کنند. الگوریتمهای فشردهسازی به طور خودکار توسط کمپرسور انتخاب میشوند.
پردازنده Nvidia Hopper H100 ظرفیت ترکیبی حافظه نهان سطح اول (L1 Cache)، حافظه بافت (Texture Cache) و حافظه مشترک (Shared Memory) را به ۲۵۶ کیلوبایت افزایش داده است. مشابه نسلهای قبلی، حافظههای نهان L1 و بافت در یک حافظه نهان واحد تجمیع شده که بهعنوان یک بافر پیوسته (Coalescing Buffer) طراحی شده است. با استفاده از ویژگی cuda Func Attribute Preferred Shared Memory Carveout میتوان میزان تفکیک حافظه نهان L1 را تعریف کرد. هوپر همچنین نسل جدیدی از NVLink با بهبود پهنای باند ارتباطی معرفی کرده است.
دامنههای همگامسازی حافظه (Memory synchronization domains)
برخی از برنامههای CUDA ممکن است هنگام اجرای عملیات fence یا flush به دلیل ترتیبدهی حافظه دچار تداخل شوند. از آنجایی که GPU نمیتواند تشخیص دهد کدام نوشتارها تضمینشده و کدامها به طور اتفاقی قابل مشاهدهاند، ممکن است منتظر عملیات حافظه غیرضروری بماند و بدین ترتیب سرعت عملیات fence یا flush کاهش یابد. برای مثال، هنگامی که یک کرنل در حافظه GPU محاسبات انجام میدهد و یک کرنل موازی دیگر ارتباطات همتا به همتا (peer-to-peer) را انجام میدهد، کرنل محلی نوشتارهای خود را flush خواهد کرد و این باعث کاهش سرعت نوشتارهای NVLink یا PCIe میشود. در معماری هوپر (Hopper)، GPU میتواند عملیات fence را به گونهای انجام دهد که هزینه شبکه را کاهش دهد.

دستورات DPX
برنامهنویسی پویا یک تکنیک الگوریتمی برای حل مسائل پیچیده بازگشتی است که با تقسیم آن به زیرمسئلههای سادهتر، به حل مسئله کمک میکند. با ذخیره نتایج زیرمسئلهها بهگونهای که نیاز به محاسبه مجدد آنها نباشد، زمان و پیچیدگی حل مسائل نمایی کاهش مییابد. برنامهنویسی پویا معمولاً در دامنه وسیعی از موارد استفاده کاربرد دارد. به عنوان مثال، الگوریتم Floyd-Warshall یک الگوریتم بهینهسازی مسیر است که میتواند برای نقشهبرداری از کوتاهترین مسیرها برای ناوگان حملونقل و تحویل استفاده شود. الگوریتم Smith-Waterman برای همترازی توالیهای DNA و کاربردهای تا شدن پروتئین استفاده میشود.
دستورات DPX در Hopper الگوریتمهای برنامهنویسی پویا را ۴۰ برابر سریعتر نسبت به سرورهای سنتی دو سوکت CPU-only و ۷ برابر سریعتر نسبت به GPUهای معماری NVIDIA Ampere شتاب میدهد. این امر منجر به زمانهای بهمراتب سریعتر در تشخیص بیماری، بهینهسازی مسیرها و حتی تجزیه و تحلیل گرافها میشود.
رابط برنامهنویسی ریاضی معماری هوپر (Hopper API) دستورالعملهایی در SM ارائه میدهد مانند __viaddmin_s16x2_relu که عملیات max(min(a+b,c),0) را روی هر نیمکلمه (halfword) انجام میدهد. در الگوریتم Smith–Waterman، از دستورالعمل __vimax3_s16x2_relu استفاده میشود که یک عملیات کمینه یا بیشینه سهطرفه است و در انتها مقدار آن به صفر محدود میشود. بهطور مشابه، هوپر باعث تسریع اجرای الگوریتم Needleman–Wunsch نیز میشود.

موتور ترنسفورمر (Transformer engine)
معماری هوپر اولین معماری شرکت انویدیا است که از موتور ترنسفورمر استفاده کرده است. موتور ترنسفورمر با کاهش دینامیکی محاسبات از دقتهای عددی بالاتر (مثلاً FP16) به دقتهای پایینتر (مانند FP8) سرعت اجرای محاسبات را افزایش میدهد؛ این تغییر دقت زمانی انجام میشود که افت دقت قابل قبول تلقی شود. همچنین موتور ترنسفورمر میتواند بهصورت دینامیکی بیتهای دقت انتخابشده را در زمان اجرا بین مانتیسا (mantissa) و نما (exponent) اختصاص دهد تا دقت را به حداکثر برساند.

سیستم NVLink، NVSwitch و سیستم سوئیچ NVLink
برای حرکت در سرعت کسبوکار، بی پروایی HPC و مدلهای هوش مصنوعی با تریلیون پارامتر نیاز به ارتباط سریع و بیوقفه بین تمام GPUها در خوشه سرور دارند تا در مقیاس بزرگ شتاب بگیرند. NVLink نسل چهارم میتواند ورودی و خروجی چند GPU را با سرورهای NVIDIA DGX™ و HGX™ در سرعت ۹۰۰ گیگابایت در ثانیه (GB/s) دوطرفه برای هر GPU مقیاسبندی کند که بیش از ۷ برابر پهنای باند PCIe Gen5 است.
NVSwitch™ نسل سوم NVIDIA از پروتکل تجمع و کاهش سلسلهمراتبی قابل مقیاس (SHARP)™ در محاسبات شبکهای پشتیبانی میکند که پیشتر تنها در Infiniband موجود بود و افزایش ۲ برابری در پهنای باند کل کاهش در هشت سرور GPU H200 یا H100 را نسبت به سیستمهای GPU هسته Tensor A100 نسل قبل فراهم میکند. سیستمهای DGX GH200 با سیستم سوئیچ NVLink از خوشههایی با تا ۲۵۶ H200 متصل پشتیبانی میکنند و ۵۷.۶ ترابایت در ثانیه (TB/s) پهنای باند همهبههمه را ارائه میدهند.

محاسبات محرمانه انویدیا (NVIDIA Confidential Computing)
در حالی که دادهها در حالت استراحت در ذخیرهسازی و در حال انتقال از طریق شبکه رمزنگاری میشوند، زمانی که در حال پردازش هستند محافظت نمیشوند. محاسبات محرمانه انویدیا (NVIDIA Confidential Computing) این خلا را با محافظت از دادهها و برنامهها در حین استفاده برطرف میکند. معماری NVIDIA Hopper اولین پلتفرم محاسباتی شتابدهنده جهان را با قابلیتهای محاسبات محرمانه معرفی میکند.
با امنیت مبتنی بر سختافزار قوی، کاربران میتوانند برنامهها را در محل، در ابر یا در لبه اجرا کنند و اطمینان داشته باشند که نهادهای غیرمجاز نمیتوانند کد برنامه و دادهها را زمانی که در حال استفاده هستند مشاهده یا تغییر دهند. این امر محرمانگی و یکپارچگی دادهها و برنامهها را در حالی که از شتاب بیسابقه GPUهای H200 و H100 برای آموزش هوش مصنوعی، استنتاج هوش مصنوعی و بارهای کاری HPC استفاده میشود، محافظت میکند.

نسل دوم MIG
با استفاده از GPU چندواحدی (MIG)، یک GPU میتواند به چندین نمونه کوچکتر تقسیم شود که هر کدام حافظه، کش و هستههای محاسباتی خود را دارند. معماری Hopper MIG را با پشتیبانی از پیکربندیهای چندمستأجره (multi-tenant) و چندکاربره (multi-user) در محیطهای مجازیسازی شده، در دسترس قرار میدهد و هر نمونه را با محاسبات محرمانه در سطح سختافزار و هایپرویزر به طور ایمن جدا میکند. دیکودرهای ویدیویی اختصاصی برای هر نمونه MIG تحلیلات ویدیویی هوشمند (IVA) با سرعت بالا و امنیت را بر روی زیرساخت مشترک ارائه میدهند. و با پروفایلسازی همزمان MIG در Hopper، مدیران میتوانند شتابدهی GPU متناسب را نظارت کرده و تخصیص منابع برای کاربران را بهینهسازی کنند.
برای پژوهشگرانی که بار کاری کوچکتری دارند، به جای اجاره یک نمونه کامل از CSP، میتوانند از MIG استفاده کنند تا بخشی از GPU را بهطور ایمن ایزوله کنند و از این اطمینان داشته باشند که دادههایشان در حالت استراحت، در حال انتقال و در هنگام پردازش ایمن است.

بهرهوری توان (Power efficiency)
پردازنده H100 با فرم فاکتور SXM5 دارای توان طراحی حرارتی (TDP) ۷۰۰ وات است. با توجه به قابلیت ناهمزمانی (asynchrony)، معماری هوپر میتواند به سطح بالایی از بهرهبرداری دست یابد و در نتیجه عملکرد بهتری از لحاظ بازدهی توان (performance-per-watt) داشته باشد.

گریس هوپر (Grace Hopper)
پردازنده GH200 ترکیبی از GPU مبتنی بر هوپر H100 و یک پردازنده مرکزی (CPU) گریس ۷۲ هستهای است که در یک ماژول واحد قرار گرفتهاند. مصرف انرژی کل ماژول تا ۱۰۰۰ وات است. CPU و GPU از طریق NVLink به هم متصل شدهاند و بین حافظه CPU و GPU همزمانی (coherence) برقرار است.