Topograph انویدیا و زمانبندی توپولوژیآگاه GPU
خلاصهٔ کاملتر
انویدیا تو یه پست فنی Topograph رو معرفی کرده، یک ابزار اوپنسورس که توپولوژی شبکهٔ کلاستر (یعنی این که کدوم نود و کدوم GPU از نظر شبکه به هم نزدیکن) رو کشف میکنه و همون نقشه رو به زبون زمانبند ترجمه میکنه. خروجیش میتونه لیبل نود در Kubernetes، فایل topology.conf اسلورم یا ConfigMap اسلینکی باشه.
تو این مقاله اومده که چیدمان بد کار روی GPU دامنههای توپولوژی رو تکهتکه میکنه و ترافیک رو میفرسته روی لینکهای مشترک؛ نتیجهش throughput کمتر، هزینهٔ بیشتر هر جاب و GPUهاییه که برق میکشن ولی منتظر دادهن. برای اینکه مقیاس قضیه دستتون بیاد: NVLink نسل پنجم (بلکول مثل GB200/GB300) به هر GPU 1.8 ترابایت بر ثانیه پهنای باند دوطرفه میده و نسل ششم (Vera Rubin) 3.6 ترابایت، در حالی که پورتهای Quantum InfiniBand تا 800 گیگابیت بر ثانیهن.
معماری Topograph دو مفهوم داره: provider که توپولوژی رو از APIهای ابری یا فابریک داخلی میخونه و به یه مدل مشترک تبدیل میکنه، و engine که همون مدل رو به فرمت زمانبند مینویسه. گوگل کلاد، Lambda، Nebius، Nscale و OCI پرووایدر آماده دارن و برای کلاستر داخلی خودتون هم پرووایدر InfiniBand با ibnetdiscover یا NetQ هست. نویسنده تأکید میکنه Topograph توپولوژی گزارششده رو نشون میده نه اون چیزی که انتظار دارید.
روی کوبرنتیز، Topograph نزدیکی فابریک رو با لیبلهایی مثل fabric.topograph.run/tier-0 (نزدیکترین سوییچ به نود) تا tier- و دامنهٔ شتابدهنده رو با accelerator.topograph.run/domain علامت میزنه. زمانبند پیشفرض پادها رو تکتک میچینه، پس با podAffinity فقط ترجیح میگیرید نه چیدمان بهینهٔ کل گروه. برای gang scheduling واقعی، KAI Scheduler یا Kueue TAS همین لیبلها رو میخونن:
annotations:
kai.scheduler/topology: cluster-topology
kai.scheduler/topology-required-placement: fabric.topograph.run/tier-1
kai.scheduler/topology-preferred-placement: fabric.topograph.run/tier-0لیبل required گروه رو داخل یک دامنهٔ tier-1 نگه میداره و preferred میگه اگه شد همه رو تو یک tier-0 جمع کن. برای اسلورم، Topograph با پکیج deb یا rpm نصب میشه و با POST به /v1/generate فایل توپولوژی رو در قالب tree یا block میسازه؛ اسلورم 25.05 قالب YAML مخصوص هر پارتیشن رو هم اضافه کرده که پشتیبانی میشه. روی اسلینکی، یعنی اسلورم روی کوبرنتیز از SchedMD که دسامبر 2025 انویدیا خریدش، خروجی تو یه ConfigMap نوشته میشه.
نکات کلیدی:
- Topograph اوپنسورسه و از مخزن dsx-ai-factory/topograph نصب میشه
- engineها: k8s (لیبل نود)، slurm ، slinky (ConfigMap) و nfd
- حداقل نیاز روی کوبرنتیز: نسخهٔ 1.27 یا بالاتر و Helm 3.10+ یا 4.x
- تأخیر تجمیع درخواستها اجباریه و مقدار معمولش 15 ثانیهست
- پارامتر اختیاری reconfigure بعد از نوشتن فایل scontrol reconfigure رو اجرا میکنه
- کوبرنتیز 1.36 زمانبندی توپولوژیآگاه رو بهشکل alpha و در قالب KEP-5732 اضافه کرده




