Започнете со Intel® Distribution за GDB* на Linux* OS Host

Започнете со користење на Intel® Distribution за GDB* за дебагирање апликации. Следете ги упатствата подолу за да го поставите дебагерот за отстранување грешки на апликациите со кернели исфрлени на уредите на процесорот и графичкиот процесор.

Intel® Distribution за GDB* е достапна како дел од Intel® oneAPI Base Toolkit. За повеќе информации за пакетите алатки на oneAPI, посетете ја страница на производот.

Посетете го Белешки за издавање страница за информации за клучните способности, нови функции и познати проблеми.

Можете да користите SYCL* sampле код, Array Transform, за да започнете со дистрибуцијата Intel® за GDB*. На сample не генерира грешки и едноставно ги илустрира карактеристиките на дебагерот. Кодот обработува елементи од влезната низа во зависност од тоа дали се парни или непарни и произведува излезна низа. Можете да ги користите sampза да се дебагира и на процесорот и на графичкиот процесор, специфицирајќи го избраниот уред преку аргумент на командната линија. Имајте предвид дека дебагирањето на графичкиот процесор може да бара два системи и дополнителна конфигурација за далечинско отстранување грешки.

Предуслови

Ако сакате да дебагирате на графичкиот процесор, инсталирајте ги најновите двигатели на графичкиот процесор и конфигурирајте го вашиот систем да ги користи. Видете на Упатство за инсталација на Intel® oneAPI Toolkits за Linux* OS. Следете ги инструкциите Инсталирајте ги двигателите за графичкиот процесор Intel да инсталирате драјвери за графичкиот процесор што одговараат на вашиот систем.

Дополнително, можете да инсталирате екстензија за Visual Studio Code* за дебагирање на графичкиот процесор со Intel® Distribution за GDB*. Видете на Користење на кодот на Visual Studio со Водич за алатки на Intel® oneAPI.

Поставете го дебагерот на графичкиот процесор

За да го поставите дебагерот на графичкиот процесор, мора да имате root пристап.


ЗАБЕЛЕШКА За време на дебагирање на јадрото, графичкиот процесор е запрен и видео излезот е недостапен на вашата целна машина. Поради ова, не можете да го дебагирате графичкиот процесор од целниот систем ако картичката на графичкиот процесор на системот се користи и за графички излез. Во овој случај, поврзете се со машината преку ssh.


1. Ако сакате да дебагирате на графичкиот процесор, потребен е кернел на Linux што поддржува дебагирање на графичкиот процесор.

a. Следете ги инструкциите на Софтвер Intel® за GPU можности за општа намена да ги преземете и инсталирате потребните драјвери.
b. Овозможете поддршка за отстранување грешки на i915 во Кернел:

a. Отворете терминал.
b. Отворете го ѓубрето file во /etc/default.
c. Во ѓубрето file, најдете ја линијата GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Внесете го следниов текст помеѓу наводниците („“):

i915.debug_eu=1


ЗАБЕЛЕШКА Стандардно, двигателот на графичкиот процесор не дозволува работните оптоварувања да работат на графичкиот процесор подолго од одредено време. Возачот ги уништува таквите долготрајни работни оптоварувања со ресетирање на графичкиот процесор за да спречи виси. Механизмот за проверување на драјверот е оневозможен ако апликацијата работи под дебагерот. Ако планирате да извршувате долги пресметувачки оптоварувања, исто така, без прикачен дебагер, размислете да аплицирате GPU: Оневозможи Hangcheck со додавање

i915.enable_hangcheck=0

на истиот Линија GRUB_CMDLINE_LINUX_DEFAULT.

c. Ажурирајте го GRUB за овие промени да стапат на сила:

sudo ажурирање-grub

d. Рестартирај.

2. Поставете ја вашата CLI околина со набавка на скриптата setvars која се наоѓа во коренот на инсталацијата на вашиот пакет со алатки.

Линукс (судо):

извор /opt/intel/oneapi/setvars.sh

Linux (корисник):

извор ~/intel/oneapi/setvars.sh

