Comenceu amb Intel® Distribution per a GDB* a Linux* OS Host

Comenceu a utilitzar Intel® Distribution for GDB* per depurar aplicacions. Seguiu les instruccions següents per configurar el depurador per depurar aplicacions amb nuclis descarregats als dispositius de CPU i GPU.

Intel® Distribution for GDB* està disponible com a part de l'Intel® oneAPI Base Toolkit. Per obtenir més informació sobre els conjunts d'eines oneAPI, visiteu el pàgina del producte.

Visita el Notes de la versió pàgina per obtenir informació sobre capacitats clau, funcions noves i problemes coneguts.

Podeu utilitzar un SYCL* sampcodi de fitxer, Array Transform, per començar amb la distribució Intel® per a GDB*. El sampel fitxer no genera errors i simplement il·lustra les funcions del depurador. El codi processa elements de la matriu d'entrada en funció de si són parells o senars i produeix una matriu de sortida. Podeu utilitzar el sampli per depurar tant a la CPU com a la GPU, especificant el dispositiu escollit mitjançant un argument de línia d'ordres. Tanmateix, tingueu en compte que la depuració de la GPU pot requerir dos sistemes i una configuració addicional per a la depuració remota.

Requisits previs

Si voleu depurar la GPU, instal·leu els darrers controladors de GPU i configureu el vostre sistema per utilitzar-los. Consulteu el Guia d'instal·lació d'Intel® oneAPI Toolkits per al sistema operatiu Linux*. Seguiu les instruccions Instal·leu els controladors Intel GPU per instal·lar controladors de GPU que coincideixin amb el vostre sistema.

A més, podeu instal·lar una extensió per a Visual Studio Code* per depurar la GPU amb Intel® Distribution for GDB*. Consulteu el Ús de Visual Studio Code amb Intel® oneAPI Toolkits Guide.

Configura el depurador de GPU

Per configurar el depurador de GPU, heu de tenir accés root.


NOTA Durant la depuració del nucli, la GPU s'atura i la sortida de vídeo no està disponible a la vostra màquina de destinació. Per això, no podeu depurar la GPU del sistema de destinació si la targeta GPU del sistema també s'utilitza per a la sortida gràfica. En aquest cas, connecteu-vos a la màquina mitjançant ssh.


1. Si voleu depurar la GPU, cal un nucli de Linux que admeti la depuració de GPU.

a. Seguiu les instruccions a Programari Intel® per a capacitats de GPU d'ús general per descarregar i instal·lar els controladors necessaris.
b. Habilita el suport de depuració i915 al nucli:

a. Obre un terminal.
b. Obre el grub file a /etc/default.
c. En el grub file, cerqueu la línia GRUB_CMDLINE_LINUX_DEFAULT="".
d. Introduïu el text següent entre cometes (“”):

i915.debug_eu=1


NOTA De manera predeterminada, el controlador de la GPU no permet que les càrregues de treball s'executin en una GPU durant un període de temps determinat. El controlador elimina aquestes càrregues de treball de llarga durada restablint la GPU per evitar bloquejos. El mecanisme de comprovació de bloqueig del controlador està desactivat si l'aplicació s'està executant amb el depurador. Si teniu previst executar càrregues de treball de càlcul llargues també sense connectar un depurador, considereu la possibilitat d'aplicar-ho GPU: desactiva Hangcheck afegint

i915.enable_hangcheck=0

al mateix Línia GRUB_CMDLINE_LINUX_DEFAULT.

c. Actualitzeu GRUB perquè aquests canvis tinguin efecte:

sudo update-grub

d. Reinicieu.

2. Configureu el vostre entorn CLI obtenint l'script setvars situat a l'arrel de la instal·lació del vostre kit d'eines.

Linux (sudo):

font /opt/intel/oneapi/setvars.sh

Linux (usuari):

font ~/intel/oneapi/setvars.sh

3. Configuració de l'entorn
Utilitzeu les variables d'entorn següents per habilitar el suport del depurador per a Intel® oneAPI Level Zero:

exporteu ZET_ENABLE_PROGRAM_DEBUGGING=1
exportar IGC_EnableGTLocationDebugging=1

4. Comprovació del sistema
Quan tot estigui a punt, executeu l'ordre següent per confirmar que la configuració del sistema és fiable:

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

Una possible sortida d'un sistema ben configurat és la següent:


Comprova els resultats:
===================================================== =================================
Comprova el nom: debugger_sys_check
Descripció: aquesta comprovació verifica si l'entorn està preparat per utilitzar gdb (Distribució Intel(R) per a GDB*).
Estat del resultat: PASS
S'ha trobat el depurador.
libipt trobat.
libiga trobada.
La depuració i915 està activada.
Les variables ambientals correctes. ===================================================== ==================================

1 VERIFICACIÓ: 1 APROBADA, 0 FALLADA, 0 ADVERTIMENTS, 0 ERRORS

Sortida de consola file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt sortida JSON file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json…

Compileu el programa amb informació de depuració

Podeu utilitzar el sample projecte, Array Transform, per començar ràpidament amb el depurador d'aplicacions.

1. Per aconseguir el sample, trieu qualsevol de les maneres següents:

2. Navegueu fins al src del sampel projecte:

cd array-transform/src

3. Compileu l'aplicació activant la informació de depuració (marcador -g) i desactivant les optimitzacions (marcador -O0).
Es recomana desactivar l'optimització per a un entorn de depuració estable i precís. Això ajuda a evitar la confusió causada pels canvis al codi després de les optimitzacions del compilador.


NOTA Encara podeu compilar el programa amb l'optimització activada (marcador -O2), cosa que us pot ser útil si teniu com a objectiu la depuració del conjunt de la GPU.


Podeu compilar el programa de diverses maneres. Les opcions 1 i 2 utilitzen la compilació just-in-time (JIT), que es recomana per depurar el sample. L'opció 3 utilitza la compilació anticipada (AOT).

  • Opció 1. Podeu utilitzar CMake file per configurar i construir l'aplicació. Consulteu el LLEGIUME del samplle per les instruccions.

NOTA El CMake file proveït del sample ja passa les banderes -g -O0.


  • Opció 2. Per compilar el fitxer array-transform.cpp sampl'aplicació sense CMake file, emet les ordres següents:

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

Si la compilació i l'enllaç es fan per separat, conserveu els senyaladors -g -O0 al pas de l'enllaç. El pas d'enllaç és quan icpx tradueix aquests indicadors per passar-los al compilador del dispositiu en temps d'execució. ExampLI:

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

  • Opció 3. Podeu utilitzar la compilació AOT per evitar temps de compilació JIT més llargs en temps d'execució. La compilació JIT pot trigar molt més per a nuclis grans sota el depurador. Per utilitzar el mode de compilació anticipada:

• Per a la depuració en una GPU:
Especifiqueu el dispositiu que utilitzareu per a l'execució del programa. Per example, -device dg2-g10 per a gràfics Intel® Data Center GPU Flex 140. Per obtenir la llista d'opcions admeses i més informació sobre la compilació d'AOT, consulteu el Guia i referència per a desenvolupadors del compilador Intel® oneAPI DPC++.
Per exampLI:

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

La compilació anticipada requereix el compilador fora de línia OpenCLTM (OC Compiler LOC). Per obtenir més informació, consulteu la secció "Instal·lar OpenCLTM Offline Compiler (OCLOC)" de l' Guia d'instal·lació.

• Per a la depuració d'una CPU:

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

Inicieu una sessió de depuració

Inicieu la sessió de depuració:

1. Inicieu Intel® Distribution per a GDB* de la següent manera:

gdb-oneapi array-transform

Hauríeu de veure el missatge (gdb).

2. Per assegurar-vos que el nucli es descarrega al dispositiu correcte, feu els passos següents. Quan executeu l'ordre d'execució des del indicador (gdb), passeu el fitxer CPU, gpu or accelerador argument:

  • Per a la depuració de la CPU:

executar la CPU

Example sortida:

[SYCL] S'utilitza el dispositiu: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] de [Intel(R) OpenCL]
  • Per a la depuració a la GPU:

executar gpu

Example sortida:

[SYCL] S'utilitza el dispositiu: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] d'[Intel(R) LevelZero]
  • Per a la depuració de l'emulador FPGA:

córrer l'accelerador

Example sortida:

[SYCL] S'utilitza el dispositiu: [Dispositiu d'emulació Intel(R) FPGA] de la [Plataforma d'emulació Intel(R) FPGA per al programari OpenCL(TM)]

NOTA Els paràmetres de CPU, GPU i accelerador són específics de l'aplicació Array Transform.


3. Per sortir de la distribució Intel® per a GDB*:

sortir

Per a la vostra comoditat, les ordres comunes de la distribució d'Intel® per a GDB* es proporcionen al Full de referència.

Per depurar la Transformació de matriu sampi obteniu més informació sobre Intel® Distribution for GDB*, passeu per escenaris bàsics de depuració mitjançant el Tutorial.

Més informació
Document Descripció
Tutorial: depuració amb Intel® Distribution per a GDB* Aquest document descriu els escenaris bàsics que cal seguir durant la depuració de SYCL* i OpenCL amb Intel® Distribution per a GDB*.
Guia d'usuari de Intel® Distribution for GDB* Aquest document descriu totes les tasques habituals que podeu completar amb Intel® Distribution for GDB* i proporciona els detalls tècnics necessaris.
Notes de la versió d'Intel® Distribution for GDB* Les notes contenen informació sobre capacitats clau, funcions noves i problemes coneguts d'Intel® Distribution for GDB*.
Pàgina de producte oneAPI Aquesta pàgina conté una breu introducció sobre els conjunts d'eines oneAPI i enllaços a recursos útils.
Full de referència Intel® Distribution for GDB* Aquest document d'una pàgina descriu breument els requisits previs i les ordres útils d'Intel® Distribution for GDB*.
Jacobi Sample Aquesta petita aplicació SYCL* té dues versions: amb errors i arreglades. Utilitza el sample per exercir la depuració d'aplicacions amb Intel® Distribution for GDB*.
Avisos i exempcions de responsabilitat

Les tecnologies Intel poden requerir l'activació de maquinari, programari o servei activat.

Cap producte o component pot ser absolutament segur.

Els vostres costos i resultats poden variar.

© Intel Corporation. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Altres noms i marques es poden reclamar com a propietat d'altres.

Aquest document no concedeix cap llicència (expressa o implícita, per preclusió o d'una altra manera) sobre cap dret de propietat intel·lectual.

Els productes descrits poden contenir defectes de disseny o errors coneguts com a errates que poden provocar que el producte es desviï de les especificacions publicades. Les errates caracteritzades actuals estan disponibles a petició.

Intel renuncia a totes les garanties explícites i implícites, incloses, sense limitació, les garanties implícites de comerciabilitat, adequació per a un propòsit particular i no infracció, així com qualsevol garantia derivada del curs de rendiment, el curs de la negociació o l'ús en el comerç.

OpenCL i el logotip d'OpenCL són marques comercials d'Apple Inc. utilitzades amb permís de Khronos.

Documents/Recursos

Intel Distribution for GDB a Linux OS Host [pdfGuia de l'usuari
Distribució per a GDB a Linux OS Host, GDB a Linux OS Host, Linux OS Host, OS Host, Host

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *