CUDA

CUDA
מפתח Nvidia עריכת הנתון בוויקינתונים
מחזור חיים 23 ביוני 2007 – הווה (17 שנים) עריכת הנתון בוויקינתונים
גרסה אחרונה 12.6.1 (אוגוסט 2024) עריכת הנתון בוויקינתונים
מערכת הפעלה Microsoft Windows, לינוקס, macOS עריכת הנתון בוויקינתונים
סוג רישיון רישיון קנייני עריכת הנתון בוויקינתונים
אתר רשמי
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

CUDA (ראשי תיבות של Compute Unified Device Architecture – ארכיטקטורת מחשב מאוחדת-התקנים) היא ארכיטקטורת מחשוב מקבילי שפותחה על ידי חברת Nvidia. החברה, המפתחת מעבדים גרפיים (GPU), פיתחה את סביבת CUDA כדי לאפשר לקהילת המתכנתים ומדעני המחשב לפתח ולהריץ תוכניות מחשב בעזרת כרטיסי GPU. התכנות עצמו מתבצע בעזרת שימוש בשפת C for CUDA. סביבת CUDA מאפשרת למפתחים גישה לזיכרון ההתקן, ולסט הפקודות של המכונה הווירטואלית, המכילה אלמנטים חישוביים. סביבת CUDA מיועדת למשימות עיבוד מקבילי מסיבי (Massively Parallel Programming).

CUDA מייצגת את הדור החדש של שפות התכנות אשר מיועדות לתכנות מקבילי.[1]

היסטוריה

מעבד גרפי (GPU) נותן מענה לדרישות של משימות עתירות מחשוב בזמן אמת של גרפיקת תלת-ממד ברזולוציה גבוהה. יצר בשנת 2000 יצר איאן באק באוניברסיטת סטנפורד מתקן גיימינג באמצעות 32 כרטיסי GeForce, ולאחר מכן השיג מענק מ-DARPA לביצוע תכנות מקבילי למטרות כלליות על מעבדים גרפיים. לאחר מכן הצטרף ל-Nvidia, שם מאז 2004 הוא מפקח על פיתוח CUDA. בדחיפה ל-CUDA, שפורסם בשנת 2006,[2] מנכ"ל Nvidia ג'נסן הואנג כיוון שמעבדי Nvidia יהפכו לחומרה כללית למחשוב מדעי. בסביבות 2015 השתנה המוקד של CUDA לרשתות עצביות.[3]

עד שנת 2007, השנה שבה הופצה הגרסה הראשונה של סביבת הפיתוח CUDA, היה על המתכנת להשתמש בממשק התוכנה OpenGL הפחות נוח לתכנות.[4] בעזרת מנגנון מיוחד הצליחו שני היצרנים המובילים בתחום: חברת Nvidia וחברת ATI (החל מ-2006, חברת AMD) לאפשר הפעלת תוכניות מחשב מקביליות, הכתובות בשפת התכנות GLSL (קיצור של OpenGL Shading Language), על גבי חומרה מסוג GPU. ממשק תוכנה זה קשה לתכנות, וקהילת המפתחים שהשתמשה בממשק זה נותרה מצומצמת. הופעתה של CUDA אפשרה לקהילת המדענים, בפעם הראשונה, לייצר תוכניות מחשב אשר רצות על חומרה מקבילית מסוג GPU בשפת תכנות המתאימה לחישוב מדעי-מתמטי.

ב-2012 מעבדי GPU התפתחו למערכות מרובות ליבות מקבילות, המאפשרות עיבוד יעיל של בלוקים גדולים של נתונים. עיצוב זה יעיל יותר מיחידות עיבוד מרכזיות (CPU) עבור אלגוריתמים במצבים שבהם עיבוד בלוקים גדולים של נתונים מתבצע במקביל, כגון:

סביבת CUDA, שפותחה על ידי חברת Nvidia, מסוגלת לרוץ אך ורק על חומרה מסוג GPU אשר מיוצרת על ידי החברה. בחודש נובמבר 2008, הגדירו קבוצת חוקרים ואנשי תעשייה, החברים בקבוצת Khronos Group, סביבת תכנות מקבילי בשם OpenCL (קיצור של Open Computing Language).[5] סביבה זו מהווה מתחרה עיקרית לסביבת CUDA, מכיוון שהיא מאפשרת הרצת תוכניות מקביליות על חומרה הטרוגנית, כגון: CPU‏, GPU‏, DSP, ו-FPGA.

תכנות בסביבת CUDA

תרשים זרימה של תהליך העיבוד

התכנות בסביבת CUDA מורכב משני אלמנטי תוכנה עיקריים:

  • הקוד המתמטי-מדעי, הנכתב בשפות תכנות פופולריות כגון C, C++, Fortran, פייתון ו-MATLAB,[2] ומכיל את הגרעין (באנגלית Kernels) החישובי.
  • קוד המעטפת (בדרך כלל בשפת C) אשר אחראי להקצאות ושחרור זיכרון, העתקות יחידות מידע אל ההתקן ומן ההתקן חזרה אל המחשב המארח, והפעלת גרעיני החישוב.

סביבת הפיתוח כוללת את המרכיבים הבאים:

ראו גם

קישורים חיצוניים

ויקישיתוף מדיה וקבצים בנושא CUDA בוויקישיתוף

הערות שוליים

  1. ^ Abi-Chahla, Fedy (18 ביוני 2008). "Nvidia's CUDA: The End of the CPU?". Tom's Hardware. {{cite web}}: (עזרה)
  2. ^ 1 2 CUDA Zone, Nvidia
  3. ^ Witt, Stephen (2023-11-27). "How Jensen Huang's Nvidia Is Powering the A.I. Revolution". The New Yorker (באנגלית אמריקאית). ISSN 0028-792X. נבדק ב-2023-12-10.
  4. ^ Zunitch, Peter (2018-01-24). "CUDA vs. OpenCL vs. OpenGL". Videomaker (באנגלית אמריקאית).
  5. ^ OpenCL באתר קבוצת Khronos