GPUs של NVIDIA מקבלים תמיכה ב- SYCL לאחר Codeplay תורם לפיתוח תקן DPC ++

חוּמרָה / GPUs של NVIDIA מקבלים תמיכה ב- SYCL לאחר Codeplay תורם לפיתוח תקן DPC ++ קריאה של 2 דקות

Nvidia



לאחר שזכו לתמיכה מחברות מובילות כמו אינטל, Xilinx, Renesas ו- Imagination Technologies, ה- SYCL (מבוטא 'מגל'), היזמים המשתמשים ב- NVIDIA GPUs יוכלו כעת גם להשיג את התועלת. Codeplay, הארגון שתורם באופן קבוע לקהילת SYCL, הגיע לשיאו בפיתוח המתקדם של DPC ++ (Data Parallel C ++), המתקן מיחזור ושימוש חוזר בקוד במספר פלטפורמות חומרה. התוצאה היא ComputeCpp, יישום Codeplay עצמו של SYCL .

המהדורה האחרונה של ComputeCpp מציעה תמיכה ניסיונית ב- GPU של NVIDIA המשתמשים ב- OpenCL וב- PTX של NVIDIA

בשנה שעברה נקטה אינטל צעד מכריע לתת דחיפה ל- SYCL, ואף החלה לעבוד על תקן oneAPI. ה- oneAPI כולל את DPC ++ (יישום של SYCL עם סיומות) עבור המעבדים, המעבדים הגרפיים וה- FPGA של אינטל. התנועה הפכה במהרה למדי ותפסה תאוצה לאחר שתמיכה ב- SYCL הגיעה מ- Xilinx, Renesas ו- Imagination Technologies. במילים פשוטות, מפתחי תוכנה מסוגלים כעת למקד למגוון רחב של מכשירים המשתמשים ב- SYCL.



ה- ComputeCpp מציע תמיכה ניסיונית ב- NVIDIA GPUs באמצעות OpenCL ו- PTX של NVIDIA. אך DPC ++ (יישום ה- SYCL של אינטל) מציע הזדמנות להוסיף תמיכה מלאה ב- GPUs של NVIDIA המשולבים במהדר LLVM מבלי לעבור דרך OpenCL. Codeplay הודיעה כי הם מקורות פתוחים בשלב ניסיוני ראשוני ביישומם המאפשר למפתחי SYCL למקד את מעבדי NVIDIA. בסיס הקוד ליישום זה נשאר מזלג נפרד הן מפרויקט המהדר הראשי של LLVM והן מסניף DPC ++. הארגון הוסיף כי בכוונתם לעבוד עם אינטל כדי להוסיף את תמיכת ה- NVIDIA GPU למחבר המהיר של אינטל / LLVM.

כיצד מפתחים יכולים ליהנות מתמיכת SYCL עבור מעבדי NVIDIA?

פרויקט זה מאפשר למפתחים למקד NVIDIA GPUs באמצעות קוד SYCL, מבלי לעבור על שכבת OpenCL במערכת. במילים אחרות, בעזרת NVIDIA GPU בלבד, מפתחים יכולים להריץ DPC ++ במערכת שלהם כדי לאסוף יישומי SYCL. יתר על כן, כל יישום CUDA קיים יכול להיות מועבר באופן הדרגתי ל- SYCL באמצעות תמיכת CUDA, ולאחר מכן להריץ אותו על פלטפורמה שאין לה CUDA. זה חוסך בבירור זמן רב ומאמצים חוזרים ונשנים.

Codeplay הציעה הוראות בקובץ README של הפרויקט המסביר כיצד להשתמש בקצה האחורי של NVIDIA עבור DPC ++. מפתחים נדרשים להשתמש בכמה דגלים בעת הידור, ובקוד כלשהו כדי להגדיר את בורר המכשירים שלהם כדי להבטיח שזמן הריצה יודע לאיזה מכשיר למקד. בפרט הסעיף ' בנה שרשרת כלים SYCL עם תמיכה ב- NVIDIA CUDA ”ולאפשרויות המהדר של Clang יש הוראות ספציפיות .

Codeplay אישרה כי הם ניהלו בהצלחה את הפרויקט עם אובונטו 18.04 באמצעות CUDA 10.1 ב- Titan RTX GPU (יכולות חישוב 7.5). הצוות מבטיח כי עליו לעבוד גם על גרסאות לינוקס אחרות עם כל NVIDIA GPU תואם SM 5.0 ומעלה. עם זאת, יישום ה- SYCL המהולל יוכל למקד רק ל- CUDA או ל- OpenCL, ולא לשניהם בו זמנית.