שיעור 3: משתני סביבה ו-LD_LIBRARY_PATH
משתני סביבה הם הדרך שבה Linux מעביר הגדרות תצורה לתוכניות שרצות. CUDA לא תמצא את libcuda.so בלי LD_LIBRARY_PATH נכון, ו-CUDA_VISIBLE_DEVICES קובע אילו GPUs תראה כל תוכנית — כלי קריטי לתזמון GPU ב-NVIDIA. (המושג 'תהליך' יוסבר לעומק בשיעור 5 — לעת עתה: כל תוכנית שרצה היא תהליך.) שיעור זה נותן לך שליטה
משתני סביבה הם כמו לוח מסרים מחוץ לכל חדר: הקרנל מדביק שם הוראות כמו 'חפש ספריות ב-/usr/local/cuda/lib64' ו-'השתמש רק ב-GPU 0 ו-1'. כל תהליך קורא את הלוח לפני שהוא מתחיל לרוץ.
- משתנה סביבה
- זוג מפתח-ערך שהקרנל מעביר לכל תהליך. תהליך יכול לקרוא, להגדיר ולהעביר משתני סביבה לתהליכי הילד שלו.
- PATH
- משתנה סביבה שמכיל רשימת ספריות מופרדות בנקודותיים. כשמקלידים פקודה, המעטפת מחפשת את הקובץ הבינארי בכל ספרייה ברשימה לפי הסדר.
- LD_LIBRARY_PATH
- משתנה שמגדיר ספריות לחיפוש ספריות שיתוף (.so) בזמן ריצה. הקישורן הדינמי (ld.so) מחפש בספריות אלו לפני /usr/lib.
- CUDA_VISIBLE_DEVICES
- משתנה שמגדיר אילו GPU cards יהיו גלויות לתהליך CUDA. CUDA_VISIBLE_DEVICES=0,1 מסתיר GPUs 2,3 מהתהליך — חיוני לתזמון בסביבות multi-GPU.
- export
- פקודת bash שמסמנת משתנה כ-environment variable כדי שיועבר לתהליכי ילד. בלי export, המשתנה גלוי רק לתהליך המעטפת הנוכחי.