בשבוע שעבר הוכרז תקן חדש המאפשר לנצל את עצמת העיבוד המקבילית של מעבדים גרפיים מודרניים. התקן בשם OpenCL 1.0 חופשי מתמלוגים ומתאים למערכות מחשב רבות.
חברת קרונוס (Khronos) הכריזה על תקן ה-OpenCL 1.0 (ר"ת Open computer Language) אשר מספק סביבת תכנות אחידה למפתחים, המאפשרת ניצול יעיל של מערכות מחשוב מודרניות המכילות תמהיל מגוון של מעבדים מרובי ליבות, מעבדים גרפיים, Cell, ארכיטקטורות שונות ומעבדים מקביליים אחרים כגון DSPs. היצרניות המובילות של מעבדים גרפיים, AMD, NVIDIA ואינטל, כמו גם יצרנים נוספים, כבר הודיעו על תמיכתם בתקן החדש. התקן הוצע במקור על ידי חברת אפל במסגרת מערכת ההפעלה OS X Snow Leopard שאמורה להשתחרר בשנה הבאה.
פוטנציאל מבוזבז
למחשבים האישיים המודרניים, בין אם הם נמצאים מתחת לשולחן, על ברכינו, או בחדר השרתים, יש לפחות שני מנגנוני עיבוד רבי עצמה, והכוונה אינה לליבות המעבד הראשי. הראשון הוא כמובן המעבד (CPU) שכולל בדרך כלל שתי ליבות, אך גם 4 ליבות ויותר, ועד 16 ליבות בשרתים מרובי מעבדים. השני, מתוכנן בצורה שונה משמעותית, ומיועד לעיבוד מקבילי מסיבי של מטלות המבוצעות פעמים רבות. מרבית המטלות אותם מבצע המחשב, מנצלות רק את ליבות המעבד הראשי וגם זה לעיתים באופן חלקי בלבד. במבט כולל על המשאבים הקיימים, ישנו בזבוז עצום של כוח עיבוד שהתעלמו ממנו במשך שנים. עצמה בלתי מנוצלת זו שוכנת במעבד הגרפי (GPU) אשר בעבודה יומיומית עם המחשב במגוון רחב של משימות הוא כמעט ואינו פעיל.
אולם בכדי להשתמש בכוח העיבוד הפוטנציאלי הגלום במחשב יש צורך בתוכנה שתדע לנצל את המשאבים באופן יעיל. הרעיון עצמו אינו חדש ונקרא GPGPU (ר"ת General Purpose computation using GPU). חברות כרטיסי המסך פועלות מזה זמן באופן עצמאי בתחום ו-NVIDIA כבר מציעה מערכות המנצלות את כרטיסי המסך כמו מערכת ה-Tesla ו-CUDA, כמו גם AMD המציעה את כרטיסי ה-Firestream. אולם מדובר בתקנים סגורים המוגבלים לחברה אחת ודורשים הבנה בחומרת ה-GPU.
התקן
קבוצת קרונוס, שהיא איחוד של חברות חומרה ופיתוח שאחראית גם לתקן ה-OpenGL, הכריזה בשבוע שעבר באופן רשמי על מפרט ה-OpenCL 1.0. בבסיסו, זהו אוסף של כלים לפיתוח יישומים המסוגלים לנצל כל שילוב של מעבדים וליבות גרפיות הפועלים תחת מגוון מערכות הפעלה לביצוע של מטלות באופן מקבילי. זה יכול להישמע כמו עוד API של שפת תכנות, אולם אין כך הדבר ולכן תידרש כאן השקעה משמעותית בלימוד המפרט החדש מצד המפתחים. התקן הוא חופשי מתמלוגים והמפתחים לא ידרשו לשלם עבור השימוש בו.
![]() |
דיאגרמה המתארת את תהליך העבודה של התקן |
תכניות OpenCL הם קטעי קוד אשר נכתבים בגרסת C יעודית (מבוססת C99 עם הרחבות לעיבוד מקבילי) ונעזרים כמובן בקומפיילר מיוחד. תוצאות הקומפילציה הם קטעי קוד למשימה מסוימת הנקראים קרנל (kernel), שהם רכיבי תוכנה עצמאיים שאינם זקוקים לספריות אחרות כדי לפעול. כלל יחידות העיבוד הזמינות במערכת, ללא תלות במיקומן, ואפילו אם הם פיזיות או וירטואליות, הופכים למה שמכונה index space. למרחב יחידות העיבוד מוקצות משימות ובמידת האפשר משימות היכולות להתבצע במקביל מתפצלות וכל מופע שלהם הופך ל-work item.
מרחב הפעולה של ה-work items איננו מערכת ההפעלה, חלונות או לינוקס. זוהי סביבת מחשוב שונה הנקראת תכנית מארחת (host program) שהיא למעשה היישום שנכתב בסביבת הפיתוח של ה-OpenCL. בשונה מ-API, התכנית המארחת מחלקת פקודות בצורת work items של OpenCL אשר מחכים בתור לביצוע (command queue). הפקודות יוצאות באופן סדרתי מהתור, אך מבוצעות באופן אסינכרוני ומדווחות כאשר הם הסתיימו. בסיום עבודתו של work item הוא אינו מחזיר ערך לפונקציה שקראה לו אלה מייצר אובייקט בשם event object אשר מייצג את תוצאת הריצה.
תמיכה נרחבת
כאמור התקן פותח על ידי חברות רבות ומאומץ באופן מרשים על ידי מרבית החברות המובילות, ביניהם אפל, עם מערכת ההפעלה הבאה שלהם OS X Snow Leopard, וכנראה גם מיקרוסופט עם מערכת ההפעלה הבאה שלהם Windows 7. מערכת נוספת שתוכל לקבל תוספת ביצועים עקב שימוש בתקן היא קונסולת הפלייסטיישן 3 של סוני אשר כוללת כרטיס מסך של NVIDIA ומעבד Cell (בעל שבע ליבות) אשר יכולים להוות פלטפורמה מצויינת לקוד OpenCL. חברת AMD הכריזה גם היא על תמיכה בתקן והודיעה כי היא תתאים את ערכת הפיתוח שלהם עבור כרטיסי ATI Stream לתקן החדש.
הא?
התחפלו תקפיקים…
הכרטיס ימיר לי וידאו והמעבד יציג לי גרפיקה… ואללה יופי, פורים הגיע
מהפכה
זה אכן הדבר הבא, יש כל כך הרבה כח בGPU שלנו שזה לא מצחיק יותר.
כתבה מצויינת!
הזדמנות םז לATI
עורכי וידאו הולכים לקפוץ על כל כרטיס של ATI. עם 800 מעבדי זרימה שיש ל4870 ויכולת של 2 טרה פלופ אנחנו הולכים לראות שיפור במאות אחוזים באפליקציות תומכות. ראיתי את הרעיון בכתבה לפני כמה זמן אבל פה יש מידע נוסף
יש מצב שזה יריץ את קרייסס ???
אההה האאא !!
השאלה הבנאלית התורנית :)-
….נחמד נחמד..
חחחחח 4 אתה מפגר…ומכל מה שאמרו פה הבנתי רק
Nvidia intel AIT CUDA Tesla windows…
מה?!?!..סתם סתם למרות שעדיין לא רואה שבזמן הקרוב באמת רוב אוכלוסיית ה..ממחשבים?!..ישתמשו באפליקצייה הנתונה רק בגלל שזה בנתיים לידייהם המוכשרות של התוכניתנים למיניהם…אז ניראה מתי יתחילו לצוץ דרכים טיפה יותר קלות להשתמש בכח העיבוד הנעלה הזה…
בלשוי 11 רמת גן
זה נשמע מעולה בשבילי לרינדור תלת מימד
מעניין מתי זה נרעה תוכנות תומכות
WINDOWS 7 יתמוך בOPEN CL?
ל-4, יריץ כמו מלך –
http://www.guru3d.com/article/geforce-gtx-295-preview/10
ל-4. זו לא שאלה בנאלית אלא שאלה אנאלית..
חחחחחחחחחחחחחחחחחחח
ל -4
אתה לא מעודקן.
המשחק החדש להתלונן עליו זה GTA4 שלוקח את קריסס בהליכה. 🙂
עוד מעט לא נצטרך כרטיסי מסך
נוכל לשחק CRYSIS על הכי גבוהות עם מובנה D:
9 חחחחחחחח
לא.
קרונוס לא חברה… קרונוס לא משחקת
קרונוס היא אוסף של חברות שמקדמות סטנדרט. המטרה שלהם הוא להגיע סטנדרט פתוח ומוסכם שיאפשר פיתוח חופשי לכל יצרן חומרה ומפתח תוכנה. דוגמא לסטנדרטים אחרים, opengl, usb etc.
הכתבה טובה. התגובות קצת פחות
כל הכבוד על הכתבה. אכן OpenCL הוא הסטנדרד החלוצי בתחום אשר מבטיח ממשק תוכנה סטנדרטי לכתיבת קוד עתיר חישובים נומריים על כל החומרה הנמצאת ברשות המחשב. אם זה מספר מעבדים, מספר כרטיסי GPU וכדומה. אנחנו בתעשייה מחכים למימוש הראשון של הסטנדרד עבור Windows או Linux.