Kom igång med Intel® Distribution for GDB* på Linux* OS Host

Börja använda Intel® Distribution for GDB* för felsökning av applikationer. Följ instruktionerna nedan för att ställa in felsökaren för att felsöka applikationer med kärnor avlastade till CPU- och GPU-enheter.

Intel® Distribution for GDB* är tillgänglig som en del av Intel® oneAPI Base Toolkit. För mer information om oneAPI-verktygssatser, besök produktsida.

Besök Release Notes sida för information om nyckelfunktioner, nya funktioner och kända problem.

Du kan använda en SYCL* sampkoden, Array Transform, för att komma igång med Intel® Distribution for GDB*. sample genererar inga fel och illustrerar bara felsökningsfunktioner. Koden behandlar element i inmatningsmatrisen beroende på om de är jämna eller udda och producerar en utmatris. Du kan använda sample för att felsöka på både CPU eller GPU, ange den valda enheten genom ett kommandoradsargument. Observera dock att GPU-felsökning kan kräva två system och ytterligare konfiguration för fjärrfelsökning.

Förutsättningar

Om du siktar på att felsöka på GPU, installera de senaste GPU-drivrutinerna och konfigurera ditt system för att använda dem. Referera till Intel® oneAPI Toolkits Installationsguide för Linux* OS. Följ instruktionerna Installera drivrutiner för Intel GPU för att installera GPU-drivrutiner som matchar ditt system.

Dessutom kan du installera ett tillägg för Visual Studio Code* för felsökning av GPU med Intel® Distribution for GDB*. Referera till Använda Visual Studio Code med Intel® oneAPI Toolkits Guide.

Konfigurera GPU Debugger

För att ställa in GPU-felsökaren måste du ha root-åtkomst.


NOTERA Under kärnfelsökning stoppas GPU:n och videoutgången är inte tillgänglig på din måldator. På grund av detta kan du inte felsöka GPU:n från målsystemet om systemets GPU-kort också används för grafisk utdata. Anslut i så fall till maskinen via ssh.


1. Om du siktar på att felsöka på GPU, behövs en Linux-kärna som stöder GPU-felsökning.

a. Följ instruktionerna på Intel®-programvara för generella GPU-funktioner för att ladda ner och installera nödvändiga drivrutiner.
b. Aktivera i915 felsökningsstöd i Kernel:

a. Öppna en terminal.
b. Öppna gruben file i /etc/default.
c. I gruben file, hitta raden GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Skriv in följande text mellan citattecken (“”):

i915.debug_eu=1


NOTERA Som standard tillåter inte GPU-drivrutinen att arbetsbelastningar körs på en GPU längre än en viss tid. Drivrutinen dödar sådana långvariga arbetsbelastningar genom att återställa GPU:n för att förhindra hängningar. Drivrutinens hängkontrollmekanism är inaktiverad om programmet körs under felsökaren. Om du planerar att köra långa arbetsbelastningar även utan att en felsökning är ansluten, överväg att ansöka GPU: Inaktivera Hangcheck genom att lägga till

i915.enable_hangcheck=0

till samma GRUB_CMDLINE_LINUX_DEFAULT rad.

c. Uppdatera GRUB för att dessa ändringar ska träda i kraft:

sudo update-grub

d. Starta om.

2. Ställ in din CLI-miljö genom att köpa setvars-skriptet som finns i roten av din verktygslåda.

Linux (sudo):

källa /opt/intel/oneapi/setvars.sh

Linux (användare):

källa ~/intel/oneapi/setvars.sh

3. Installationsmiljö
Använd följande miljövariabler för att aktivera felsökningsstöd för Intel® oneAPI Level Zero:

exportera ZET_ENABLE_PROGRAM_DEBUGGING=1
exportera IGC_EnableGTLocationDebugging=1

4. Systemkontroll
När allt är klart, kör följande kommando för att bekräfta att systemkonfigurationen är tillförlitlig:

python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force

En möjlig utdata från ett välkonfigurerat system är följande:


Kontrollerar resultat:
================================================== ================================
Kontrollera namn: debugger_sys_check
Beskrivning: Denna kontroll verifierar om miljön är redo att använda gdb (Intel(R) Distribution for GDB*).
Resultatstatus: PASS
Felsökning hittades.
libipt hittat.
libiga hittades.
i915 debug är aktiverad.
Miljövariabler korrekta. ================================================== =================================

1 KONTROLL: 1 GODKÄNT, 0 UNDERLÅD, 0 VARNINGAR, 0 FEL

Konsolutgång file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON-utgång file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

Kompilera programmet med felsökningsinformation

Du kan använda sampprojektet, Array Transform, för att snabbt komma igång med programfelsökningen.

1. För att få sample, välj något av följande sätt:

2. Navigera till src för sample projekt:

cd array-transform/src

3. Kompilera applikationen genom att aktivera felsökningsinformationen (-g-flaggan) och stänga av optimeringar (-O0-flaggan).
Inaktivering av optimering rekommenderas för en stabil och korrekt felsökningsmiljö. Detta hjälper till att undvika förvirring orsakad av ändringar i koden efter kompilatoroptimering.


NOTERA Du kan fortfarande kompilera programmet med optimering aktiverad (-O2-flagga), vilket kan vara till hjälp om du siktar på GPU-monteringsfelsökning.


Du kan kompilera programmet på flera sätt. Alternativ 1 och 2 använder just-in-time (JIT) kompilering, vilket rekommenderas för att felsökaample. Alternativ 3 använder kompilering i förväg (AOT).

  • Alternativ 1. Du kan använda CMake file för att konfigurera och bygga applikationen. Referera till LÄS MIG av sample för instruktionerna.

NOTERA CMake file försedd med sample passerar redan -g -O0 flaggorna.


  • Alternativ 2. För att kompilera array-transform.cpp sampapplikationen utan CMake file, utfärda följande kommandon:

icpx -fsycl -g -O0 array-transform.cpp -o array-transform

Om kompilering och länkning görs separat, behåll flaggorna -g -O0 vid länksteget. Länksteget är när icpx översätter dessa flaggor för att skickas till enhetskompilatorn vid körning. Exampde:

icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform

  • Alternativ 3. Du kan använda AOT-kompilering för att undvika längre JIT-kompileringstider vid körning. JIT-kompilering kan ta betydligt längre tid för stora kärnor under debuggern. Så här använder du kompileringsläget i förväg:

• För felsökning på en GPU:
Ange enheten som du ska använda för programkörning. Till exempelample, -device dg2-g10 för Intel® Data Center GPU Flex 140 Graphics. För listan över alternativ som stöds och mer information om AOT-kompilering, se Intel® oneAPI DPC++ utvecklarhandbok och referens.
Till exempelampde:

icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs "-device dg2-g10" array-transform.cpp -o arraytransform

I förväg kompilering kräver OpenCLTM Offline Compiler (OC Compiler LOC). För mer information, se avsnittet "Installera OpenCLTM Offline Compiler (OCLOC)" i Installationsguide.

• För felsökning på en CPU:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform

Starta en felsökningssession

Starta felsökningssessionen:

1. Starta Intel® Distribution för GDB* enligt följande:

gdb-oneapi array-transform

Du bör se (gdb) prompten.

2. För att se till att kärnan laddas ner till rätt enhet, gör följande steg. När du kör kommandot kör från (gdb)-prompten skickar du cpu, gpu or accelerator argument:

  • För felsökning på CPU:n:

kör cpu

Example utgång:

[SYCL] Använder enhet: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] från [Intel(R) OpenCL]
  • För felsökning på GPU:n:

kör gpu

Example utgång:

[SYCL] Använder enhet: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] från [Intel(R) LevelZero]
  • För felsökning på FPGA-emulatorn:

kör gaspedalen

Example utgång:

[SYCL] Använder enhet: [Intel(R) FPGA-emuleringsenhet] från [Intel(R) FPGA-emuleringsplattform för OpenCL(TM)-programvara]

NOTERA Cpu-, gpu- och acceleratorparametrarna är specifika för Array Transform-applikationen.


3. För att avsluta Intel® Distribution for GDB*:

sluta

För din bekvämlighet finns vanliga Intel® Distribution för GDB*-kommandon i Referensblad.

För att felsöka Array Transform sample och lär dig mer om Intel® Distribution for GDB*, gå igenom grundläggande felsökningsscenarier med hjälp av Handledning.

Läs mer
Dokumentera Beskrivning
Handledning: Felsökning med Intel® Distribution för GDB* Det här dokumentet beskriver de grundläggande scenarierna som ska följas vid felsökning av SYCL* och OpenCL med Intel® Distribution for GDB*.
Användarhandbok för Intel® Distribution for GDB* Det här dokumentet beskriver alla vanliga uppgifter som du kan utföra med Intel® Distribution for GDB* och tillhandahåller nödvändiga tekniska detaljer.
Intel® Distribution for GDB* Release Notes Anteckningarna innehåller information om nyckelfunktioner, nya funktioner och kända problem med Intel® Distribution for GDB*.
oneAPI produktsida Den här sidan innehåller en kort introduktion om oneAPI-verktygssatser och länkar till användbara resurser.
Intel® Distribution för GDB* referensblad Detta dokument på en sida beskriver kortfattat Intel® Distribution for GDB*-förutsättningar och användbara kommandon.
Jacobi Sample Denna lilla SYCL*-applikation har två versioner: buggade och fixade. Använd sample för att utöva programfelsökning med Intel® Distribution for GDB*.
Meddelanden och ansvarsfriskrivningar

Intel-teknologier kan kräva aktiverad maskinvara, programvara eller tjänstaktivering.

Ingen produkt eller komponent kan vara helt säker.

Dina kostnader och resultat kan variera.

© Intel Corporation. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Andra namn och varumärken kan göras anspråk på att vara andras egendom.

Ingen licens (uttrycklig eller underförstådd, genom estoppel eller på annat sätt) till några immateriella rättigheter beviljas av detta dokument.

De beskrivna produkterna kan innehålla konstruktionsfel eller fel som kallas errata som kan göra att produkten avviker från publicerade specifikationer. Aktuella karakteriserade errata är tillgängliga på begäran.

Intel frånsäger sig alla uttryckliga och underförstådda garantier, inklusive utan begränsning, underförstådda garantier om säljbarhet, lämplighet för ett visst ändamål och icke-intrång, såväl som alla garantier som uppstår på grund av prestanda, affärer eller användning i handeln.

OpenCL och OpenCL-logotypen är varumärken som tillhör Apple Inc. som används med tillstånd av Khronos.

Dokument/resurser

intel Distribution för GDB på Linux OS Host [pdf] Användarhandbok
Distribution för GDB på Linux OS Host, GDB på Linux OS Host, Linux OS Host, OS Host, Host

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *