Kom godt i gang med Intel® Distribution for GDB* på Linux* OS Host
Begynd at bruge Intel® Distribution for GDB* til fejlfinding af applikationer. Følg instruktionerne nedenfor for at konfigurere debuggeren til at debugge applikationer med kerner aflastet til CPU- og GPU-enheder.
Intel® Distribution for GDB* er tilgængelig som en del af Intel® oneAPI Base Toolkit. For mere information om oneAPI-værktøjssæt, besøg produktside.
Besøg Release Notes side for information om nøglefunktioner, nye funktioner og kendte problemer.
Du kan bruge en SYCL* sample kode, Array Transform, for at komme i gang med Intel® Distribution for GDB*. sample genererer ikke fejl og illustrerer blot debugger-funktioner. Koden behandler elementer i input-arrayet afhængigt af om de er lige eller ulige og producerer et output-array. Du kan bruge sample for at debug på både CPU'en eller GPU'en, angive den valgte enhed gennem et kommandolinjeargument. Bemærk dog, at GPU-fejlretning kan kræve to systemer og yderligere konfiguration til fjernfejlretning.
Forudsætninger
Hvis du har til formål at fejlfinde på GPU, skal du installere de nyeste GPU-drivere og konfigurere dit system til at bruge dem. Der henvises til Intel® oneAPI Toolkits Installationsvejledning til Linux* OS. Følg instrukserne Installer Intel GPU-drivere for at installere GPU-drivere, der matcher dit system.
Derudover kan du installere en udvidelse til Visual Studio Code* til fejlretning af GPU med Intel® Distribution for GDB*. Der henvises til Brug af Visual Studio Code med Intel® oneAPI Toolkits Guide.
Konfigurer GPU Debugger
For at konfigurere GPU-debuggeren skal du have root-adgang.
NOTE Under kernefejlretning stoppes GPU'en, og videooutputtet er ikke tilgængeligt på din målmaskine. På grund af dette kan du ikke debugge GPU'en fra målsystemet, hvis systemets GPU-kort også bruges til grafisk output. I dette tilfælde skal du oprette forbindelse til maskinen via ssh.
1. Hvis du sigter efter at debugge på GPU, er der brug for en Linux-kerne, der understøtter GPU-debugging.
a. Følg instruktionerne på Intel®-software til generelle GPU-funktioner for at downloade og installere de nødvendige drivere.
b. Aktiver i915 debug support i Kernel:
a. Åbn en terminal.
b. Åbn gruben file i /etc/default.
c. I gruben file, find linjen GRUB_CMDLINE_LINUX_DEFAULT="".
d. Indtast følgende tekst mellem anførselstegnene (""):
i915.debug_eu=1
NOTE Som standard tillader GPU-driveren ikke, at arbejdsbelastninger kører på en GPU længere end et vist tidsrum. Driveren dræber sådanne langvarige arbejdsbelastninger ved at nulstille GPU'en for at forhindre hænger. Driverens hangcheck-mekanisme er deaktiveret, hvis applikationen kører under debuggeren. Hvis du planlægger at køre lange computerarbejdsbelastninger, også uden at der er tilknyttet en debugger, kan du overveje at ansøge GPU: Deaktiver Hangcheck ved at tilføje
i915.enable_hangcheck=0
til det samme GRUB_CMDLINE_LINUX_DEFAULT linje.
c. Opdater GRUB for at disse ændringer træder i kraft:
sudo update-grub
d. Genstart.
2. Konfigurer dit CLI-miljø ved at hente setvars-scriptet i roden af din værktøjskasseinstallation.
Linux (sudo):
kilde /opt/intel/oneapi/setvars.sh
Linux (bruger):
kilde ~/intel/oneapi/setvars.sh
3. Opsætningsmiljø
Brug følgende miljøvariable til at aktivere debugger-understøttelse for Intel® oneAPI Level Zero:
eksporter ZET_ENABLE_PROGRAM_DEBUGGING=1
eksport IGC_EnableGTLocationDebugging=1
4. Systemtjek
Når alt er klar, skal du køre følgende kommando for at bekræfte, at systemkonfigurationen er pålidelig:
python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force
Et muligt output fra et velkonfigureret system er som følger:
…
Tjek resultater:
=================================================== ================================
Tjek navn: debugger_sys_check
Beskrivelse: Denne kontrol verificerer, om miljøet er klar til at bruge gdb (Intel(R) Distribution for GDB*).
Resultatstatus: PASS
Debugger fundet.
libipt fundet.
libiga fundet.
i915 debug er aktiveret.
Miljøvariabler korrekte. =================================================== =================================
1 KONTROL: 1 PASS, 0 FAIL, 0 ADVARSLER, 0 FEJL
Konsoludgang file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON-output file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …
Kompiler programmet med fejlretningsoplysninger
Du kan bruge sampprojektet, Array Transform, for hurtigt at komme i gang med applikationsfejlfinderen.
1. For at få sample, vælg en af følgende måder:
- Brug oneAPI CLI Samples Browser for at vælge Array Transform fra kategorien Kom godt i gang.
- Download fra GitHub*.
2. Naviger til src af sampprojektet:
cd array-transform/src
3. Kompiler applikationen ved at aktivere debug info (-g flag) og slå optimeringer fra (-O0 flag).
Deaktivering af optimering anbefales for et stabilt og præcist fejlfindingsmiljø. Dette hjælper med at undgå forvirring forårsaget af ændringer i koden efter compiler-optimeringer.
NOTE Du kan stadig kompilere programmet med optimering aktiveret (-O2 flag), hvilket kan være nyttigt, hvis du sigter mod GPU-assembly-fejlretning.
Du kan kompilere programmet på flere måder. Mulighed 1 og 2 bruger just-in-time (JIT) kompilering, som anbefales til at fejlsøgeample. Mulighed 3 bruger AOT-kompilering (ahead-of-time).
- Mulighed 1. Du kan bruge CMake file at konfigurere og bygge applikationen. Der henvises til LÆS MIG af sample for instruktionerne.
NOTE CMake file forsynet med sample passerer allerede -g -O0 flagene.
- Mulighed 2. For at kompilere array-transform.cpp sampapplikationen uden CMake file, udsend følgende kommandoer:
icpx -fsycl -g -O0 array-transform.cpp -o array-transform
Hvis kompilering og sammenkædning udføres separat, behold -g -O0 flagene ved linktrinnet. Linktrinnet er, når icpx oversætter disse flag til at blive videregivet til enhedskompileren ved kørsel. Eksampdet:
icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform
- Mulighed 3. Du kan bruge AOT-kompilering for at undgå længere JIT-kompileringstider under kørsel. JIT-kompilering kan tage betydeligt længere tid for store kerner under debuggeren. Sådan bruger du forudgående kompileringstilstand:
• Til fejlretning på en GPU:
Angiv den enhed, du vil bruge til programafvikling. F.eksample, -enhed dg2-g10 til Intel® Data Center GPU Flex 140 Graphics. For en liste over understøttede muligheder og mere information om AOT-kompilering henvises til Intel® oneAPI DPC++ Compiler Developer Guide and Reference.
F.eksampdet:
icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs "-device dg2-g10" array-transform.cpp -o arraytransform
Forudgående kompilering kræver OpenCLTM Offline Compiler (OC Compiler LOC). For mere information henvises til afsnittet "Installer OpenCLTM Offline Compiler (OCLOC)" i Installationsvejledning.
• Til fejlretning på en CPU:
icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform
Start en fejlretningssession
Start fejlretningssessionen:
1. Start Intel® Distribution for GDB* som følger:
gdb-oneapi array-transform
Du bør se (gdb)-prompten.
2. For at sikre, at kernen er overført til den rigtige enhed, skal du udføre følgende trin. Når du udfører run-kommandoen fra (gdb)-prompten, skal du videregive cpu, gpu or accelerator argument:
- Til fejlretning på CPU'en:
køre cpu
Example output:
[SYCL] Bruger enhed: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] fra [Intel(R) OpenCL]- Til fejlretning på GPU'en:
køre gpu
Example output:
[SYCL] Bruger enhed: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] fra [Intel(R) LevelZero]- Til fejlretning på FPGA-emulatoren:
køre speederen
Example output:
[SYCL] Bruger enhed: [Intel(R) FPGA Emulation Device] fra [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]NOTE CPU-, gpu- og acceleratorparametrene er specifikke for Array Transform-applikationen.
3. Sådan afsluttes Intel® Distribution for GDB*:
forlade
For nemheds skyld findes almindelige Intel® Distribution for GDB*-kommandoer i Referenceark.
For at fejlfinde Array Transform sampog lær mere om Intel® Distribution til GDB*, gå gennem grundlæggende fejlfindingsscenarier ved hjælp af Tutorial.
Lær mere
Dokument | Beskrivelse |
Selvstudium: Fejlretning med Intel® Distribution til GDB* | Dette dokument beskriver de grundlæggende scenarier, der skal følges under fejlretning af SYCL* og OpenCL med Intel® Distribution for GDB*. |
Intel® Distribution for GDB* Brugervejledning | Dette dokument beskriver alle almindelige opgaver, som du kan udføre med Intel® Distribution for GDB* og giver de nødvendige tekniske detaljer. |
Intel® Distribution for GDB* Release Notes | Noterne indeholder oplysninger om nøglefunktioner, nye funktioner og kendte problemer med Intel® Distribution for GDB*. |
oneAPI produktside | Denne side indeholder en kort introduktion til oneAPI-værktøjssæt og links til nyttige ressourcer. |
Intel® Distribution for GDB* referenceark | Dette dokument på én side beskriver kort Intel® Distribution for GDB* forudsætninger og nyttige kommandoer. |
Jacobi Sample | Denne lille SYCL*-applikation har to versioner: fejlbehæftet og rettet. Brug sample at udøve applikationsfejlretning med Intel® Distribution for GDB*. |
Meddelelser og ansvarsfraskrivelser
Intel-teknologier kan kræve aktiveret hardware, software eller service-aktivering.
Intet produkt eller komponent kan være helt sikkert.
Dine omkostninger og resultater kan variere.
© Intel Corporation. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Andre navne og mærker kan hævdes som andres ejendom.
Ingen licens (udtrykt eller underforstået, ved estoppel eller på anden måde) til nogen intellektuel ejendomsret er givet af dette dokument.
De beskrevne produkter kan indeholde designfejl eller fejl kendt som errata, som kan få produktet til at afvige fra offentliggjorte specifikationer. Aktuelle karakteriserede errata er tilgængelige på anmodning.
Intel fraskriver sig alle udtrykkelige og underforståede garantier, herunder uden begrænsning de underforståede garantier for salgbarhed, egnethed til et bestemt formål og ikke-krænkelse, såvel som enhver garanti, der opstår som følge af ydeevne, handel eller brug i handelen.
OpenCL og OpenCL-logoet er varemærker tilhørende Apple Inc., der bruges med tilladelse fra Khronos.
Dokumenter/ressourcer
![]() |
intel Distribution til GDB på Linux OS Host [pdfBrugervejledning Distribution for GDB på Linux OS Host, GDB på Linux OS Host, Linux OS Host, OS Host, Host |