Komencu kun Intel® Distribution por GDB* en Linux* OS Host

Komencu uzi la Intel® Distribution por GDB* por sencimigi aplikojn. Sekvu la subajn instrukciojn por agordi la erarserĉilon por sencimigi aplikojn kun kernoj elŝutitaj al CPU kaj GPU-aparatoj.

Intel® Distribution por GDB* estas havebla kiel parto de la Intel® oneAPI Baza Ilaro. Por pliaj informoj pri oneAPI ilaro, vizitu la produkta paĝo.

Vizitu la Eldonaj Notoj paĝon por informoj pri ŝlosilaj kapabloj, novaj funkcioj kaj konataj problemoj.

Vi povas uzi SYCL* sampla kodo, Array Transform, por komenci kun la Intel® Distribuo por GDB*. La sample ne generas erarojn kaj simple ilustras erarĉimilojn. La kodo prilaboras elementojn de la eniga tabelo depende de ĉu ili estas paraj aŭ neparaj kaj produktas produktan tabelon. Vi povas uzi la sample por sencimi en ambaŭ la CPU aŭ GPU, precizigante la elektitan aparaton per komandlinia argumento. Notu tamen, ke GPU-sencimigo povas postuli du sistemojn kaj plian agordon por fora sencimigo.

Antaŭkondiĉoj

Se vi celas sencimigi sur GPU, instalu la plej novajn GPU-ŝoforojn kaj agordu vian sistemon por uzi ilin. Raportu al la Gvidilo pri Instalado de Intel® oneAPI Toolkits por Linukso* OS. Sekvu la instrukciojn Instalu Intel GPU-ŝoforojn instali GPU-ŝoforojn kongruajn kun via sistemo.

Aldone, vi povas instali etendon por Visual Studio Code* por elpurigi GPU per Intel® Distribution por GDB*. Raportu al la Uzante Visual Studio Code kun Intel® oneAPI Toolkits Guide.

Agordu la GPU-Elĉimilon

Por agordi la GPU-erarsermilon, vi devas havi radikan aliron.


NOTO Dum kerna senararigado, la GPU estas haltita kaj la videoproduktado estas neatingebla sur via cela maŝino. Pro tio, vi ne povas sencimigi la GPU de la cela sistemo se la GPU-karto de la sistemo ankaŭ estas uzata por grafika eligo. En ĉi tiu kazo, konektu al la maŝino per ssh.


1. Se vi celas sencimigi sur GPU, necesas Linuksa Kerno kiu subtenas GPU-sencimigon.

a. Sekvu la instrukciojn ĉe Intel®-programaro por ĝeneraluzeblaj GPU-kapabloj por elŝuti kaj instali la necesajn ŝoforojn.
b. Ebligu i915-sencimigan subtenon en Kerno:

a. Malfermu terminalon.
b. Malfermu la grub file en /etc/default.
c. En la larvo file, trovu la linion GRUB_CMDLINE_LINUX_DEFAULT="".
d. Enigu la sekvan tekston inter la citiloj (""):

i915.debug_eu=1


NOTO Defaŭlte, la GPU-ŝoforo ne permesas laborkvantojn funkcii sur GPU pli longe ol certa tempo. La ŝoforo senvivigas tiajn longdaŭrajn laborŝarĝojn restarigante la GPU por malhelpi interrompojn. La hangcheck mekanismo de la ŝoforo estas malŝaltita se la aplikaĵo funkcias sub la erarserĉilo. Se vi planas ruli longajn komputajn laborŝarĝojn ankaŭ sen sencimigilo alfiksita, konsideru kandidatiĝi GPU: Malebligu Hangcheck per aldono

i915.enable_hangcheck=0

al la sama GRUB_CMDLINE_LINUX_DEFAULT linio.

c. Ĝisdatigu GRUB por ke ĉi tiuj ŝanĝoj efektiviĝu:

sudo update-grub

d. Rekomencu.

2. Agordu vian CLI-medion provizante la setvars-skripton situantan en la radiko de via ilaro-instalaĵo.

Linukso (sudo):

fonto /opt/intel/oneapi/setvars.sh

Linukso (uzanto):

fonto ~/intel/oneapi/setvars.sh

3. Agordu medion
Uzu la sekvajn mediajn variablojn por ebligi sencimigan subtenon por Intel® oneAPI Level Zero:

eksporti ZET_ENABLE_PROGRAM_DEBUGGING=1
eksporti IGC_EnableGTLocationDebugging=1

4. Sistemkontrolo
Kiam ĉio estas preta, bonvolu ruli la sekvan komandon por konfirmi, ke la sistema agordo estas fidinda:

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

Ebla eligo de bone agordita sistemo estas jena:


Kontrolas rezultojn:
==================================================== ================================
Kontrolu nomon: debugger_sys_check
Priskribo: Ĉi tiu kontrolo kontrolas ĉu la medio estas preta uzi gdb (Intel(R) Distribution por GDB*).
Rezulta stato: PASI
Sencimigilo trovita.
libipt trovita.
libiga trovita.
i915-sencimigo estas ebligita.
Mediaj variabloj ĝustaj. ==================================================== ==================================

1 KONTROKO: 1 PASO, 0 MALASKO, 0 AVERTO, 0 ERAROJ

Konzola eligo file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON-eligo file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json ...

Kompilu la Programon kun Sencimigaj Informoj

Vi povas uzi la sample-projekto, Array Transform, por rapide komenci kun la aplikaĵa erarserĉilo.

1. Por akiri la sample, elektu iun el la sekvaj manieroj:

2. Navigu al la src de la sampla projekto:

cd array-transform/src

3. Kompilu la aplikaĵon ebligante la sencimigan informon (-g flago) kaj malŝaltante optimumigojn (-O0 flago).
Malebligi optimumigon rekomendas por stabila kaj preciza sencimiga medio. Ĉi tio helpas eviti konfuzon kaŭzitan de ŝanĝoj al la kodo post kompililoj.


NOTO Vi ankoraŭ povas kompili la programon kun optimumigo ebligita (-O2-flago), kio povas esti helpema se vi celas sencimigon de GPU-asembleo.


Vi povas kompili la programon en pluraj manieroj. Opcioj 1 kaj 2 uzas ĝustatempan (JIT) kompilon, kiu rekomendas sencimigi la s.ample. Opcio 3 uzas antaŭtempan (AOT) kompilon.

  • Opcio 1. Vi povas uzi la CMake file por agordi kaj konstrui la aplikaĵon. Raportu al la LEGU MI de la sample por la instrukcioj.

NOTO La CMake file provizita per la sample jam pasas la flagojn -g -O0.


  • Opcio 2. Por kompili la array-transform.cpp sample aplikaĵo sen la CMake file, eligu la jenajn komandojn:

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

Se kompilo kaj ligo estas faritaj aparte, konservu la -g -O0 flagojn ĉe la ligpaŝo. La ligpaŝo estas kiam icpx tradukas ĉi tiujn flagojn por esti pasitaj al la aparato-kompililo ĉe rultempo. Ekzample:

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

  • Opcio 3. Vi povas uzi AOT-kompilon por eviti pli longajn JIT-kompiltempojn ĉe rultempo. JIT-kompilo povas daŭri signife pli longe por grandaj kernoj sub la erarserĉilo. Por uzi Antaŭtempan kompilreĝimon:

• Por sencimigi sur GPU:
Indiku la aparaton, kiun vi uzos por la ekzekuto de la programo. Por ekzample, -device dg2-g10 por Intel® Data Center GPU Flex 140 Graphics. Por la listo de subtenataj opcioj kaj pliaj informoj pri AOT-kompilo, raportu al la Gvidilo kaj Referenco pri Kompililo por Intel® oneAPI DPC++.
Por ekzample:

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

Antaŭtempa kompilo postulas la OpenCLTM Senkonekta Kompililo (OC Compiler LOC). Por pliaj informoj, konsultu la sekcion "Instali OpenCLTM Offline Compiler (OCLOC)" de la Instala Gvidilo.

• Por sencimigi sur CPU:

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

Komencu Sencimigan Sesion

Komencu la sencimigan sesion:

1. Komencu Intel® Distribution por GDB* jene:

gdb-oneapi array-transform

Vi devus vidi la (gdb) promptilon.

2. Por certigi, ke la kerno estas elŝutita al la ĝusta aparato, faru la sekvajn paŝojn. Kiam vi plenumas la ekzekuta komandon de la (gdb) prompto, pasu la cpu, gpu or akcelilo argumento:

  • Por sencimigi sur la CPU:

kuri CPU

Example eligo:

[SYCL] Uzanta aparaton: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] de [Intel(R) OpenCL]
  • Por sencimigi sur la GPU:

kuri gpu

Example eligo:

[SYCL] Uzanta aparaton: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] de [Intel(R) LevelZero]
  • Por senararigado sur la FPGA-emulilo:

kuri akcelilon

Example eligo:

[SYCL] Uzanta aparaton: [Intel(R) FPGA Emulation Device] de [Intel(R) FPGA Emulation Platform por OpenCL(TM) programaro]

NOTO La cpu, gpu kaj akcelilo-parametroj estas specifaj por la aplikaĵo Array Transform.


3. Por forlasi la Intel® Distribution por GDB*:

ĉesi

Por via komforto, komunaj komandoj Intel® Distribution por GDB* estas provizitaj en la Referenca Folio.

Por sencimigi la Array Transform sample kaj lernu pli pri Intel® Distribution por GDB*, trairu bazajn sencimigajn scenarojn uzante la Tutorial.

Lernu Pli
Dokumento Priskribo
Lernilo: Sencimigado kun Intel® Distribution por GDB* Ĉi tiu dokumento priskribas la bazajn scenarojn por sekvi dum elpurigado de SYCL* kaj OpenCL kun Intel® Distribution por GDB*.
Intel® Distribution por GDB* Uzantgvidilo Ĉi tiu dokumento priskribas ĉiujn oftajn taskojn, kiujn vi povas plenumi per Intel® Distribution por GDB* kaj provizas necesajn teknikajn detalojn.
Eldonnotoj de Intel® Distribution por GDB* La notoj enhavas informojn pri ŝlosilaj kapabloj, novaj funkcioj kaj konataj problemoj de Intel® Distribution por GDB*.
oneAPI Produkta Paĝo Ĉi tiu paĝo enhavas mallongan enkondukon pri ilaro de oneAPI kaj ligilojn al utilaj rimedoj.
Referenca Folio de Intel® Distribution por GDB* Ĉi tiu unu-paĝa dokumento mallonge priskribas la antaŭkondiĉojn de Intel® Distribution por GDB* kaj utilajn komandojn.
Jacobi Sample Ĉi tiu malgranda aplikaĵo SYCL* havas du versiojn: cimigita kaj fiksita. Uzu la sample por ekzerci aplikaĵsencimigon kun Intel® Distribution por GDB*.
Avizoj kaj Malgarantioj

Intel-teknologioj povas postuli ebligitan aparataron, programaron aŭ servan aktivigon.

Neniu produkto aŭ ero povas esti absolute sekuraj.

Viaj kostoj kaj rezultoj povas varii.

© Intel Corporation. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Aliaj nomoj kaj markoj povas esti postulitaj kiel posedaĵo de aliaj.

Neniu licenco (esprima aŭ implicita, per malpermeso aŭ alie) al ajnaj intelektaj proprietrajtoj estas donita de ĉi tiu dokumento.

La priskribitaj produktoj povas enhavi dezajnodifektojn aŭ erarojn konatajn kiel eraroj, kiuj povas igi la produkton devii de publikigitaj specifoj. Nunaj karakterizitaj eratoj estas haveblaj laŭ peto.

Intel rifuzas ĉiujn eksplicitajn kaj implicitajn garantiojn, inkluzive sen limigo, la implicajn garantiojn de komercebleco, taŭgeco por aparta celo kaj ne-malobservo, same kiel ajnan garantion devenanta de kurso de agado, kurso de komercado aŭ uzado en komerco.

OpenCL kaj la emblemo de OpenCL estas varmarkoj de Apple Inc. uzataj laŭ permeso de Khronos.

Dokumentoj/Rimedoj

Intel Distribuo por GDB sur Linux OS Host [pdf] Uzantogvidilo
Distribuado por GDB sur Linux OS Host, GDB sur Linux OS Host, Linux OS Host, OS Host, Gastiganto

Referencoj

Lasu komenton

Via retadreso ne estos publikigita. Bezonataj kampoj estas markitaj *