
Vx מכניסה זיכרון הטרוגני וטופולוגיה למערכת הטיפוסים
Vx היא שפת תכנות מערכת לחישובים הטרוגניים: היא הופכת את זיכרון CPU, GPU, NPU ומאיצים לחלק מבדיקת הטיפוסים, כולל בדיקות גישה לא תקינה מהמארח, עם העברות מפורשות ופריסה מותאמת למכונה.
מיקום הזיכרון הוא חלק מהטיפוס
Vx מתייחס לחישובים הטרוגניים כבעיית רמת שפה ולא בוטח ב-runtime שקוף לפריסה על מאיץ. לטנזור המחובר לזיכרון רוחב פס גבוה של NPU יש טיפוס שונה מאותו טנזור ב-DRAM של המארח, והעברה בין מיקומים אלה דורשת העברה מפורשת. בזיכרון המאוחד של Apple ההעברה הזו מקומפלת כמעט לכלום, אבל במקור עדיין מופיע שהלוקליות של הנתונים נבדקת ללא פרופילינג של הבינארי.
המהדר בודק גישה שגויה מהמארח למצביעי ההתקן, ערכי NPU המחוברים בתוך ביטויי המארח ופריסות שעריכת העבודה שלהן חורגת מהמרחב של זיכרון היעד. כללים נוספים כוללים חוצים שנקראו עד נראות העברה אסינכרונית, שגיאות שימוש אחרי העברה, העברה בלי נתיב מוכרז בין מרחבי זיכרון ודיפרנציאציה באזורים ללא adiungate מוגדר. פרובר SMT מטפל בחוזי נראות העברה אסינכרונית.
קובצי מכונה מגדירים מגבלות חומרה
במקום להטמיע קשיחות של מודל ערכים, Vx קורא קובץ מכונה שמתאר את היררכיית הזיכרון ואת הקישוריות של רכיב מסוים. המהדר משתמש במידע הזה כדי לאשר או לדחות פריסות. המרות היחידות משתמשות במספרים שלמים מדויקים: קידומות SI הן עשרוניות, וקידומות IEC הן בינאריות, מה ששומר על המשמעות של גדלים כמו GB ו-GiB.
המאגר כולל קובצי מכונה עבור H100, H200, B200, A100, MI300X, Apple M4 ועבור מספר צמתי GPU. הקבצים מציינים את המקורות שלהם ומחלצים מספרים שנותרו לא מאושרים.
חזית מקבילית ומספר מאחורים
בחזית המכוונת נתונים של Vx, כל סמל, טיפוס נומינלי וגרסה מונומורפית מיוצגים באמצעות מזהה שטוח של 256-ביט. מערכת הטיפוסים הנומינליים והמודולים החובה ל-boxing עבור טיפוסים רקורסיביים משחררים אחד את השני, מה שמאפשר לצינור הקומפילציה להריץ על ליבות את מנוע ה-query ללא תחרות על lock. הקומפילציה עוברת על מערכים שטוחים ולא על עצים שנחקרו במצביעים.
ערכות הבדיקה מאשרות שפריסות סדרתיות ומקביליות מפיקות MLIR זהה לבייטים בזמני תצורת תהליכונים שונים, בקנה מידה של בנצ'מרק. הערבונות הזה מתפשט לפלט של החזית; שאר העיבוד שייך ל-LLVM. המאחורים כוללים CPU מסוג x86-64 ו-arm64, GPU של NVIDIA, AMX ו-ANE של Apple, ואזורים מרוחקים שמנוהלים באמצעות manifest מופץ. יצרנים יכולים להרחיב את Vx עם תוספי MLIR pass במקום לאתר את המהדר.
נוצר לעומסים קבועים ורגישים לביצועים
Vx מיועד לתוכנה שצריכה להיות נכונה ומהירה על סיליקון מגוון. הפרויקט מכיר בכך שהעיצוב שלו, מכוון נתונים, ahead-of-time ומחולק אזורים באופן סטטי, פחות מתאים לעומסי עבודה שמחליפים ארכיטקטורה, בודקים צורות טנזורים ומאריכים דינמית כשההחלטות האלה עדיין משתנות. גרסאות ההתקנה שלו כוללות macOS על Apple Silicon ו-Linux x86_64, והמדריכים המלווים כוללים שפה, טופולוגיות, פריסת זיכרון וקובצי מכונה.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.