מאיצים את NegevHPC עם Tesla V100!
רק לפני עשור נכנסו המאיצים הגרפיים לשימוש תכנותי כללי וכבשו את עולם החישובים מרובי-הביצועים. כיום, רוב מוחץ של חישובים בהם יש דגש על וקטוריזציה ומהירות גישה לזיכרון מורצים על מאיצים מסוג זה.
לפני כשנה הנגשנו עבורכם קודקוד-מאיץ עם 32 ליבות מתקדמות ושני כרטיסי Xeon-Phi מתוצרת Intel. כרטיסים אלו היו טובים לשעתם, וכיום קיים קונצנזוס ש-Nvidia היא הסוס המנצח בשיקולי ביצועים.
עבור חישובים רבים האצות אלו הן נדרשות ממש, ולכן רכשנו כעת קודקוד-מאיץ - המתקדם מסוגו - בתצורת Intel, רק שהפעם הכרטיסים הם של Nvidia. הקודקוד המאיץ מגיע עם 32 ליבות המחוברות ישירות לשני כרטיסי Tesla V100 בעלי 32G זיכרון כל אחד.
חשוב לציין כי לא כל חישוב יכול לנצל את יכולות הקודקוד-המאיץ. למעשה, רק חישובים המותאמים היטב לעבודה איתו יכולים לנצל את יכולותיו. בדקו היטב לפני השימוש כי הקוד שברשותכם מותאם לעבודה זו, בין אם במקבול Cuda, ובין אם במקבול OpenMP4.5 ומעלה.
על מנת לעשות שימוש במכונה יש לתאם הקצאה דרך מערכת הצ׳אט באתר.
על מנת להשתמש בקודקוד יש להקצות אותו:
salloc -w gpu001 -p gpu --exclusive
להתחבר אליו ישירות:
ssh gpu001
לטעון את המודולים הנדרשים לצורך העבודה - ולהריץ.
לחילופין, ניתן לארגן את קובץ הריצה עם הפקודות (כאשר Runner הוא קובץ ההרצה שלכם):
#!/bin/bash
#SBATCH -N 1 -p gpu --exclusive
$PWD/Runner
אם תרצו להעמיק אל תוך פעילות המכונה, תוכלו לבצע זאת באמצעות שילוב בין פקודת top הידועה, ובין פקודת nvidia-smi המוציאה פלט בסגנון הבא, ובו ניתן לראות את הכרטיסים, אחוז השימוש בזיכרון בהם ואת הניצולת שלהם:
אם ברצונכם להעמיק את תוך פעילות הקוד עצמו, תוכלו לבצע זאת באמצעות ה-Profiler של Cuda (או בפרופיילר מתאים אחר). תחילה, תדרשו להריץ את הקוד עם השורה הבאה:
nvprof --profile-child-processes -o nvprof.%p.out $PWD/run_example_new
כתוצאה מכך, יפתחו בתיקיית ההרצאה שני קבצי פרופיל (אחד עבור כל מאיץ) עם תחילית ״nvprof״ וסופית ״out״. גם בקובץ slurm.out אמורה להתקבל הודעה על פתיחה מוצלחת של הקבצים. אין לעשות בקבצים שימוש עד לסיום הריצה.
על מנת לבחון אותם יש לטעון ב-shell המקומי את מודול cuda/10.0, לוודא שיש לנו גרפיקה פעילה (כניסה באמצעות ssh -Y או VNC) ולהשתמש בתוכנת nvvp הגרפית:
nvvp nvprof.XXXXXX.out
יש לאשר עם הפתיחה את השימוש, לנטל אזהרות אם ישנן, ולהגדיר workspace מקומי עבור העבודה - כל אלו יכולות להתבצע על ידי אישור כל החלונות.
כתלות בגודל קובץ הפרופיל ייקבע הזמן הנדרש לפתיחתו. בדר״כ מדובר בדקות מספר, אשר בסיומן ייפתח הפרופיל עם החלון המרכזי הבא ובו ניתן לראות, בין שאר הפונקציונאליות הרבה, את:
זמני הריצה כוללים
עלות הפרופיילר בזמן
עלות הורדת זיכרון מה-Host ל-Device
עלות העלאת זיכרון מה-Device ל-Host
עלות העברת זיכרון בין ה-Devices