3. Поставување околина
Користете ги следните променливи на околината за да овозможите поддршка за дебагер за Intel® oneAPI Ниво нулта:

извезете ZET_ENABLE_PROGRAM_DEBUGGING=1
извезете IGC_EnableGTLocationDebugging=1

4. Проверка на системот
Кога сè е подготвено, извршете ја следнава команда за да потврдите дека конфигурацијата на системот е сигурна:

python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –филтер debugger_sys_check -force

Можен излез од добро конфигуриран систем е како што следува:


Проверки на резултатите:
=================================================== ================================
Проверете го името: debugger_sys_check
Опис: Оваа проверка потврдува дали околината е подготвена да користи gdb (Дистрибуција Intel(R) за GDB*).
Статус на резултат: ПОМИНЕТЕ
Пронајден е дебагер.
пронајден либипт.
пронајдена либига.
Отстранувањето грешки на i915 е овозможено.
Променливите на животната средина се точни. =================================================== =================================

1 ПРОВЕРКА: 1 ПОМИНУВАЊЕ, 0 неуспешни, 0 ПРЕДУПРЕДУВАЊА, 0 ГРЕШКИ

Излез од конзола file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON излез file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json…

Компајлирајте ја програмата со информации за дебагирање

Можете да ги користите sampпроектот, Array Transform, за брзо да започнете со дебагерот на апликациите.

1. За да се добие сampле, изберете кој било од следниве начини:

2. Одете до src на sampпроектот:

cd низа-трансформира/src

3. Компилирајте ја апликацијата со овозможување на информациите за отстранување грешки (знаме -g) и исклучување на оптимизациите (знаме -O0).
Се препорачува оневозможување на оптимизацијата за стабилна и точна околина за отстранување грешки. Ова помага да се избегне забуна предизвикана од промените на кодот по оптимизациите на компајлерот.


ЗАБЕЛЕШКА Сè уште можете да ја компајлирате програмата со овозможена оптимизација (ознака -O2), што може да биде корисно ако се стремите кон дебагирање на склопот на графичкиот процесор.


Можете да ја составите програмата на неколку начини. Опциите 1 и 2 користат компилација само на време (JIT), која се препорачува за дебагирање на sampле. Опцијата 3 користи предвремена компилација (AOT).

  • Опција 1. Можете да го користите CMake file да ја конфигурирате и изградите апликацијата. Видете на ПРОЧИТАЈ на сampле за инструкциите.

ЗАБЕЛЕШКА CMake file обезбедени со сample веќе ги поминува знаменцата -g -O0.


  • Опција 2. Да се ​​компајлира низата-transform.cpp sampле апликација без CMake file, издадете ги следните команди:

icpx -fsycl -g -O0 низа-transform.cpp -o низа-трансформација

Ако компилацијата и поврзувањето се прават одделно, задржете ги знаменцата -g -O0 на чекорот за поврзување. Чекорот на врската е кога icpx ги преведува овие знаменца за да бидат предадени на компајлерот на уредот за време на извршувањето. Прampле:

icpx -fsycl -g -O0 -c низа-трансформира.cpp
icpx -fsycl -g -O0 низа-трансформација.o -o низа-трансформација

  • Опција 3. Можете да користите AOT компилација за да избегнете подолго време на компилација на JIT при извршување. Компилацијата JIT може да потрае значително подолго за големи кернели под дебагерот. За да го користите режимот за компилација однапред:

• За дебагирање на графичкиот процесор:
Наведете го уредот што ќе го користите за извршување на програмата. За прample, -уред dg2-g10 за Intel® Data Center GPU Flex 140 Graphics. За списокот на поддржани опции и повеќе информации за компилацијата на AOT, погледнете во Водич и референца за програмери на компајлерот на Intel® oneAPI DPC++.
За прampле:

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

За предвремената компилација е потребен OpenCLTM Offline Compiler (OC Compiler LOC). За повеќе информации, погледнете го делот „Инсталирај OpenCLTM Offline Compiler (OCLOC)“ од Водич за инсталација.

• За дебагирање на процесорот:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o низа-transform

Започнете сесија за отстранување грешки

Започнете ја сесијата за отстранување грешки:

1. Започнете го Intel® Distribution за GDB* на следниов начин:

gdb-oneapi низа-трансформира

Треба да го видите промптот (gdb).

2. За да бидете сигурни дека кернелот е симнат на вистинскиот уред, направете ги следните чекори. Кога ќе ја извршите командата за извршување од промптот (gdb), поминете го процесорот, gpu or акцелератор аргумент:

  • За дебагирање на процесорот:

стартувај процесор

Exampна излез:

[SYCL] Користење на уред: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] од [Intel(R) OpenCL]
  • За дебагирање на графичкиот процесор:

стартувај gpu

Exampна излез:

[SYCL] Користење на уред: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] од [Intel(R) LevelZero]
  • За дебагирање на FPGA-емулаторот:

работи педалот за гас

Exampна излез:

[SYCL] Користење на уред: [Intel(R) FPGA Emulation Device] од [Intel(R) FPGA Emulation Platform for OpenCL(TM) софтвер]

ЗАБЕЛЕШКА Параметрите на процесорот, gpu и акцелератор се специфични за апликацијата Array Transform.


3. За да излезете од Intel® Distribution за GDB*:

откажете се

За ваша погодност, вообичаените команди на Intel® Distribution for GDB* се обезбедени во Референтен лист.

За дебагирање на Array Transform sampи дознајте повеќе за Intel® Distribution за GDB*, прошетајте низ основните сценарија за дебагирање користејќи го Упатство.

Дознајте повеќе
Документ Опис
Упатство: Дебагирање со Intel® Distribution за GDB* Овој документ ги опишува основните сценарија што треба да се следат при дебагирање на SYCL* и OpenCL со Intel® Distribution за GDB*.
Упатство за корисникот Intel® Distribution for GDB* Овој документ ги опишува сите вообичаени задачи што можете да ги завршите со Intel® Distribution за GDB* и ги дава потребните технички детали.
Интел® дистрибуција за белешки за издавање GDB* Белешките содржат информации за клучните способности, новите функции и познатите проблеми на Intel® Distribution за GDB*.
Страна со производ на oneAPI Оваа страница содржи краток вовед за алатките на oneAPI и врски до корисни ресурси.
Интел® Дистрибуција за GDB* Референтен лист Овој документ на една страница накратко ги опишува Intel® Distribution за GDB* предуслови и корисни команди.
Џејкоби Сample Оваа мала апликација SYCL* има две верзии: со бубачка и поправена. Користете го sampда вежбате дебагирање на апликации со Intel® Distribution за GDB*.
Известувања и одрекувања

Технологиите на Интел може да бараат активиран хардвер, софтвер или услуга за активирање.

Ниту еден производ или компонента не може да биде апсолутно безбеден.

Вашите трошоци и резултати може да варираат.

© Интел корпорација. Intel, логото на Intel и другите ознаки на Intel се заштитни знаци на Intel Corporation или нејзините подружници. Други имиња и брендови може да се бараат како сопственост на други.

Ниту една лиценца (експресно или имплицирана, со estoppel или на друг начин) за какви било права на интелектуална сопственост не е дадена со овој документ.

Опишаните производи може да содржат дефекти во дизајнот или грешки познати како неправилности што може да предизвикаат производот да отстапи од објавените спецификации. Тековните карактеризирани грешки се достапни на барање.

Интел ги отфрла сите изречни и имплицитни гаранции, вклучително и без ограничување, имплицитните гаранции за прометливост, соодветност за одредена цел и непрекршување, како и каква било гаранција што произлегува од текот на извршувањето, текот на работењето или употребата во трговијата.

OpenCL и логото OpenCL се заштитни знаци на Apple Inc. кои се користат со дозвола од Khronos.

Документи / ресурси

Интел Дистрибуција за GDB на домаќин на Linux OS [pdf] Упатство за корисникот
Дистрибуција за GDB на Linux OS Host, GDB на Linux OS Host, Linux OS Host, OS Host, Host

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *