Kom i gang med Intel® Distribution for GDB* på Linux* OS Host
Begynn å bruke Intel® Distribution for GDB* for feilsøkingsapplikasjoner. Følg instruksjonene nedenfor for å sette opp feilsøkeren til å feilsøke applikasjoner med kjerner avlastet til CPU- og GPU-enheter.
Intel® Distribution for GDB* er tilgjengelig som en del av Intel® oneAPI Base Toolkit. For mer informasjon om oneAPI-verktøysett, besøk produktside.
Besøk Utgivelsesnotater side for informasjon om nøkkelfunksjoner, nye funksjoner og kjente problemer.
Du kan bruke en SYCL* sample-kode, Array Transform, for å komme i gang med Intel® Distribution for GDB*. sample genererer ikke feil og illustrerer bare feilsøkingsfunksjoner. Koden behandler elementer i inngangsmatrisen avhengig av om de er partall eller oddetall og produserer en utmatrise. Du kan bruke sample for å feilsøke på både CPU eller GPU, og spesifisere den valgte enheten gjennom et kommandolinjeargument. Vær imidlertid oppmerksom på at GPU-feilsøking kan kreve to systemer og ekstra konfigurasjon for ekstern feilsøking.
Forutsetninger
Hvis du har som mål å feilsøke på GPU, installer de nyeste GPU-driverne og konfigurer systemet til å bruke dem. Referere til Installasjonsveiledning for Intel® oneAPI Toolkits for Linux* OS. Følg instruksjonene Installer Intel GPU-drivere for å installere GPU-drivere som samsvarer med systemet ditt.
I tillegg kan du installere en utvidelse for Visual Studio Code* for feilsøking av GPU med Intel® Distribution for GDB*. Referere til Bruk av Visual Studio Code med Intel® oneAPI Toolkits Guide.
Sett opp GPU Debugger
For å sette opp GPU-feilsøkeren må du ha root-tilgang.
NOTE Under kjernefeilsøking stanses GPU-en og videoutgangen er utilgjengelig på målmaskinen. På grunn av dette kan du ikke feilsøke GPUen fra målsystemet hvis GPU-kortet til systemet også brukes til grafisk utdata. I dette tilfellet, koble til maskinen via ssh.
1. Hvis du har som mål å feilsøke på GPU, trengs en Linux-kjerne som støtter GPU-feilsøking.
a. Følg instruksjonene på Intel®-programvare for generelle GPU-funksjoner for å laste ned og installere de nødvendige driverne.
b. Aktiver i915-feilsøkingsstøtte i kjernen:
a. Åpne en terminal.
b. Åpne gruben file i /etc/default.
c. I gruben file, finn linjen GRUB_CMDLINE_LINUX_DEFAULT="".
d. Skriv inn følgende tekst mellom anførselstegnene (“”):
i915.debug_eu=1
NOTE Som standard tillater ikke GPU-driveren at arbeidsbelastninger kjøres på en GPU lenger enn en viss tid. Driveren dreper slike langvarige arbeidsbelastninger ved å tilbakestille GPUen for å forhindre henger. Hengekontrollmekanismen til driveren er deaktivert hvis applikasjonen kjører under feilsøkeren. Hvis du planlegger å kjøre lange dataarbeidsbelastninger uten at en feilsøker er koblet til, bør du vurdere å søke GPU: Deaktiver Hangcheck ved å legge til
i915.enable_hangcheck=0
til det samme GRUB_CMDLINE_LINUX_DEFAULT linje.
c. Oppdater GRUB for at disse endringene skal tre i kraft:
sudo update-grub
d. Start på nytt.
2. Sett opp CLI-miljøet ditt ved å hente inn setvars-skriptet som ligger i roten av verktøysettinstallasjonen.
Linux (sudo):
kilde /opt/intel/oneapi/setvars.sh
Linux (bruker):
kilde ~/intel/oneapi/setvars.sh
3. Oppsettmiljø
Bruk følgende miljøvariabler for å aktivere feilsøkingsstøtte for Intel® oneAPI Level Zero:
eksporter ZET_ENABLE_PROGRAM_DEBUGGING=1
eksport IGC_EnableGTLocationDebugging=1
4. Systemsjekk
Når alt er klart, kjør følgende kommando for å bekrefte at systemkonfigurasjonen er pålitelig:
python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force
En mulig utgang fra et godt konfigurert system er som følger:
…
Sjekker resultater:
================================================== ================================
Sjekknavn: debugger_sys_check
Beskrivelse: Denne kontrollen bekrefter om miljøet er klart til å bruke gdb (Intel(R) Distribution for GDB*).
Resultatstatus: PASS
Debugger funnet.
libipt funnet.
libiga funnet.
i915 debug er aktivert.
Miljøvariabler korrekte. ================================================== =================================
1 KONTROLL: 1 PASS, 0 FAIL, 0 ADVARSLER, 0 FEIL
Konsollutgang file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON-utdata file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …
Kompiler programmet med feilsøkingsinformasjon
Du kan bruke sampprosjektet, Array Transform, for raskt å komme i gang med applikasjonsfeilsøkeren.
1. For å få sample, velg en av følgende måter:
- Bruk oneAPI CLI Samples nettleser for å velge Array Transform fra kategorien Komme i gang.
- Last ned fra GitHub*.
2. Naviger til kilden til sampprosjektet:
cd array-transform/src
3. Kompiler applikasjonen ved å aktivere feilsøkingsinformasjonen (-g-flagget) og slå av optimaliseringer (-O0-flagget).
Deaktivering av optimalisering anbefales for et stabilt og nøyaktig feilsøkingsmiljø. Dette bidrar til å unngå forvirring forårsaket av endringer i koden etter kompilatoroptimaliseringer.
NOTE Du kan fortsatt kompilere programmet med optimalisering aktivert (-O2-flagg), noe som kan være nyttig hvis du tar sikte på GPU-monteringsfeilsøking.
Du kan kompilere programmet på flere måter. Alternativ 1 og 2 bruker just-in-time (JIT) kompilering, som anbefales for å feilsøke sample. Alternativ 3 bruker AOT-kompilering (ahead-of-time).
- Alternativ 1. Du kan bruke CMake file for å konfigurere og bygge applikasjonen. Referere til LES MIG av sample for instruksjonene.
NOTE CMake file forsynt med sample passerer allerede -g -O0-flaggene.
- Alternativ 2. For å kompilere array-transform.cpp sampapplikasjonen uten CMake file, utfør følgende kommandoer:
icpx -fsycl -g -O0 array-transform.cpp -o array-transform
Hvis kompilering og kobling gjøres separat, behold -g -O0-flaggene ved koblingstrinnet. Koblingstrinnet er når icpx oversetter disse flaggene til å sendes til enhetskompilatoren ved kjøring. Eksampde:
icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform
- Alternativ 3. Du kan bruke AOT-kompilering for å unngå lengre JIT-kompileringstider under kjøring. JIT-kompilering kan ta betydelig lengre tid for store kjerner under debuggeren. Slik bruker du Ahead-of-Time-kompileringsmodus:
• For feilsøking på en GPU:
Spesifiser enheten du vil bruke for programkjøring. For eksample, -device dg2-g10 for Intel® Data Center GPU Flex 140 Graphics. For listen over støttede alternativer og mer informasjon om AOT-kompilering, se Intel® oneAPI DPC++ kompilatorutviklerveiledning og referanse.
For eksampde:
icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs "-device dg2-g10" array-transform.cpp -o arraytransform
Forutgående kompilering krever OpenCLTM Offline Compiler (OC Compiler LOC). For mer informasjon, se avsnittet "Installer OpenCLTM Offline Compiler (OCLOC)" i Installasjonsveiledning.
• For feilsøking på en CPU:
icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform
Start en feilsøkingsøkt
Start feilsøkingsøkten:
1. Start Intel® Distribution for GDB* som følger:
gdb-oneapi array-transform
Du bør se (gdb)-ledeteksten.
2. For å være sikker på at kjernen er lastet av til riktig enhet, gjør følgende trinn. Når du kjører kommandoen fra (gdb)-ledeteksten, sender du cpu, gpu or akselerator argument:
- For feilsøking på CPU:
kjøre cpu
Example utgang:
[SYCL] Bruker enhet: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] fra [Intel(R) OpenCL]- For feilsøking på GPU:
kjøre gpu
Example utgang:
[SYCL] Bruker enhet: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] fra [Intel(R) LevelZero]- For feilsøking på FPGA-emulatoren:
kjøre gasspedalen
Example utgang:
[SYCL] Bruker enhet: [Intel(R) FPGA Emulation Device] fra [Intel(R) FPGA Emulation Platform for OpenCL(TM)-programvare]NOTE Cpu-, gpu- og akseleratorparametrene er spesifikke for Array Transform-applikasjonen.
3. For å avslutte Intel® Distribution for GDB*:
slutte
For enkelhets skyld finnes vanlige Intel® Distribution for GDB*-kommandoer i Referanseark.
For å feilsøke Array Transform samples og lær mer om Intel® Distribution for GDB*, gå gjennom grunnleggende feilsøkingsscenarier ved hjelp av Opplæring.
Lær mer
Dokument | Beskrivelse |
Veiledning: Feilsøking med Intel®-distribusjon for GDB* | Dette dokumentet beskriver de grunnleggende scenariene som skal følges under feilsøking av SYCL* og OpenCL med Intel® Distribution for GDB*. |
Intel® Distribution for GDB* brukerveiledning | Dette dokumentet beskriver alle vanlige oppgaver som du kan fullføre med Intel® Distribution for GDB* og gir nødvendige tekniske detaljer. |
Intel® Distribution for GDB* versjonsmerknader | Merknadene inneholder informasjon om nøkkelfunksjoner, nye funksjoner og kjente problemer med Intel® Distribution for GDB*. |
oneAPI produktside | Denne siden inneholder en kort introduksjon om oneAPI-verktøysett og lenker til nyttige ressurser. |
Intel® Distribution for GDB* Referanseark | Dette dokumentet på én side beskriver kort Intel® Distribution for GDB*-forutsetninger og nyttige kommandoer. |
Jacobi Sample | Denne lille SYCL*-applikasjonen har to versjoner: feilet og fikset. Bruk sample for å utøve applikasjonsfeilsøking med Intel® Distribution for GDB*. |
Merknader og ansvarsfraskrivelser
Intel-teknologier kan kreve aktivert maskinvare-, programvare- eller tjenesteaktivering.
Ingen produkter eller komponenter kan være helt sikre.
Kostnadene og resultatene dine kan variere.
© Intel Corporation. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Andre navn og merker kan gjøres krav på som andres eiendom.
Ingen lisens (uttrykkelig eller underforstått, ved estoppel eller på annen måte) til noen immaterielle rettigheter er gitt av dette dokumentet.
Produktene som beskrives kan inneholde designfeil eller feil kjent som errata som kan føre til at produktet avviker fra publiserte spesifikasjoner. Gjeldende karakteriserte errata er tilgjengelig på forespørsel.
Intel fraskriver seg alle uttrykte og underforståtte garantier, inkludert, uten begrensning, underforståtte garantier for salgbarhet, egnethet for et bestemt formål og ikke-krenkelse, samt enhver garanti som oppstår fra ytelsesforløpet, handelsforløpet eller bruk i handelen.
OpenCL og OpenCL-logoen er varemerker for Apple Inc. brukt med tillatelse fra Khronos.
Dokumenter / Ressurser
![]() |
intel distribusjon for GDB på Linux OS Host [pdfBrukerhåndbok Distribusjon for GDB på Linux OS Host, GDB på Linux OS Host, Linux OS Host, OS Host, Host |