כיצד להקצות זיכרון CUDA עם המשתנה 'pytorch_cuda_alloc_conf'?

Kyzd Lhqzwt Zykrwn Cuda M Hmstnh Pytorch Cuda Alloc Conf



PyTorch קל להבנה למתחילים ללמוד כיצד ליצור מודלים של למידת מכונה, אולם, היכולת יוצאת הדופן שלו לתמוך בפיתוח מודלים מורכבים היא שהופכת אותו למסגרת הפופולרית ביותר עבור AI. מודלים אלה מאומנים על פני מיליוני טרה-בייט של נתונים ודורשים GPUs חזקים לעיבוד. משאבי החומרה הללו צריכים להיות מנוהלים כראוי על מנת לייעל את זמני העיבוד ואת ' pytorch_cuda_alloc_conf משתנה הוא עזרה גדולה בהקשר זה.

במאמר זה נדון כיצד להקצות שונה זיכרון דרך ' pytorch_cuda_alloc_conf ' שיטה.

מהי שיטת 'pytorch_cuda_alloc_conf' ב- PyTorch?

ביסודו של דבר, ' pytorch_cuda_alloc_conf ” הוא משתנה סביבה במסגרת PyTorch. משתנה זה מאפשר ניהול יעיל של משאבי העיבוד הזמינים מה שאומר שהמודלים פועלים ומייצרים תוצאות במינימום זמן אפשרי. אם לא נעשה כראוי, ה' שונה ' פלטפורמת החישוב תציג את ' מחוץ לזיכרון שגיאה ומשפיעה על זמן הריצה. מודלים שאמורים לעבור הכשרה על כמויות גדולות של נתונים או בעלי 'גדולים' גדלי אצווה ” יכול לייצר שגיאות זמן ריצה מכיוון שהגדרות ברירת המחדל לא יספיקו להן.







ה ' pytorch_cuda_alloc_conf ' המשתנה משתמש ב' הבא ' אפשרויות כדי לטפל בהקצאת משאבים:



  • יָלִיד : אפשרות זו משתמשת בהגדרות שכבר זמינות ב- PyTorch כדי להקצות זיכרון לדגם שנמצא בתהליך.
  • max_split_size_mb : זה מבטיח שכל בלוק קוד גדול מהגודל שצוין לא יפוצל. זהו כלי רב עוצמה למנוע ' הִתנַפְּצוּת '. אנו נשתמש באפשרות זו עבור ההדגמה במאמר זה.
  • roundup_power2_divisions : אפשרות זו מעגלת את גודל ההקצאה ל' הקרוב ביותר כוח של 2 ' חלוקה במגה בייט (MB).
  • roundup_bypass_threshold_mb: הוא יכול לעגל כלפי מעלה את גודל ההקצאה עבור כל בקשה שמפרטת יותר מהסף שצוין.
  • סף_איסוף_אשפה : זה מונע השהייה על ידי ניצול זיכרון זמין מה-GPU בזמן אמת כדי להבטיח שהפרוטוקול Reclaim-all לא יופעל.

כיצד להקצות זיכרון באמצעות שיטת 'pytorch_cuda_alloc_conf'?

כל מודל עם מערך נתונים גדול דורש הקצאת זיכרון נוספת שגדולה מזו שנקבעה כברירת מחדל. יש לציין את ההקצאה המותאמת אישית תוך התחשבות בדרישות הדגם ומשאבי החומרה הזמינים.



בצע את השלבים המפורטים להלן כדי להשתמש ב' pytorch_cuda_alloc_conf שיטת 'ב-IDE של Google Colab כדי להקצות יותר זיכרון למודל מורכב של למידת מכונה:





שלב 1: פתח את Google Colab
חפש בגוגל שיתוף פעולה בדפדפן וצור ' מחברת חדשה 'כדי להתחיל לעבוד:



שלב 2: הגדר מודל PyTorch מותאם אישית
הגדר מודל PyTorch באמצעות ' !צִפצוּף ' חבילת התקנה כדי להתקין את ' לפיד הספרייה וה' יְבוּא ' הפקודה לייבא ' לפיד ' ו' אתה ' ספריות לתוך הפרויקט:

! צִפצוּף להתקין לפיד

לייבא לפיד
לייבא אותנו

יש צורך בספריות הבאות לפרויקט זה:

  • לפיד - זוהי הספרייה הבסיסית שעליה מבוסס PyTorch.
  • אתה - ה ' מערכת הפעלה הספרייה משמשת לטיפול במשימות הקשורות למשתני סביבה כגון ' pytorch_cuda_alloc_conf ' כמו גם ספריית המערכת והרשאות הקובץ:

שלב 3: הקצאת זיכרון CUDA
להשתמש ב ' pytorch_cuda_alloc_conf ' שיטה לציון גודל הפיצול המרבי באמצעות ' max_split_size_mb ”:

os.environ [ 'PYTORCH_CUDA_ALLOC_CONF' ] = 'max_split_size_mb:1024'

שלב 4: המשך עם פרויקט PyTorch שלך
לאחר שציינו ' שונה ' הקצאת שטח עם ' max_split_size_mb אפשרות ', המשך לעבוד על פרויקט PyTorch כרגיל ללא חשש מה-' מחוץ לזיכרון 'שגיאה.

הערה : תוכל לגשת למחברת Google Colab שלנו כאן קישור .

פרו-טיפ

כאמור, ה' pytorch_cuda_alloc_conf השיטה יכולה לקחת כל אחת מהאפשרויות שצוינו לעיל. השתמש בהם בהתאם לדרישות הספציפיות של פרויקטי הלמידה העמוקה שלך.

הַצלָחָה! זה עתה הדגמנו כיצד להשתמש ב' pytorch_cuda_alloc_conf ' שיטה לציון ' max_split_size_mb ' עבור פרויקט PyTorch.

סיכום

להשתמש ב ' pytorch_cuda_alloc_conf שיטה להקצאת זיכרון CUDA על ידי שימוש בכל אחת מהאפשרויות הזמינות שלו בהתאם לדרישות הדגם. כל אחת מהאפשרויות הללו נועדה להקל על בעיית עיבוד מסוימת בפרויקטים של PyTorch לקבלת זמני ריצה טובים יותר ופעולות חלקות יותר. במאמר זה, הצגנו את התחביר לשימוש ב' max_split_size_mb ' אפשרות להגדיר את הגודל המרבי של הפיצול.