התחל עם Intel® Distribution for GDB* ב-Linux* OS Host
התחל להשתמש ב-Intel® Distribution for GDB* עבור איתור באגים ביישומים. עקוב אחר ההוראות שלהלן כדי להגדיר את מאתר הבאגים לניפוי באגים ביישומים עם ליבות שהורדו למעבד ו-GPU.
Intel® Distribution for GDB* זמין כחלק מ-Intel® oneAPI Base Toolkit. למידע נוסף על ערכות כלים של oneAPI, בקר ב- עמוד המוצר.
בקר ב הערות פרסום דף למידע על יכולות מפתח, תכונות חדשות ובעיות ידועות.
אתה יכול להשתמש ב-SYCL* sample code, Array Transform, כדי להתחיל עם Intel® Distribution for GDB*. ה-sample אינו מייצר שגיאות ופשוט ממחיש את תכונות ניפוי הבאגים. הקוד מעבד אלמנטים של מערך הקלט בהתאם לשאלה אם הם זוגיים או אי-זוגיים ומייצר מערך פלט. אתה יכול להשתמש ב-sample לנפות באגים הן במעבד והן ב-GPU, תוך ציון ההתקן הנבחר באמצעות ארגומנט שורת פקודה. שים לב כי איתור באגים של GPU עשוי לדרוש שתי מערכות ותצורה נוספת עבור איתור באגים מרחוק.
דרישות מוקדמות
אם אתה שואף לבצע ניפוי באגים ב-GPU, התקן את מנהלי ההתקן העדכניים ביותר של GPU והגדר את המערכת שלך להשתמש בהם. עיין ב מדריך ההתקנה של Intel® oneAPI Toolkits עבור מערכת ההפעלה Linux*. עקוב אחר ההוראות התקן מנהלי התקנים של אינטל GPU כדי להתקין מנהלי התקנים של GPU התואמים למערכת שלך.
בנוסף, אתה יכול להתקין הרחבה עבור Visual Studio Code* לאיתור באגים ב-GPU עם Intel® Distribution for GDB*. עיין ב שימוש ב-Visual Studio Code עם Intel® oneAPI Toolkits Guide.
הגדר את Debuger של GPU
כדי להגדיר את מאתר הבאגים של GPU, חייבת להיות לך גישת שורש.
פֶּתֶק במהלך איתור באגים בקרנל, ה-GPU נעצר ופלט הווידאו אינו זמין במחשב היעד שלך. בגלל זה, לא ניתן לנפות באגים ב-GPU ממערכת היעד אם כרטיס ה-GPU של המערכת משמש גם לפלט גרפי. במקרה זה, התחבר למכונה באמצעות ssh.
1. אם אתה שואף לבצע ניפוי באגים ב-GPU, יש צורך ב-Linux Kernel שתומך באגים ב-GPU.
a. בצע את ההוראות בכתובת תוכנת Intel® עבור יכולות GPU לשימוש כללי כדי להוריד ולהתקין את מנהלי ההתקן הדרושים.
b. אפשר תמיכה באגים ב-i915 בליבה:
a. פתח מסוף.
b. פתח את הגראב file ב-/etc/default.
c. בגראב file, מצא את השורה GRUB_CMDLINE_LINUX_DEFAULT="".
d. הזן את הטקסט הבא בין המרכאות (""):
i915.debug_eu=1
פֶּתֶק כברירת מחדל, מנהל ההתקן של ה-GPU אינו מאפשר לעומסי עבודה לפעול על GPU לאורך זמן מסוים. מנהל ההתקן הורג עומסי עבודה ארוכי טווח כאלה על ידי איפוס ה-GPU כדי למנוע ניתוקים. מנגנון בדיקת התלייה של מנהל ההתקן מושבת אם היישום פועל תחת מאתר הבאגים. אם אתה מתכנן להפעיל עומסי עבודה ארוכים גם ללא חיבור באגים, שקול להגיש בקשה GPU: השבת את Hangcheck על ידי הוספה
i915.enable_hangcheck=0
לאותו דבר שורה GRUB_CMDLINE_LINUX_DEFAULT.
c. עדכן את GRUB כדי שהשינויים האלה ייכנסו לתוקף:
sudo update-grub
d. לְאַתחֵל.
2. הגדר את סביבת ה-CLI שלך על ידי המקור לסקריפט setvars שנמצא בשורש התקנת ערכת הכלים שלך.
לינוקס (סודו):
מקור /opt/intel/oneapi/setvars.sh
לינוקס (משתמש):
מקור ~/intel/oneapi/setvars.sh
3. סביבת הגדרה
השתמש במשתני הסביבה הבאים כדי להפעיל תמיכה באגים עבור Intel® oneAPI Level Zero:
ייצא ZET_ENABLE_PROGRAM_DEBUGGING=1
ייצוא IGC_EnableGTLocationDebugging=1
4. בדיקת מערכת
כשהכל מוכן, אנא הפעל את הפקודה הבאה כדי לאשר שתצורת המערכת אמינה:
python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force
פלט אפשרי של מערכת מוגדרת היטב היא כדלקמן:
…
בודק תוצאות:
================================================ ==============================
שם הבדיקה: debugger_sys_check
תיאור: בדיקה זו מוודאת אם הסביבה מוכנה לשימוש ב-gdb (הפצה של Intel(R) עבור GDB*).
מצב תוצאה: PASS
נמצא מאתר באגים.
libipt נמצא.
ליביגה נמצאה.
ניפוי באגים i915 מופעל.
משתנים סביבתיים נכונים. ================================================ ===============================
בדיקה אחת: עבר אחד, 1 נכשל, 1 אזהרות, 0 שגיאות
תפוקת קונסולה file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt פלט JSON file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …
הרכיב את התוכנית עם מידע על ניפוי באגים
אתה יכול להשתמש ב-sampהפרויקט, Array Transform, כדי להתחיל במהירות עם מאפר הבאגים של האפליקציות.
1. כדי לקבל את ה-sample, בחר בכל אחת מהדרכים הבאות:
- השתמש ב-oneAPI CLI Samples Browser כדי לבחור שינוי מערך מקטגוריית התחלת העבודה.
- הורד מ GitHub*.
2. נווט אל ה-src של ה-sampלפרויקט:
cd array-transform/src
3. הרכיב את היישום על ידי הפעלת מידע ניפוי באגים (דגל-g) וכיבוי אופטימיזציות (דגל-O0).
השבתת אופטימיזציה מומלצת לסביבת ניפוי באגים יציבה ומדויקת. זה עוזר למנוע בלבול שנגרם על ידי שינויים בקוד לאחר אופטימיזציות מהדר.
פֶּתֶק אתה עדיין יכול להרכיב את התוכנית עם אופטימיזציה מופעלת (דגל-O2), מה שיכול להיות מועיל אם אתה מכוון לאיתור באגים בהרכבת GPU.
אתה יכול להרכיב את התוכנית בכמה דרכים. אפשרויות 1 ו-2 משתמשות בקומפילציה בדיוק בזמן (JIT), שמומלץ לנפות באגים ב-sample. אפשרות 3 משתמשת בהידור מראש (AOT).
- אפשרות 1. אתה יכול להשתמש ב-CMake file כדי להגדיר ולבנות את האפליקציה. עיין ב README של ה-sample עבור ההוראות.
פֶּתֶק ה-CMake file מסופק עם ה-sample כבר עובר את דגלי -g -O0.
- אפשרות 2. כדי להרכיב את array-transform.cpp sampהיישום ללא CMake file, הפק את הפקודות הבאות:
icpx -fsycl -g -O0 array-transform.cpp -o array-transform
אם ההידור והקישור נעשים בנפרד, שמור על דגלים -g -O0 בשלב הקישור. שלב הקישור הוא כאשר icpx מתרגם את הדגלים הללו כך שיועברו למהדר המכשיר בזמן ריצה. לְשֶׁעָבַרampעל:
icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform
- אפשרות 3. אתה יכול להשתמש בקומפילציה של AOT כדי להימנע מזמני הידור ארוכים יותר של JIT בזמן ריצה. קומפילציה של JIT יכולה להימשך זמן רב יותר עבור גרעינים גדולים מתחת ל-debuger. כדי להשתמש במצב הידור מראש:
• עבור איתור באגים ב-GPU:
ציין את ההתקן שבו תשתמש לביצוע התוכנית. למשלample, -device dg2-g10 עבור Intel® Data Center GPU Flex 140 Graphics. לרשימת האפשרויות הנתמכות ומידע נוסף על הידור AOT, עיין ב- Intel® oneAPI DPC++ Compiler מדריך ועזרה למפתחים.
למשלampעל:
icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs "-device dg2-g10" array-transform.cpp -o arraytransform
הידור מוקדם מחייב את המהדר Offline OpenCLTM (OC Compiler LOC). למידע נוסף, עיין בסעיף "התקן את OpenCLTM Offline Compiler (OCLOC)" של מדריך התקנה.
• עבור איתור באגים במעבד:
icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform
התחל הפעלת ניפוי באגים
התחל את הפעלת ניפוי הבאגים:
1. הפעל את Intel® Distribution for GDB* באופן הבא:
שינוי מערך gdb-oneapi
אתה אמור לראות את ההנחיה (gdb).
2. כדי לוודא שהקרנל ירד למכשיר הנכון, בצע את השלבים הבאים. כאשר אתה מבצע את פקודת ההפעלה מהפקודה (gdb), העבר את ה מעבד, gpu or מֵאִיץ טַעֲנָה:
- עבור איתור באגים במעבד:
להפעיל מעבד
Exampפלט le:
[SYCL] באמצעות התקן: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] מ-[Intel(R) OpenCL]- עבור איתור באגים ב-GPU:
להפעיל gpu
Exampפלט le:
[SYCL] באמצעות התקן: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] מ-[Intel(R) LevelZero]- עבור איתור באגים באמולטור FPGA:
להפעיל מאיץ
Exampפלט le:
[SYCL] שימוש במכשיר: [התקן אמולציית Intel(R) FPGA] מ-[פלטפורמת האמולציה של Intel(R) FPGA עבור תוכנת OpenCL(TM)]פֶּתֶק הפרמטרים של המעבד, ה-GPU והמאיץ הם ספציפיים לאפליקציית ה-Array Transform.
3. כדי לצאת מההפצה של Intel® עבור GDB*:
לְהַפְסִיק
לנוחיותך, פקודות Intel® Distribution עבור GDB* נפוצות ב- גיליון עזר.
כדי לנפות באגים ב-Array Transform sampלמידע נוסף על Intel® Distribution for GDB*, עברו על תרחישי ניפוי באגים בסיסיים באמצעות שֶׁל מוֹרֶה.
למידע נוסף
מִסְמָך | תֵאוּר |
מדריך: איתור באגים עם Intel® Distribution עבור GDB* | מסמך זה מתאר את התרחישים הבסיסיים שיש לבצע בעת איתור באגים של SYCL* ו-OpenCL עם Intel® Distribution for GDB*. |
מדריך למשתמש של Intel® Distribution for GDB* | מסמך זה מתאר את כל המשימות הנפוצות שתוכל לבצע עם Intel® Distribution for GDB* ומספק פרטים טכניים נחוצים. |
Intel® Distribution for GDB* הערות מהדורה | ההערות מכילות מידע על יכולות מפתח, תכונות חדשות ובעיות ידועות של Intel® Distribution for GDB*. |
דף המוצר של oneAPI | דף זה מכיל מבוא קצר על ערכות כלים של oneAPI וקישורים למשאבים שימושיים. |
Intel® Distribution for GDB* גיליון עזר | מסמך זה בן עמוד אחד מתאר בקצרה תנאים מוקדמים של Intel® Distribution עבור GDB* ופקודות שימושיות. |
יעקבי שample | ליישום SYCL* הקטן הזה יש שתי גרסאות: פגומים ותוקנו. השתמש ב-sampלהפעיל ניפוי באגים באפליקציות עם Intel® Distribution for GDB*. |
הודעות וכתבי ויתור
טכנולוגיות אינטל עשויות לדרוש הפעלת חומרה, תוכנה או שירות מופעלות.
שום מוצר או רכיב לא יכולים להיות מאובטחים לחלוטין.
העלויות והתוצאות שלך עשויות להשתנות.
© Intel Corporation. Intel, הלוגו של Intel וסימני Intel אחרים הם סימנים מסחריים של Intel Corporation או של חברות הבת שלה. ניתן לתבוע שמות ומותגים אחרים כרכושם של אחרים.
מסמך זה אינו מעניק רישיון (מפורש או משתמע, בהסכמה או בכל דרך אחרת) לזכויות קניין רוחני כלשהן.
המוצרים המתוארים עשויים להכיל פגמים בתכנון או שגיאות הידועות כ-errata אשר עלולות לגרום למוצר לסטות מהמפרטים שפורסמו. שגיאות מאופיינות עדכניות זמינות על פי בקשה.
אינטל מתנערת מכל אחריות מפורשת ומשתמעת, לרבות, ללא הגבלה, האחריות המשתמעת של סחירות, התאמה למטרה מסוימת ואי-הפרה, כמו גם כל אחריות הנובעת ממהלך הביצוע, מהלך העסקה או השימוש במסחר.
OpenCL והלוגו של OpenCL הם סימנים מסחריים של Apple Inc. בשימוש בהרשאה של Khronos.
מסמכים / משאבים
![]() |
Intel Distribution עבור GDB ב-Linux OS Host [pdfמדריך למשתמש הפצה עבור GDB ב-Linux OS Host, GDB ב-Linux OS Host, Linux OS Host, OS Host, Host |