به گزارش از وبسایت cncf 📣 پروژه HAMi به‌عنوان یک پروژه جوجه‌کشی (Incubating) در CNCF پذیرفته شد و کمیته نظارت فنی (TOC) این انتخاب را اعلام کرده است.

تیم‌های زیرساخت هوش مصنوعی مدرن بارها با چالشی مشترک مواجه می‌شوند: GPUهای گران‌قیمت اغلب به‌صورت جزئی استفاده می‌شوند، زیرا هر دستگاه به کارهایی اختصاص می‌یابد که تنها به بخش کوچکی از منابع نیاز دارند. در نتیجه تیم‌ها برای شتاب‌دهنده‌های کمیاب رقابت می‌کنند و هر فروشنده سخت‌افزار یک مدل عملیاتی متفاوت ارائه می‌دهد. زمان‌بندی شتاب‌دهنده‌های ناهمگن نیازمند سطحی از آگاهی از دستگاه است که فراتر از نیازهای محاسبات عمومی است.

HAMi این مشکل را با ارائه یک میان‌افزار مجازی‌سازی GPU بومی ابر و متن‌باز برای Kubernetes حل می‌کند. با HAMi، تیم‌های پلتفرم می‌توانند یک GPU فیزیکی (یا NPU، DCU، MLU یا دیگر شتاب‌دهنده‌ها) را بر اساس حافظه، هسته یا تعداد دستگاه‌ها به واحدهای کوچکتر تقسیم کنند؛ جداسازی زمان‌اجرای سخت را بین بارهای کاری اعمال کنند و پادها را با استفاده از binpack، spread و سیاست‌های آگاه از توپولوژی برنامه‌ریزی نمایند — همه بدون نیاز به تغییر در کد برنامه یا مانیفست‌های موجود Kubernetes ⚙️.

طراحی HAMi چندفروشنده‌ای است و یک رابط یکنواخت و سازگار ارائه می‌دهد؛ این رویکرد باعث متمایز شدن آن از ابزارهای مبتنی بر plugin هر فروشنده می‌شود.

نکات عطف و رشد اکوسیستم: از زمان پیوستن به CNCF Sandbox در 21 آگوست 2024، پذیرش و مشارکت در پروژه به‌طور قابل‌توجهی افزایش یافته است. این پروژه بیش از 550 سازمان مشارکت‌کننده دارد و پنج مطالعه موردی مستقل CNCF منتشر شده که کاربردهای تولیدی مانند آموزش، پلتفرم‌های ابری و راهکارهای سازمانی را مستند کرده‌اند — از جمله استقرار HAMI توسط DaoCloud روی بیش از 10000 GPU در بیش از 10 مرکز داده در سرزمین اصلی چین و هنگ‌کنگ. مخزن اصلی پروژه حدود 3500 ستاره و بیش از 550 فورک دارد و پایه مشارکت‌کنندگان آن به‌سرعت رشد کرده است: در مجموع 2687 مشارکت‌کننده با رشد سالانه حدود 43 درصد. نگهدارندگان از شرکت‌هایی مانند dynamia.ai و NVIDIA همراه با توسعه‌دهندگان مستقل فعالیت می‌کنند. تاکنون 16 نسخه منتشر شده و نسخه پایدار فعلی 2.9.0 است 📈.

HAMi به ادغام‌های عمیق‌تری در اکوسیستم CNCF ادامه می‌دهد: یکپارچه‌سازی با Volcano برای زمان‌بندی دسته‌ای AI و با Koordinator برای گردش‌های کاری اشتراک‌گذاری GPU، در حالی که با مسیر پیش‌فرض زمان‌بندی Kubernetes نیز سازگار است. نگهبانان پروژه درباره ادغام بیشتر با پروژه‌هایی مانند Kueue برای کامل‌تر کردن پشته زیرساخت هوش مصنوعی بومی ابری بحث کرده‌اند.

«زمانی که در سال 2024 در KubeCon پاریس شرکت کردم، HAMI به‌تازگی متن‌باز شده بود. امروز دیدن اینکه HAMI به یک پروژه انکوباتور CNCF با جامعه‌ای بین‌المللی تبدیل شده است، بسیار امیدوارکننده است — پشتیبانی CNCF نقطه عطف مهمی برای آینده است.» — Mengxuan Li، Maintainer, HAMi ✨

«رسیدن HAMI به مرحله جوجه‌کشی لحظه‌ای غرورآمیز برای همه ماست. HAMI اکنون از ده‌ها GPU ناهمگن پشتیبانی می‌کند و یک جامعه جهانی با صدها مشارکت‌کننده و کاربران نهایی دارد. نکته معنادار این پیشرفت تنها فناوری نیست، بلکه ساختن اکوسیستم پشت آن است.» — Xiao Zhang، Maintainer, HAMi

کمیته نظارت فنی CNCF (TOC) نقش هدایت فنی برای جامعه Cloud-native را بر عهده دارد: چشم‌انداز فنی بنیاد را تعریف و حفظ می‌کند، پروژه‌های جدید را ارزیابی و سطوح بلوغ را مدیریت می‌نماید، استانداردها و بهترین شیوه‌های بین‌پروژه را تعیین می‌کند و با کاربران نهایی برای تضمین پایداری طولانی‌مدت همکاری می‌کند. TOC از پروژه‌هایی مانند HAMi حمایت می‌کند تا در مسیر ترقی به سمت فارغ‌التحصیلی پیش بروند.

اجزای اصلی HAMi از چند مؤلفه تشکیل شده است:
Mutating Webhook: رهگیری ارسال‌های پاد در API Server Kubernetes و بازنویسی فیلدهای زمان‌بندی و درخواست منابع برای بارهایی که دستگاه مجازی می‌خواهند.
Scheduler Extender: فیلتر، امتیازدهی و اتصال پادها به گره‌ها و دستگاه‌ها با استفاده از binpack، spread و سیاست‌های آگاه از توپولوژی.
Device Plugins: پلاگین‌های اختصاصی فروشنده که شتاب‌دهنده‌ها را به Kubernetes ثبت می‌کنند و منابع کسری دستگاه را به کانتینرها تخصیص می‌دهند.
HAMi-Core: لایه مجازی‌سازی درون کانتینر که محدودیت‌های سخت زمانی اجرا روی حافظه GPU و محاسبات را اعمال کرده و درایور اصلی CUDA را برای دستگاه‌های NVIDIA رهگیری می‌کند.
HAMi-WebUI: رابط بصری برای مدیریت خوشه و دستگاه که به اپراتورها دیدی برای تخصیص و استفاده در سراسر ناوگان می‌دهد.
لایه مشاهده‌پذیری: نقطه‌پایانی سازگار با Prometheus و نمونه‌های داشبورد Grafana برای نظارت بر استفاده شتاب‌دهنده در سراسر خوشه.

نقشه راه: تیم HAMi روی قابلیت‌های برنامه‌ریزی پیشرفته مانند gang scheduling، preemption و autoscaling کار می‌کند و متعهد به ارائه راهکاری برای نظارت بر مصرف DRA است. همچنین توسعه‌دهندگان در تلاش‌اند تا پشتیبانی از دستگاه‌هایی مانند AMD Mi Series و PPU را اضافه کنند و همکاری با پروژه‌های زمان‌بندی دیگر تحت چتر CNCF از جمله KAI-scheduler، Koordinator، Kueue، llm-d و Volcano را گسترش دهند. برای دیدن نقشه راه کامل: https://github.com/Project-HAMi/HAMi/issues/1889 🛣️

به‌عنوان یک پروژه میزبان CNCF، HAMi بخشی از بنیاد بی‌طرفی است که هماهنگ با منافع فنی آن عمل می‌کند و از حاکمیت، پشتیبانی بازاریابی و دسترسی به جامعهِ گسترده‌تری در چارچوب Linux Foundation بهره‌مند است. HAMi با فناوری‌های انکوباتوری و پروژه‌های متعددی ارتباط و همکار دارد از جمله Backstage، Buildpacks، Chaos Mesh، Container Network Interface (CNI)، Contour، Cortex، CubeFS، Emissary-Ingress، gRPC، in-toto، Keptn، Keycloak، KubeEdge، Kubeflow، KubeVela، KubeVirt، Litmus، OpenKF، NATS، OpenTs، OpenMetrics، Operator Framework، Thanos و Volcano.

برای کسب اطلاعات بیشتر درباره HAMi به project-hami.io مراجعه کنید، مخزن GitHub را بررسی نمایید یا به جامعه در Discord بپیوندید 🔗