Vortex 3.0, קוד פתוח GPGPU המבוסס על ארכיטקטורת RISC-V, פורסם

פרויקט Vortex 3.0, המפתח GPGPU בקוד פתוח המבוסס על ארכיטקטורת מערך הפקודות RISC-V ומיועד לחישוב מקבילי באמצעות ממשק ה-API של OpenCL ומודל הביצוע SIMT (הוראות יחידה, הליכי משנה מרובים), זמין כעת. ניתן להשתמש בפרויקט גם למחקר גרפיקה תלת-ממדית ולפיתוח ארכיטקטורות GPU חדשות. הסכמות, תיאורי בלוקי החומרה ב-Verilog, הסימולטור, הדרייברים ותיעוד התכנון הנלווה מופצים תחת רישיון Apache 2.0.

GPGPU מבוסס על תקן RISC-V ISA, מורחב עם הוראות נוספות לתמיכה בתכונות GPU וניהול הליכים. שינויים בארכיטקטורת מערך ההוראות של RISC-V נשמרים למינימום, והוראות וקטור קיימות משמשות ככל האפשר. הוראות נוספות כוללות: "tex" להאצת עיבוד מרקמים; vx_rast לבקרת רסטרציה; vx_rop לעיבוד מקטעים, עומק ושקיפות; vx_imadd לפעולות כפל וחיבור; vx_wspawn, vx_split, vx_join, vx_tmc ו-vx_bar להפעלת קבוצות של הליכים (חזיתות גל) המבוצעות במקביל על ידי מנוע SIMD.

ה-GPGPU המפותח תומך בארכיטקטורות של מערכי הוראות RISC-V RV32IMF ו-RV64IMAFD של 32 ו-64 סיביות ויכול לכלול זיכרון משותף אופציונלי, מטמוני L1, L2 ו-L3, ומספר ניתן להגדרה של ליבות, warps והליכים. כל ליבה יכולה לכלול גם מספר ניתן להגדרה של ALUs, FPUs, LSUs ו-SFUs. ניתן להשתמש ב-FPGAs של Xilinx ו-Altera לאב טיפוס, וניתן להשתמש ב-Verilator (סימולטור Verilog), RTLSIM (סימולציית RTL) ו-SimX (סימולציית תוכנה) לסימולציית שבבים.

לפיתוח יישומים, מוצעת ערכת כלים, הכוללת גרסאות מותאמות ל-Vortex של PoCL (מהדר וזמן ריצה של OpenCL), LLVM/Clang, GCC ו-Binutils. הפרויקט תומך במפרט OpenCL 1.2 ומיישם תמיכה בייצוג ביניים של שיידרים בפורמט SPIR-V באמצעות תרגום ל-OpenCL.

השינויים ב-Vortex 3.0 כוללים:

  • נוספה מחסנית גרפיקה לחומרה, הכוללת בלוקים לרסטרציה, מיפוי מרקמים ומיזוג פלט (OM). מנהל התקן Vulkan, vortexpipe, פותח עבור Mesa בהתבסס על מחסנית הגרפיקה המיושמת ומייצר הרסטרים של תוכנת lavapipe.
  • יכולותיו של Tensor Core, שנועדו להאיץ את ביצוע מודלי למידת מכונה, הורחבו, תוך יישום תמיכה בדלילות מובנית לדחיסת מטריצות משקל.
  • פעולת WGMMA (כפל מטריצות ברמת warpgroup) יושמה עבור כפל מטריצות במצב אסינכרוני.
  • נוסף מנוע DXA (האצת העברת נתונים) כדי להאיץ את העברת הנתונים מהזיכרון הגלובלי לזיכרון המקומי.
  • ארכיטקטורה חדשה יושמה המבוססת על מעבד פקודות (CP) ומתזמן חומרה של ליבות מחשוב (KMU - Kernel Management Unit), המאפשר שיגור של הליכי מחשוב לצד השבב.
  • מוצעת ספריית זמן ריצה חדשה הפועלת במצב ללא חסימה ומספקת הפשטות המתורגמות לפקודות חומרה המבוצעות באופן אסינכרוני. נתמכים תורים, אירועים, מודולים וסנכרון המבוססים על מחסומים אסינכרוניים עם סמנטיקה של הגעה/המתנה/אירוע.
  • נוספה תמיכה עבור הוראות מקוצרות (RVC) של RISC-V.
  • תמיכה בחומרה עבור פעולות אטומיות (Hardware Atomics) יושמה.
  • ה-FPU עוצב מחדש לחלוטין והוצגו בלוקים חדשים של מכפיל (Wallace-tree, Folded-radix) וחיבור (Kogge-Stone).
  • נוספה ערימת זיכרון וירטואלית המבוססת על יחידת ניהול הזיכרון (MMU) עם תמיכה בארכיטקטורת כתובת וירטואלית SV32 של 32 סיביות.
  • תמיכה בהרחבת RISC-V Zicond עם יישום של פעולות מותנות.
  • שערי שעון משולבים.
  • תמיכה בשפת HIP (ממשק הטרוגני לניידות) יושמה דרך מסגרת chipStar, המתרגמת HIP ל-SPIR-V.
  • סופקה אינטגרציה מלאה עם סימולטור GEM5, ונוספה תמיכה בסימולטור SimX בארכיטקטורת TLM (מידול ברמת עסקה).
  • נוספה תמיכה בערכות הכלים של Synopsys ו-Yosys לסינתזת לוגיקה לייצור שבבים, וכן תמיכה בשימוש בספריות האלמנטים הסטנדרטיות ASAP7 (7 ננומטר), SAED14 (14 ננומטר) ו-NanGate (15 ננומטר).
  • שרשרת הכלים להפניה עודכנה ל-LLVM 20 ול-POCL 7.0.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster