Te begjinnen mei Intel® Distribúsje foar GDB* op Linux* OS Host

Begjin mei it brûken fan de Intel®-distribúsje foar GDB* foar debuggen fan applikaasjes. Folgje de ynstruksjes hjirûnder om de debugger yn te stellen om applikaasjes te debuggen mei kernels ôfladen nei CPU- en GPU-apparaten.

Intel®-distribúsje foar GDB* is beskikber as ûnderdiel fan 'e Intel® oneAPI Base Toolkit. Foar mear ynformaasje oer oneAPI toolkits, besykje de produkt side.

Besykje de Release Notes side foar ynformaasje oer wichtige mooglikheden, nije funksjes en bekende problemen.

Jo kinne in SYCL* s brûkeample koade, Array Transform, om te begjinnen mei de Intel® Distribúsje foar GDB *. De sample generearret gjin flaters en yllustrearret gewoan debuggerfunksjes. De koade ferwurket eleminten fan de ynfier array ôfhinklik fan oft se binne even of ûneven en produsearret in útfier array. Jo kinne gebrûk meitsje fan de sample te debuggen op sawol de CPU as GPU, spesifisearje it keazen apparaat fia in kommandorigelargumint. Tink derom dat GPU-debuggen twa systemen en ekstra konfiguraasje kinne fereaskje foar debuggen op ôfstân.

Betingsten

As jo ​​fan doel binne om te debuggen op GPU, ynstallearje dan de lêste GPU-bestjoerders en konfigurearje jo systeem om se te brûken. Ferwize nei de Intel® oneAPI Toolkits Ynstallaasjegids foar Linux* OS. Folgje de ynstruksjes Ynstallearje Intel GPU-bestjoerders om GPU-bestjoerders te ynstallearjen dy't oerienkomme mei jo systeem.

Dêrneist kinne jo ynstallearje in tafoeging foar Visual Studio Code * foar debuggen GPU mei Intel® Distribúsje foar GDB *. Ferwize nei de Mei help fan Visual Studio Code mei Intel® oneAPI Toolkits Guide.

Stel de GPU Debugger yn

Om de GPU-debugger yn te stellen, moatte jo root-tagong hawwe.


NOAT Tidens kernel-debuggen wurdt de GPU stoppe en is de fideo-útfier net beskikber op jo doelmasine. Hjirtroch kinne jo de GPU net debugge fan it doelsysteem as de GPU-kaart fan it systeem ek wurdt brûkt foar grafyske útfier. Yn dit gefal, ferbine mei de masine fia ssh.


1. As jo ​​fan doel binne op GPU te debuggen, is in Linux Kernel dy't GPU-debuggen stipet nedich.

a. Folgje de ynstruksjes op Intel® software foar algemiene doel GPU mooglikheden om de nedige bestjoerders te downloaden en te ynstallearjen.
b. I915-debug-stipe ynskeakelje yn Kernel:

a. Iepenje in terminal.
b. Iepenje de grûn file yn /etc/default.
c. Yn 'e grûn file, fyn de rigel GRUB_CMDLINE_LINUX_DEFAULT="".
d. Fier de folgjende tekst yn tusken de quotes (""):

i915.debug_eu=1


NOAT Standert lit de GPU-bestjoerder gjin wurkdruk op in GPU langer rinne as in bepaalde tiid. De bestjoerder deadet sokke langrinnende wurkloads troch de GPU werom te setten om hingjen te foarkommen. It hangcheckmeganisme fan 'e bestjoerder is útskeakele as de applikaasje ûnder de debugger rint. As jo ​​fan plan binne om lange komputerwurklasten ek út te fieren sûnder dat in debugger is taheakke, beskôgje dan oanfreegje GPU: Hangcheck útskeakelje troch tafoegjen

i915.enable_hangcheck=0

nei itselde GRUB_CMDLINE_LINUX_DEFAULT line.

c. Update GRUB foar dizze wizigingen om effekt te nimmen:

sudo update-grub

d. Reboot.

2. Stel jo CLI-omjouwing yn troch it setvars-skript te keapjen dat leit yn 'e root fan jo toolkit-ynstallaasje.

Linux (sudo):

boarne /opt/intel/oneapi/setvars.sh

Linux (brûker):

boarne ~/intel/oneapi/setvars.sh

3. Setup omjouwing
Brûk de folgjende omjouwingsfariabelen om debugger-stipe yn te skeakeljen foar Intel® oneAPI Level Zero:

eksportearje ZET_ENABLE_PROGRAM_DEBUGGING=1
eksportearje IGC_EnableGTLocationDebugging=1

4. Systeem kontrôle
As alles klear is, fier dan it folgjende kommando út om te befestigjen dat de systeemkonfiguraasje betrouber is:

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

In mooglike útfier fan in goed ynsteld systeem is as folget:


Kontrolearje resultaten:
=================================================== ===============================
Kontrolearje namme: debugger_sys_check
Beskriuwing: Dizze kontrôle ferifiearret as de omjouwing ree is om gdb (Intel(R)-distribúsje foar GDB*) te brûken.
Resultaat status: PASS
Debugger fûn.
libipt fûn.
libiga fûn.
i915 debug is ynskeakele.
Omjouwingsfariabelen korrekt. =================================================== =================================

1 KONTROLE: 1 PASS, 0 FAIL, 0 WARNINGS, 0 FOUTEN

Konsolútfier file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON-útfier file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

Kompilearje it programma mei debug-ynformaasje

Jo kinne gebrûk meitsje fan de sample projekt, Array Transform, om fluch te begjinnen mei de applikaasje debugger.

1. Om de sample, kies ien fan 'e folgjende manieren:

2. Navigearje nei de src fan 'e sampit projekt:

cd array-transform/src

3. Kompilearje de applikaasje troch de debug-ynfo (-g-flagge) yn te skeakeljen en optimalisaasjes út te skeakeljen (-O0-flagge).
It útskeakeljen fan optimalisaasje wurdt oanrikkemandearre foar in stabile en krekte debug-omjouwing. Dit helpt om betizing te foarkommen feroarsake troch feroaringen oan 'e koade nei kompilatoroptimalisaasjes.


NOAT Jo kinne noch kompilearje it programma mei optimalisaasje ynskeakele (-O2 flagge), dat kin wêze nuttich as jo fan doel GPU assembly debuggen.


Jo kinne it programma op ferskate manieren kompilearje. Opsjes 1 en 2 brûke just-in-time (JIT) kompilaasje, dat wurdt oanrikkemandearre om de s te debuggenample. Opsje 3 brûkt foarôfgeande (AOT) kompilaasje.

  • Opsje 1. Jo kinne de CMake brûke file om de applikaasje te konfigurearjen en te bouwen. Ferwize nei de README fan de sample foar de ynstruksjes.

NOAT De CMake file foarsjoen fan de sample passet al de -g -O0 flaggen.


  • Opsje 2. Om kompilearje de array-transform.cpp sample applikaasje sûnder de CMake file, jou de folgjende kommando's út:

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

As kompilaasje en keppeljen apart wurdt dien, bewarje dan de -g -O0-flaggen by de keppelingstap. De linkstap is as icpx dizze flaggen oerset om te wurde trochjûn oan de apparaatkompiler by runtime. Example:

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

  • Opsje 3. Jo kinne AOT-kompilaasje brûke om langere JIT-kompilaasjetiden te foarkommen by runtime. JIT-kompilaasje kin signifikant langer duorje foar grutte kernels ûnder de debugger. Om Ahead-of-Time kompilaasjemodus te brûken:

• Foar debuggen op in GPU:
Spesifisearje it apparaat dat jo sille brûke foar programma-útfiering. Bygelyksample, -apparaat dg2-g10 foar Intel® Data Center GPU Flex 140 Grafiken. Foar de list mei stipe opsjes en mear ynformaasje oer AOT kompilaasje, ferwize nei de Intel® oneAPI DPC++ Compiler Developer Guide and Reference.
Bygelyksample:

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

Foarôfgeande kompilaasje fereasket de OpenCLTM Offline Compiler (OC Compiler LOC). Foar mear ynformaasje, ferwize nei de seksje "Ynstallearje OpenCLTM Offline Compiler (OCLOC)" fan de Ynstallaasje Guide.

• Foar debuggen op in CPU:

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

Begjin in debug-sesje

