Ga aan de slag met Intel® Distribution for GDB* op Linux* OS Host
Gebruik de Intel® Distribution for GDB* voor het debuggen van applicaties. Volg de onderstaande instructies om de debugger in te stellen voor het debuggen van applicaties met kernels die zijn overgebracht naar CPU- en GPU-apparaten.
Intel® Distribution for GDB* is beschikbaar als onderdeel van de Intel® oneAPI Base Toolkit. Ga voor meer informatie over oneAPI-toolkits naar de productpagina.
Bezoek de Release-opmerkingen pagina voor informatie over belangrijke mogelijkheden, nieuwe functies en bekende problemen.
U kunt een SYCL* s gebruikenample code, Array Transform, om aan de slag te gaan met de Intel® Distribution for GDB*. de sample genereert geen fouten en illustreert eenvoudig debuggerfuncties. De code verwerkt elementen van de invoerarray afhankelijk van of ze even of oneven zijn en produceert een uitvoerarray. U kunt de s gebruikenample om te debuggen op zowel de CPU als GPU, waarbij het gekozen apparaat wordt gespecificeerd via een opdrachtregelargument. Houd er echter rekening mee dat GPU-foutopsporing mogelijk twee systemen en aanvullende configuratie vereist voor foutopsporing op afstand.
Vereisten
Als u fouten wilt opsporen op GPU, installeert u de nieuwste GPU-stuurprogramma's en configureert u uw systeem om deze te gebruiken. Verwijs naar de Intel® oneAPI Toolkits Installatiehandleiding voor Linux* OS. Volg de instructies Installeer Intel GPU-stuurprogramma's om GPU-stuurprogramma's te installeren die overeenkomen met uw systeem.
Daarnaast kunt u een extensie installeren voor Visual Studio Code* voor het debuggen van GPU met Intel® Distribution for GDB*. Verwijs naar de Visual Studio Code gebruiken met Intel® oneAPI Toolkits Guide.
Stel de GPU-foutopsporing in
Om de GPU-foutopsporing in te stellen, moet u root-toegang hebben.
OPMERKING Tijdens het debuggen van de kernel wordt de GPU gestopt en is de video-uitvoer niet beschikbaar op uw doelcomputer. Hierdoor kunt u de GPU van het doelsysteem niet debuggen als de GPU-kaart van het systeem ook wordt gebruikt voor grafische uitvoer. Maak in dit geval verbinding met de machine via ssh.
1. Als u wilt debuggen op GPU, is een Linux-kernel nodig die GPU-foutopsporing ondersteunt.
a. Volg de instructies op Intel®-software voor algemene GPU-mogelijkheden om de benodigde stuurprogramma's te downloaden en te installeren.
b. Schakel i915-foutopsporingsondersteuning in Kernel in:
a. Open een terminal.
b. Open de rups file in /etc/default.
c. In de rui file, zoek de regel GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Typ de volgende tekst tussen de aanhalingstekens (""):
i915.debug_eu=1
OPMERKING Het GPU-stuurprogramma staat standaard niet toe dat workloads langer dan een bepaalde tijd op een GPU worden uitgevoerd. De driver doodt dergelijke langlopende workloads door de GPU opnieuw in te stellen om vastlopen te voorkomen. Het hangcheck-mechanisme van de driver is uitgeschakeld als de toepassing wordt uitgevoerd onder de debugger. Als u van plan bent om lange rekentaken uit te voeren, ook zonder dat er een debugger is gekoppeld, kunt u overwegen om dit toe te passen GPU: Hangcheck uitschakelen door toe te voegen
i915.enable_hangcheck=0
naar dezelfde GRUB_CMDLINE_LINUX_DEFAULT regel.
c. Werk GRUB bij zodat deze wijzigingen van kracht worden:
sudo update-grub
d. Opnieuw opstarten.
2. Stel uw CLI-omgeving in door gebruik te maken van het setvars-script dat zich in de hoofdmap van uw toolkit-installatie bevindt.
Linux (sudo):
bron /opt/intel/oneapi/setvars.sh
Linux (gebruiker):
bron ~/intel/oneapi/setvars.sh
3. Instelomgeving
Gebruik de volgende omgevingsvariabelen om debuggerondersteuning voor Intel® oneAPI Level Zero in te schakelen:
exporteren ZET_ENABLE_PROGRAM_DEBUGGING=1
exporteren IGC_EnableGTLocationDebugging=1
4. Systeemcontrole
Wanneer alles gereed is, voert u de volgende opdracht uit om te bevestigen dat de systeemconfiguratie betrouwbaar is:
python3 /pad/naar/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force
Een mogelijke uitvoer van een goed geconfigureerd systeem is als volgt:
…
Controle resultaten:
================================================= ===============================
Controleer naam: debugger_sys_check
Beschrijving: Deze controle controleert of de omgeving klaar is om gdb (Intel(R) Distribution for GDB*) te gebruiken.
Uitslagstatus: GESLAAGD
Foutopsporing gevonden.
libipt gevonden.
libiga gevonden.
i915-foutopsporing is ingeschakeld.
Omgevingsvariabelen kloppen. =============================================== ===============================
1 CONTROLE: 1 GESLAAGD, 0 FAIL, 0 WAARSCHUWINGEN, 0 FOUTEN
Console-uitgang file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON-uitvoer file: /pad/naar/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …
Compileer het programma met foutopsporingsinformatie
U kunt de s gebruikenample project, Array Transform, om snel aan de slag te gaan met de toepassingsfoutopsporing.
1. Om de s te krijgenample, kies een van de volgende manieren:
- Gebruik de oneAPI CLI Sampde browser om Array Transform te selecteren in de categorie Aan de slag.
- Downloaden van GitHub*.
2. Navigeer naar de src van de samphet project:
cd array-transformatie/src
3. Compileer de applicatie door de debug info (vlag -g) in te schakelen en optimalisaties uit te schakelen (vlag -O0).
Het uitschakelen van optimalisatie wordt aanbevolen voor een stabiele en nauwkeurige foutopsporingsomgeving. Dit helpt verwarring te voorkomen die wordt veroorzaakt door wijzigingen in de code na optimalisaties van de compiler.
OPMERKING U kunt het programma nog steeds compileren met optimalisatie ingeschakeld (-O2-vlag), wat handig kan zijn als u zich richt op foutopsporing in de GPU-assemblage.
U kunt het programma op verschillende manieren samenstellen. Optie 1 en 2 gebruiken just-in-time (JIT)-compilatie, wat wordt aanbevolen om fouten in de sample. Optie 3 maakt gebruik van AOT-compilatie.
- Optie 1. U kunt de CMake gebruiken file om de applicatie te configureren en te bouwen. Verwijs naar de LEESMIJ van de sample voor de instructies.
OPMERKING De CMake file voorzien van de sample passeert al de vlaggen -g -O0.
- Optie 2. Om de array-transform.cpp s te compilerenample-toepassing zonder de CMake file, geef de volgende opdrachten:
icpx -fsycl -g -O0 array-transformatie.cpp -o array-transformatie
Als compilatie en koppeling afzonderlijk worden uitgevoerd, behoudt u de -g -O0-vlaggen bij de koppelingsstap. De koppelingsstap is wanneer icpx deze vlaggen vertaalt om tijdens runtime aan de apparaatcompiler te worden doorgegeven. Exampon:
icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transformatie.o -o array-transformatie
- Optie 3. U kunt AOT-compilatie gebruiken om langere JIT-compilatietijden tijdens runtime te voorkomen. JIT-compilatie kan aanzienlijk langer duren voor grote kernels onder de debugger. Om de Ahead-of-Time-compilatiemodus te gebruiken:
• Voor foutopsporing op een GPU:
Geef het apparaat op dat u gaat gebruiken voor de uitvoering van het programma. Voor bijvample, -apparaat dg2-g10 voor Intel® Data Center GPU Flex 140 Graphics. Raadpleeg voor de lijst met ondersteunde opties en meer informatie over AOT-compilatie de Intel® oneAPI DPC++ Compiler Developer Guide en Reference.
Bijvoorbeeldampon:
icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs "-apparaat dg2-g10" array-transform.cpp -o arraytransform
Ahead-of-Time-compilatie vereist de OpenCLTM Offline Compiler (OC Compiler LOC). Raadpleeg voor meer informatie de sectie "OpenCLTM Offline Compiler (OCLOC) installeren" van de Installatiehandleiding.
• Voor foutopsporing op een CPU:
icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform
Start een foutopsporingssessie
Start de foutopsporingssessie:
1. Start Intel® Distribution for GDB* als volgt:
gdb-oneapi array-transformatie
U zou de prompt (gdb) moeten zien.
2. Voer de volgende stappen uit om ervoor te zorgen dat de kernel naar het juiste apparaat wordt overgebracht. Wanneer u de run-opdracht uitvoert vanaf de (gdb)-prompt, geeft u de processor, grafische kaart or gaspedaal argument:
- Voor foutopsporing op de CPU:
cpu uitvoeren
Exampbestandsuitgang:
[SYCL] Apparaat gebruiken: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] van [Intel(R) OpenCL]- Voor foutopsporing op de GPU:
voer gpu uit
Exampbestandsuitgang:
[SYCL] Apparaat gebruiken: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] van [Intel(R) LevelZero]- Voor debuggen op de FPGA-emulator:
versneller draaien
Exampbestandsuitgang:
[SYCL] Apparaat gebruiken: [Intel(R) FPGA-emulatieapparaat] van [Intel(R) FPGA-emulatieplatform voor OpenCL(TM)-software]OPMERKING De cpu-, gpu- en acceleratorparameters zijn specifiek voor de toepassing Array Transform.
3. Om de Intel®-distributie voor GDB* af te sluiten:
ontslag nemen
Voor uw gemak zijn algemene Intel® Distribution for GDB*-opdrachten beschikbaar in de Referentieblad.
Om de Array Transform s te debuggenample en leer meer over Intel® Distribution for GDB*, doorloop basis foutopsporingsscenario's met behulp van de Handleiding.
Meer informatie
Document | Beschrijving |
Zelfstudie: Foutopsporing met Intel® Distribution for GDB* | Dit document beschrijft de basisscenario's die moeten worden gevolgd bij het debuggen van SYCL* en OpenCL met Intel® Distribution for GDB*. |
Intel® Distribution for GDB* Gebruikershandleiding | Dit document beschrijft alle algemene taken die u kunt uitvoeren met Intel® Distribution for GDB* en geeft de nodige technische details. |
Intel®-distributie voor GDB* Releaseopmerkingen | De opmerkingen bevatten informatie over de belangrijkste mogelijkheden, nieuwe functies en bekende problemen van Intel® Distribution for GDB*. |
oneAPI-productpagina | Deze pagina bevat een korte introductie over oneAPI-toolkits en koppelingen naar nuttige bronnen. |
Intel® Distributie voor GDB* Referentieblad | Dit document van één pagina beschrijft in het kort Intel® Distribution for GDB*-vereisten en handige opdrachten. |
Jacobi Sample | Deze kleine SYCL*-applicatie heeft twee versies: afgeluisterd en gerepareerd. Gebruik de sample om toepassingsfoutopsporing uit te voeren met Intel® Distribution for GDB*. |
Kennisgevingen en disclaimers
Voor Intel-technologieën is mogelijk geactiveerde hardware, software of serviceactivering vereist.
Geen enkel product of onderdeel kan absoluut veilig zijn.
Uw kosten en resultaten kunnen variëren.
© Intel Corporation. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
Er wordt met dit document geen licentie (expliciet of impliciet, door uitsluiting of anderszins) op intellectuele eigendomsrechten verleend.
De beschreven producten kunnen ontwerpfouten of fouten bevatten die bekend staan als errata, waardoor het product kan afwijken van de gepubliceerde specificaties. Actuele gekarakteriseerde errata zijn op aanvraag beschikbaar.
Intel wijst alle uitdrukkelijke en impliciete garanties af, inclusief maar niet beperkt tot de impliciete garanties van verkoopbaarheid, geschiktheid voor een bepaald doel en niet-inbreuk, evenals elke garantie die voortvloeit uit de uitvoering, handelswijze of gebruik in de handel.
OpenCL en het OpenCL-logo zijn handelsmerken van Apple Inc. en worden met toestemming van Khronos gebruikt.
Documenten / Bronnen
![]() |
intel Distribution voor GDB op Linux OS Host [pdf] Gebruikershandleiding Distributie voor GDB op Linux OS Host, GDB op Linux OS Host, Linux OS Host, OS Host, Host |