برایان اولیور، یکی از اعضای تیم رادار شرکت Thoughtworks و نویسنده کتاب جدید «طراحی سیستم‌های تحویل هوشمند»، در این ارائه به یکی از چالش‌برانگیزترین موضوعات دنیای فناوری می‌پردازد: مهندسی هرج‌ومرج (Chaos Engineering) در خوشه‌های GPU. او تأکید می‌کند که این حوزه به‌سرعت در حال تغییر است و حتی متخصصان نیز بیش از یک سال تجربه در این مقیاس ندارند. در این مقاله، نکات کلیدی این ارائه را مرور می‌کنیم.

GPU واقعاً بزرگ چیست؟

برای درک مهندسی هرج‌ومرج در GPUها، ابتدا باید با مقیاس سخت‌افزارهای مدرن آشنا شویم. GPUهای مصرفی مانند RTX 4090 حداکثر ۲۴ گیگابایت VRAM دارند، اما NVIDIA H100 با ۹۴ گیگابایت VRAM و ۱۶٬۰۰۰ هسته CUDA، پهنای باند شبکه ۴۰۰ گیگابیت در ثانیه ارائه می‌دهد. زمانی که این GPUها در خوشه‌های بزرگ مستقر می‌شوند، مجموع VRAM به ۷۵۲ گیگابایت می‌رسد. اما اوج قدرت در Grace Blackwell Superchip است: یک تراشه با ۳۸۴ گیگابایت VRAM که ۷۲ عدد از آن در یک رک واحد قرار می‌گیرد و به‌عنوان یک GPU واحد با ۱۳ تا ۱۴ ترابایت حافظه مجازی عمل می‌کند. هزینه هر رک حدود ۳ میلیون دلار است – رقمی که اهمیت مدیریت خطاها را دوچندان می‌کند.

مقایسه اندازه GPU مصرفی و H100 انویدیا

مفاهیم اولیه سخت‌افزار GPU

در این ارائه، اصطلاحات مهمی معرفی می‌شوند: خطاهای XID (کدهای خطای GPU مشابه وحشت هسته)، ECC (کد تصحیح خطا برای حافظه)، Streaming Multiprocessor (واحدهای محاسباتی)، NVLink (اتصال پرسرعت GPU به GPU)، و گاز throttling حرارتی (کاهش سرعت در دمای بالا). جالب است بدانید یک H100 حدود ۹۰ سنسور حرارتی دارد که هرکدام می‌توانند باعث throttling شوند. ابزار DCGM (مدیر GPU مرکز داده) شامل دو برنامه است: dcgmi برای کنترل و DCGM-Exporter برای نظارت در محیط Kubernetes.

خوشه‌های GPU و ریشه‌های تاریخی

داستان از سال ۲۰۰۴ آغاز می‌شود، زمانی که محققان دانشگاه استونی بروک برای شبیه‌سازی حملات شیمیایی و بیولوژیکی در میدان تایمز از روش Lattice Boltzmann و اولین خوشه‌های GPU استفاده کردند. امروزه، خوشه‌های GPU به ستون فقرات مدل‌های بزرگ زبانی (LLM) مانند GPT و Claude تبدیل شده‌اند. اما با این مقیاس، خطاها نیز مقیاس می‌یابند: از خرابی‌های NVLink گرفته تا ECC Errors و thermal throttling.

نمودار خطاهای رایج در خوشه‌های GPU

مهندسی هرج‌ومرج: آزمایش تاب‌آوری در مقیاس

برایان اولیور توضیح می‌دهد که مهندسی هرج‌ومرج در GPUها مانند آزمایش‌های معمول نیست. ابزارهایی مانند Litmus و Chaos Mesh برای تزریق خطا در Kubernetes طراحی شده‌اند، اما برای GPUها نیاز به رویکردی خاص داریم. یکی از تکنیک‌ها استفاده از NVML (کتابخانه مدیریت NVIDIA) برای شبیه‌سازی گاز throttling یا قطع NVLink است. همچنین می‌توان از DCGM برای اعمال محدودیت‌های حافظه یا شبیه‌سازی خطاهای ECC استفاده کرد. نکته مهم: برخی از این آزمایش‌ها ممکن است منجر به آسیب فیزیکی به GPUها شوند، بنابراین باید با احتیاط انجام شوند.

«این آزمایش‌ها به ما نشان می‌دهند که سیستم‌هایمان در مواجهه با خطاهای غیرمنتظره چگونه رفتار می‌کنند. در مقیاس میلیون‌دلاری، هر دقیقه downtime هزینه‌های سنگینی دارد.»
فرآیند مهندسی هرج‌ومرج در خوشه GPU

چالش‌ها و نکات عملی

یکی از چالش‌های اصلی، عدم وجود ابزار استاندارد برای مهندسی هرج‌ومرج GPU است. بیشتر راه‌حل‌ها دست‌ساز و مبتنی بر اسکریپت‌های سفارشی هستند. برایان پیشنهاد می‌کند:

  • از Kubernetes HPA برای مدیریت بار استفاده کنید.
  • خطاهای NVLink را با قطع کردن پورت‌های مجازی شبیه‌سازی کنید.
  • با استفاده از Grafana و Prometheus معیارهای DCGM را زیر نظر بگیرید.
  • آزمایش‌ها را ابتدا در محیط staging و با GPUهای ارزان‌تر انجام دهید.

این ارائه در نهایت تأکید می‌کند که مهندسی هرج‌ومرج در GPUها هنوز در مراحل اولیه است و نیاز به نوآوری و آزمایش‌های مداوم دارد. برای اطلاعات بیشتر به مستندات Kubernetes و DCGM مراجعه کنید.