מפרטים סופיים של OpenCL 3.0 פורסמו

קונצרן Khronos, האחראי לפיתוח מפרטי משפחת OpenGL, Vulkan ו-OpenCL, объявил על פרסום המפרט הסופי OpenCL 3.0, הגדרת ממשקי API והרחבות של שפת C לארגון מחשוב מקביל בין פלטפורמות באמצעות CPUs מרובי ליבות, GPUs, FPGAs, DSPs ושבבים מיוחדים אחרים, מאלו המשמשים במחשבי על ושרתי ענן ועד שבבים שניתן למצוא במכשירים ניידים ו טכנולוגיה מובנית. תקן OpenCL פתוח לחלוטין ואינו דורש דמי רישוי.

בו זמנית פורסם פתוח OpenCL SDK עם כלים, דוגמאות, תיעוד, קבצי כותרות, כריכות C++ וספריות C לפיתוח יישומים התואמים ל-OpenCL 3.0. גַם מיוצג על ידי הטמעה ראשונית של OpenCL 3.0 המבוססת על מהדר Clang, שנמצאת בשלב של סקירת תיקונים להכללה במבנה הראשי של LLVM. חברות כמו IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ו-Toshiba לקחו חלק בעבודה על התקן.

מפרטים סופיים של OpenCL 3.0 פורסמו

הכי בולט תכונות OpenCL 3.0:

  • ה-API של OpenCL 3.0 מכסה כעת את כל הגרסאות של OpenCL (1.2, 2.x), מבלי לספק מפרט נפרד לכל גרסה. OpenCL 3.0 מספק את היכולת להרחיב את פונקציונליות הליבה באמצעות שילוב של מפרטים נוספים שיהיו מרובדים בצורה של אפשרויות מבלי לחסום את האופי המונוליטי של OpenCL 1.2/2.X.
  • רק פונקציונליות התואמת ל-OpenCL 1.2 מוכרזת כחובה, וכל התכונות המוצעות במפרטי OpenCL 2.x מסווגים כאופציונליים. גישה זו תקל על יצירת יישומים מותאמים אישית התואמים ל-OpenCL 3.0, ותרחיב את מגוון המכשירים בהם ניתן להשתמש ב-OpenCL 3.0. לדוגמה, יצרנים יכולים ליישם תמיכה ב-OpenCL 3.0 מבלי ליישם תכונות ספציפיות של OpenCL 2.x. כדי לגשת לתכונות שפה אופציונליות, OpenCL 3.0 הוסיפה מערכת של שאילתות בדיקה המאפשרת לך להעריך את התמיכה של רכיבי API בודדים, כמו גם פקודות מאקרו מיוחדות.
  • איחוד עם מפרטים שפורסמו בעבר מקל על העברת יישומים ל-OpenCL 3.0. יישומי OpenCL 1.2 יוכלו לפעול במכשירים התומכים ב-OpenCL 3.0 ללא שינוי. יישומי OpenCL 2.x גם לא ידרשו שינויי קוד, כל עוד סביבת OpenCL 3.0 מספקת את הפונקציונליות הנדרשת (כדי להבטיח ניידות עתידית, מומלץ ליישומי OpenCL 2.x להוסיף שאילתות בדיקה כדי להעריך תמיכה בתכונות OpenCL 2.x משומש). מפתחי מנהלי התקנים עם יישומי OpenCL יכולים לשדרג בקלות את המוצרים שלהם ל-OpenCL 3.0, להוסיף רק עיבוד שאילתות עבור קריאות API מסוימות, ולהגדיל בהדרגה את הפונקציונליות לאורך זמן.
  • מפרט OpenCL 3.0 מותאם לסביבה, להרחבות ולמפרטים של ייצוג הביניים הגנרי SPIR-V, המשמש גם את ה-API של Vulkan. תמיכה במפרט SPIR-V 1.3 כלולה ב-OpenCL 3.0 הליבה כתכונה אופציונלית. באמצעות שימוש בייצוג ביניים SPIR-V נוספה תמיכה בפעולות עם תת-קבוצות עבור ליבות מחשוב.
    מפרטים סופיים של OpenCL 3.0 פורסמו

  • נוספה תמיכה בהרחבה לביצוע פעולות DMA אסינכרוניות (Asynchronous DMA), נתמכת בשבבים דמויי DSP עם גישה ישירה לזיכרון. DMA אסינכרוני מאפשר להשתמש בטרנזקציות DMA להעברת נתונים בין זיכרון גלובלי למקומי באופן אסינכרוני, במקביל לחישובים או פעולות העברת נתונים אחרות.
  • מפרט C Parallel Programming Extensions עודכן ל- גרסה 3.0, והפיתוח של הרחבות שפות OpenCL עבור C++ הופסק לטובת פרויקט "C++ for OpenCL". C++ עבור OpenCL הוא מהדר המבוסס על Clang/LLVM ו שידור ליבות C++ ו-OpenCL C לייצוג ביניים SPIR-V או קוד מכונה ברמה נמוכה. באמצעות שידור, SPIR-V מארגן גם את ההרכבה של יישומי C++ באמצעות ספריית התבניות SYCL, מה שמפשט את היצירה של יישומים מקבילים.

    מפרטים סופיים של OpenCL 3.0 פורסמו

  • מהדר הוצע לשידור OpenCL דרך ה-API של Vulkan clspv, הממיר ליבות OpenCL לייצוג Vulkan SPIR-V, ושכבה clvk כדי לאפשר ל- OpenCL API לעבוד על גבי Vulkan.

    מפרטים סופיים של OpenCL 3.0 פורסמו

מקור: OpenNet.ru

הוספת תגובה