Begjin de debug-sesje:

1. Start Intel®-distribúsje foar GDB* as folget:

gdb-oneapi array-transformearje

Jo moatte de (gdb) prompt sjen.

2. Om derfoar te soargjen dat de kernel is ôfladen nei it juste apparaat, doch de folgjende stappen. As jo ​​​​it run kommando útfiere fan 'e (gdb) prompt, pass de cpu, gpu or accelerator argumint:

  • Foar debuggen op 'e CPU:

cpu rinne

Example útfier:

[SYCL] Mei help fan apparaat: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] fan [Intel(R) OpenCL]
  • Foar debuggen op 'e GPU:

rinne gpu

Example útfier:

[SYCL] Mei help fan apparaat: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] fan [Intel(R) LevelZero]
  • Foar debuggen op 'e FPGA-emulator:

rinne accelerator

Example útfier:

[SYCL] Mei help fan apparaat: [Intel(R) FPGA-emulaasjeapparaat] fan [Intel(R) FPGA-emulaasjeplatfoarm foar OpenCL(TM) software]

NOAT De cpu-, gpu- en acceleratorparameters binne spesifyk foar de Array Transform-applikaasje.


3. Om de Intel®-distribúsje foar GDB te stopjen*:

quit

Foar jo gemak wurde mienskiplike Intel®-distribúsje foar GDB * kommando's yn 'e Referinsjeblêd.

Om de Array Transform sample en lear mear oer Intel® Distribúsje foar GDB *, rinne troch basis debuggen senario mei help fan de Tutorial.

Learje mear
Dokumint Beskriuwing
Tutorial: Debuggen mei Intel®-distribúsje foar GDB* Dit dokumint beskriuwt de basissenario's om te folgjen by it debuggen fan SYCL * en OpenCL mei Intel® Distribúsje foar GDB *.
Intel® Distribúsje foar GDB * Brûkersgids Dit dokumint beskriuwt alle mienskiplike taken dy't jo kinne foltôgje mei Intel® Distribution foar GDB * en jout needsaaklike technyske details.
Intel®-distribúsje foar GDB * Release Notes De notysjes befetsje ynformaasje oer wichtige mooglikheden, nije funksjes en bekende problemen fan Intel® Distribution for GDB *.
oneAPI Product Page Dizze side befettet koarte ynlieding oer oneAPI toolkits en keppelings nei nuttige boarnen.
Intel® Distribúsje foar GDB * Referinsjeblêd Dit dokumint fan ien side beskriuwt koart Intel® Distribúsje foar GDB * betingsten en brûkbere kommando's.
Jacobje Sample Dizze lytse SYCL * applikaasje hat twa ferzjes: bugged en reparearre. Brûk de sample te oefenjen applikaasje debuggen mei Intel® Distribúsje foar GDB *.
Meidielings en disclaimers

Intel-technologyen kinne aktivearring fan hardware, software of tsjinst fereaskje.

Gjin produkt of komponint kin absolút feilich wêze.

Jo kosten en resultaten kinne ferskille.

© Intel Corporation. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

Gjin lisinsje (ekspresje of ymplisearre, troch estoppel of oars) oan yntellektuele eigendomsrjochten wurdt ferliend troch dit dokumint.

De beskreaune produkten kinne ûntwerpdefekten befetsje as flaters bekend as errata dy't kinne feroarsaakje dat it produkt ôfwykt fan publisearre spesifikaasjes. Aktuele karakterisearre errata binne beskikber op oanfraach.

Intel ûntkent alle útdruklike en ymplisearre garânsjes, ynklusyf sûnder beheining, de ymplisite garânsjes fan hannelberens, fitness foar in bepaald doel, en net-ynbreuk, lykas alle garânsjes dy't fuortkomme út rin fan prestaasjes, rin fan hannel, of gebrûk yn hannel.

OpenCL en it OpenCL-logo binne hannelsmerken fan Apple Inc. brûkt mei tastimming fan Khronos.

Dokuminten / Resources

intel-distribúsje foar GDB op Linux OS Host [pdf] Brûkersgids
Distribúsje foar GDB op Linux OS Host, GDB op Linux OS Host, Linux OS Host, OS Host, Host

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *