RDMA - למה לוותר על המעבד כדי להרוויח מהירות?
RDMA - למה לוותר על המעבד כדי להרוויח מהירות?
כששרת אחד רוצה לשלוח מידע לשרת אחר, הדרך הרגילה עוברת דרך מערכת ההפעלה והמעבד (CPU): המעבד קורא את הנתונים מהזיכרון, שולח אותם דרך הכרטיס הרשת, ובצד השני המעבד שוב מתערב כדי להעתיק את הנתונים למקום הנכון.
נשמע סביר - אבל זה יקר בזמן ובמשאבים.
כאן נכנס RDMA
RDMA (Remote Direct Memory Access) הוא מנגנון שמדלג על המעבד לחלוטין בזמן העברת הנתונים.
במקום שכל שליחה תעבור דרך מערכת ההפעלה, כרטיס הרשת (NIC) מקבל הרשאה לגשת ישירות לזיכרון של השרת האחר.
כך הנתונים זורמים מזיכרון לזיכרון - בלי עצירות ביניים. זו הסיבה שה-latency יורד בצורה דרמטית, והמעבד נשאר פנוי לעבודה אמיתית (כמו להריץ את המודל שלך).
למה זה כל כך חשוב ב-AI וב-Inference?
במערכות שבהן כמה שרתים עובדים יחד על אותו מודל, כמו בהפצה של LLM גדול או אימון משותף, העברת נתונים מהירה היא צוואר הבקבוק המרכזי.
RDMA מאפשר שכל המאיצים, המעבדים והזיכרונות “ידברו” זה עם זה כמעט כמו בתוך אותו שרת.
זה ההבדל בין מערכת שעובדת לסירוגין - לבין מערכת שמספקת Throughput יציב ו-Latency עקבי.
דוגמה פשוטה
תדמיינו שני מחשבים שמחליפים קבצים: בדרך הרגילה, כל אחד מהם מעתיק את הקובץ כמה פעמים - למערכת ההפעלה, לדרייבר, לכרטיס הרשת וחוזר חלילה.
עם RDMA זה כמו לפתוח “צינור ישיר” בין שני הזיכרונות, ולהזרים את המידע בלי לעצור אפילו לרגע.
טיפ מעשי
RDMA לא עומדת בפני עצמה - כדי להשתמש בה בפועל, צריך תמיכה בתשתית:
- כרטיס רשת שתומך ב-RDMA (כמו RoCE או InfiniBand)
- מערכת הפעלה ודרייברים מתאימים
- קונפיגורציה נכונה ברשת עצמה