Ξεκινήστε με το Intel® Distribution για GDB* σε Linux* OS Host
Ξεκινήστε να χρησιμοποιείτε το Intel® Distribution για GDB* για τον εντοπισμό σφαλμάτων εφαρμογών. Ακολουθήστε τις παρακάτω οδηγίες για να ρυθμίσετε το πρόγραμμα εντοπισμού σφαλμάτων για τον εντοπισμό σφαλμάτων σε εφαρμογές με πυρήνες μεταφορτωμένους σε συσκευές CPU και GPU.
Το Intel® Distribution for GDB* είναι διαθέσιμο ως μέρος του βασικού κιτ εργαλείων Intel® oneAPI. Για περισσότερες πληροφορίες σχετικά με τα κιτ εργαλείων oneAPI, επισκεφθείτε τη διεύθυνση σελίδα προϊόντος.
Επισκεφθείτε το Σημειώσεις Έκδοσης σελίδα για πληροφορίες σχετικά με βασικές δυνατότητες, νέες δυνατότητες και γνωστά προβλήματα.
Μπορείτε να χρησιμοποιήσετε ένα SYCL* sample code, Array Transform, για να ξεκινήσετε με την Intel® Distribution για GDB*. Το sampΤο le δεν δημιουργεί σφάλματα και απλώς απεικονίζει χαρακτηριστικά εντοπισμού σφαλμάτων. Ο κώδικας επεξεργάζεται στοιχεία του πίνακα εισόδου ανάλογα με το αν είναι ζυγά ή περιττά και παράγει έναν πίνακα εξόδου. Μπορείτε να χρησιμοποιήσετε το sample για εντοπισμό σφαλμάτων τόσο στη CPU όσο και στη GPU, προσδιορίζοντας την επιλεγμένη συσκευή μέσω ενός ορίσματος γραμμής εντολών. Σημειώστε ωστόσο ότι ο εντοπισμός σφαλμάτων GPU μπορεί να απαιτεί δύο συστήματα και πρόσθετες ρυθμίσεις παραμέτρων για απομακρυσμένο εντοπισμό σφαλμάτων.
Προαπαιτούμενα
Εάν σκοπεύετε να εντοπίσετε σφάλματα σε GPU, εγκαταστήστε τα πιο πρόσφατα προγράμματα οδήγησης GPU και διαμορφώστε το σύστημά σας ώστε να τα χρησιμοποιεί. Ανατρέξτε στο Οδηγός εγκατάστασης Intel® oneAPI Toolkits για Linux* OS. Ακολουθήστε τις οδηγίες Εγκαταστήστε προγράμματα οδήγησης Intel GPU για να εγκαταστήσετε προγράμματα οδήγησης GPU που ταιριάζουν με το σύστημά σας.
Επιπλέον, μπορείτε να εγκαταστήσετε μια επέκταση για Visual Studio Code* για εντοπισμό σφαλμάτων GPU με Intel® Distribution για GDB*. Ανατρέξτε στο Χρήση κώδικα του Visual Studio με τον οδηγό εργαλείων Intel® oneAPI.
Ρυθμίστε το πρόγραμμα εντοπισμού σφαλμάτων GPU
Για να ρυθμίσετε το πρόγραμμα εντοπισμού σφαλμάτων GPU, πρέπει να έχετε πρόσβαση root.
ΣΗΜΕΙΩΜΑ Κατά τον εντοπισμό σφαλμάτων του πυρήνα, η GPU σταματά και η έξοδος βίντεο δεν είναι διαθέσιμη στον υπολογιστή-στόχο σας. Εξαιτίας αυτού, δεν μπορείτε να κάνετε εντοπισμό σφαλμάτων της GPU από το σύστημα προορισμού εάν η κάρτα GPU του συστήματος χρησιμοποιείται επίσης για γραφική έξοδο. Σε αυτήν την περίπτωση, συνδεθείτε στο μηχάνημα μέσω ssh.
1. Εάν σκοπεύετε να κάνετε εντοπισμό σφαλμάτων σε GPU, απαιτείται ένας πυρήνας Linux που υποστηρίζει τον εντοπισμό σφαλμάτων 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 για να αποτρέψει τα κολλήματα. Ο μηχανισμός hangcheck του προγράμματος οδήγησης είναι απενεργοποιημένος εάν η εφαρμογή εκτελείται κάτω από το πρόγραμμα εντοπισμού σφαλμάτων. Εάν σκοπεύετε να εκτελέσετε μεγάλους φόρτους εργασίας υπολογισμού χωρίς να έχει προσαρτηθεί πρόγραμμα εντοπισμού σφαλμάτων, εξετάστε το ενδεχόμενο να κάνετε αίτηση GPU: Απενεργοποιήστε το Hangcheck με την προσθήκη
i915.enable_hangcheck=0
στο ίδιο Γραμμή GRUB_CMDLINE_LINUX_DEFAULT.
c. Ενημερώστε το GRUB για να τεθούν σε ισχύ αυτές οι αλλαγές:
sudo update-grub
d. Επανεκκίνηση.
2. Ρυθμίστε το περιβάλλον CLI σας προμηθεύοντας το σενάριο setvars που βρίσκεται στη ρίζα της εγκατάστασης του κιτ εργαλείων.
Linux (sudo):
πηγή /opt/intel/oneapi/setvars.sh
Linux (χρήστης):
πηγή ~/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) Distribution for GDB*).
Κατάσταση αποτελέσματος: PASS
Βρέθηκε το πρόγραμμα εντοπισμού σφαλμάτων.
Βρέθηκε λιβάδι.
libiga βρέθηκε.
Ο εντοπισμός σφαλμάτων i915 είναι ενεργοποιημένος.
Οι περιβαλλοντικές μεταβλητές είναι σωστές. ================================================== =================================
1 ΕΛΕΓΧΟΣ: 1 PASS, 0 ΑΠΟΤΥΧΙΑ, 0 ΠΡΟΕΙΔΟΠΟΙΗΣΕΙΣ, 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…
Μεταγλώττιση του προγράμματος με πληροφορίες εντοπισμού σφαλμάτων
Μπορείτε να χρησιμοποιήσετε το sample project, Array Transform, για να ξεκινήσετε γρήγορα με το πρόγραμμα εντοπισμού σφαλμάτων της εφαρμογής.
1. Για να πάρετε το sample, επιλέξτε έναν από τους παρακάτω τρόπους:
- Χρησιμοποιήστε το oneAPI CLI Samples Browser για να επιλέξετε Array Transform από την κατηγορία Getting Started.
- Λήψη από GitHub*.
2. Πλοηγηθείτε στο src του sample project:
cd array-transform/src
3. Μεταγλωττίστε την εφαρμογή ενεργοποιώντας τις πληροφορίες εντοπισμού σφαλμάτων (σημαία -g) και απενεργοποιώντας τις βελτιστοποιήσεις (σημαία -O0).
Συνιστάται η απενεργοποίηση της βελτιστοποίησης για ένα σταθερό και ακριβές περιβάλλον εντοπισμού σφαλμάτων. Αυτό βοηθά στην αποφυγή σύγχυσης που προκαλείται από αλλαγές στον κώδικα μετά από βελτιστοποιήσεις μεταγλωττιστή.
ΣΗΜΕΙΩΜΑ Μπορείτε ακόμα να μεταγλωττίσετε το πρόγραμμα με ενεργοποιημένη τη βελτιστοποίηση (σημαία -O2), η οποία μπορεί να είναι χρήσιμη εάν στοχεύετε στον εντοπισμό σφαλμάτων της συναρμολόγησης GPU.
Μπορείτε να μεταγλωττίσετε το πρόγραμμα με διάφορους τρόπους. Οι επιλογές 1 και 2 χρησιμοποιούν συλλογή just-in-time (JIT), η οποία συνιστάται για τον εντοπισμό σφαλμάτων του sample. Η επιλογή 3 χρησιμοποιεί συλλογή εκ των προτέρων (AOT).
- Επιλογή 1. Μπορείτε να χρησιμοποιήσετε το CMake file για να διαμορφώσετε και να δημιουργήσετε την εφαρμογή. Ανατρέξτε στο ΔΙΑΒΑΣΤΕ του 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 μεταφράζει αυτές τις σημαίες για να περάσουν στον μεταγλωττιστή συσκευής κατά το χρόνο εκτέλεσης. Πρώηνample:
icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform
- Επιλογή 3. Μπορείτε να χρησιμοποιήσετε τη μεταγλώττιση AOT για να αποφύγετε μεγαλύτερους χρόνους μεταγλώττισης JIT κατά το χρόνο εκτέλεσης. Η μεταγλώττιση JIT μπορεί να διαρκέσει πολύ περισσότερο για μεγάλους πυρήνες κάτω από τον εντοπισμό σφαλμάτων. Για να χρησιμοποιήσετε τη λειτουργία συλλογής εκ των προτέρων:
• Για εντοπισμό σφαλμάτων σε GPU:
Καθορίστε τη συσκευή που θα χρησιμοποιήσετε για την εκτέλεση του προγράμματος. Για π.χample, -συσκευή dg2-g10 για Intel® Data Center GPU Flex 140 Graphics. Για τη λίστα των υποστηριζόμενων επιλογών και περισσότερες πληροφορίες σχετικά με τη συλλογή AOT, ανατρέξτε στο Οδηγός και αναφορά προγραμματιστή Intel® oneAPI DPC++ Compiler.
Για π.χample:
icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs "-device dg2-g10" array-transform.cpp -o arraytransform
Η εκ των προτέρων μεταγλώττιση απαιτεί το OpenCLTM Offline Compiler (OC Compiler LOC). Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα «Εγκατάσταση του OpenCLTM Offline Compiler (OCLOC)» του Οδηγός εγκατάστασης.
• Για εντοπισμό σφαλμάτων σε CPU:
icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform
Ξεκινήστε μια περίοδο λειτουργίας εντοπισμού σφαλμάτων
Ξεκινήστε τη συνεδρία εντοπισμού σφαλμάτων:
1. Ξεκινήστε το Intel® Distribution για GDB* ως εξής:
gdb-oneapi array-transform
Θα πρέπει να δείτε την προτροπή (gdb).
2. Για να βεβαιωθείτε ότι ο πυρήνας έχει μεταφορτωθεί στη σωστή συσκευή, κάντε τα παρακάτω βήματα. Όταν εκτελείτε την εντολή run από τη γραμμή εντολών (gdb), περάστε το cpu, gpu or επιταχυντής επιχείρημα:
- Για εντοπισμό σφαλμάτων στην CPU:
τρέξτε την CPU
Exampη έξοδος:
[SYCL] Χρήση συσκευής: [CPU Intel(R) Core(TM) i7-9750H @ 2.60 GHz] από [Intel(R) OpenCL]- Για εντοπισμό σφαλμάτων στη GPU:
τρέξτε το gpu
Exampη έξοδος:
[SYCL] Χρήση συσκευής: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] από [Intel(R) LevelZero]- Για εντοπισμό σφαλμάτων στον εξομοιωτή FPGA:
τρέξιμο γκάζι
Exampη έξοδος:
[SYCL] Χρήση συσκευής: [Intel(R) FPGA Emulation Device] από την [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]ΣΗΜΕΙΩΜΑ Οι παράμετροι cpu, gpu και accelerator είναι συγκεκριμένες για την εφαρμογή Array Transform.
3. Για να κλείσετε το Intel® Distribution για GDB*:
εγκαταλείπω
Για τη δική σας διευκόλυνση, οι κοινές εντολές Intel® Distribution for GDB* παρέχονται στο Φύλλο Αναφοράς.
Για τον εντοπισμό σφαλμάτων του Array Transform sampγια να μάθετε περισσότερα σχετικά με τη Διανομή Intel® για GDB*, περιηγηθείτε στα βασικά σενάρια εντοπισμού σφαλμάτων χρησιμοποιώντας το Φροντιστήριο.
Μάθετε περισσότερα
Εγγραφο | Περιγραφή |
Εκμάθηση: Εντοπισμός σφαλμάτων με Intel® Distribution για GDB* | Αυτό το έγγραφο περιγράφει τα βασικά σενάρια που πρέπει να ακολουθήσετε κατά τον εντοπισμό σφαλμάτων SYCL* και OpenCL με Intel® Distribution για GDB*. |
Οδηγός χρήσης Intel® Distribution for GDB* | Αυτό το έγγραφο περιγράφει όλες τις κοινές εργασίες που μπορείτε να ολοκληρώσετε με το Intel® Distribution για GDB* και παρέχει τις απαραίτητες τεχνικές λεπτομέρειες. |
Σημειώσεις έκδοσης Intel® Distribution for GDB* | Οι σημειώσεις περιέχουν πληροφορίες σχετικά με βασικές δυνατότητες, νέες δυνατότητες και γνωστά ζητήματα του Intel® Distribution για GDB*. |
Σελίδα προϊόντος oneAPI | Αυτή η σελίδα περιέχει σύντομη εισαγωγή στις εργαλειοθήκες oneAPI και συνδέσμους προς χρήσιμους πόρους. |
Φύλλο αναφοράς Intel® Distribution for GDB* | Αυτό το έγγραφο μιας σελίδας περιγράφει εν συντομία το Intel® Distribution for GDB* προαπαιτούμενα και χρήσιμες εντολές. |
Jacobi Sample | Αυτή η μικρή εφαρμογή SYCL* έχει δύο εκδόσεις: με bugged και fixed. Χρησιμοποιήστε το sampΓια να ασκήσετε τον εντοπισμό σφαλμάτων εφαρμογών με το Intel® Distribution για GDB*. |
Ειδοποιήσεις και αποποιήσεις ευθυνών
Οι τεχνολογίες Intel ενδέχεται να απαιτούν ενεργοποίηση υλικού, λογισμικού ή υπηρεσίας.
Κανένα προϊόν ή συστατικό δεν μπορεί να είναι απολύτως ασφαλές.
Το κόστος και τα αποτελέσματά σας ενδέχεται να διαφέρουν.
© Intel Corporation. Η ονομασία Intel, το λογότυπο Intel και άλλα σήματα Intel είναι εμπορικά σήματα της Intel Corporation ή των θυγατρικών της. Άλλα ονόματα και επωνυμίες μπορούν να διεκδικηθούν ως ιδιοκτησία άλλων.
Καμία άδεια (ρητή ή σιωπηρή, με estoppel ή με άλλο τρόπο) για δικαιώματα πνευματικής ιδιοκτησίας δεν χορηγείται από αυτό το έγγραφο.
Τα προϊόντα που περιγράφονται ενδέχεται να περιέχουν σχεδιαστικά ελαττώματα ή σφάλματα γνωστά ως λάθη που μπορεί να προκαλέσουν απόκλιση του προϊόντος από τις δημοσιευμένες προδιαγραφές. Τα τρέχοντα χαρακτηρισμένα σφάλματα είναι διαθέσιμα κατόπιν αιτήματος.
Η Intel αποποιείται κάθε ρητής και σιωπηρής εγγύησης, συμπεριλαμβανομένων χωρίς περιορισμό, των σιωπηρών εγγυήσεων εμπορευσιμότητας, καταλληλότητας για συγκεκριμένο σκοπό και μη παραβίασης, καθώς και οποιασδήποτε εγγύησης που προκύπτει από την πορεία απόδοσης, την πορεία συναλλαγής ή τη χρήση στο εμπόριο.
Το OpenCL και το λογότυπο OpenCL είναι εμπορικά σήματα της Apple Inc. που χρησιμοποιούνται κατόπιν άδειας από την Khronos.
Έγγραφα / Πόροι
![]() |
Διανομή intel για GDB σε κεντρικό υπολογιστή λειτουργικού συστήματος Linux [pdf] Οδηγός χρήστη Διανομή για GDB σε Linux OS Host, GDB σε Linux OS Host, Linux OS Host, OS Host, Host |