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

Започнете да използвате Intel® Distribution for GDB* за отстраняване на грешки в приложения. Следвайте инструкциите по-долу, за да настроите дебъгера за отстраняване на грешки в приложения с ядра, разтоварени на CPU и GPU устройства.

Intel® Distribution for GDB* се предлага като част от Intel® oneAPI Base Toolkit. За повече информация относно комплектите инструменти за oneAPI посетете продуктова страница.

Посетете Бележки по изданието страница за информация относно ключови възможности, нови функции и известни проблеми.

Можете да използвате SYCL* sample code, Array Transform, за да започнете с Intel® Distribution for GDB*. Сample не генерира грешки и просто илюстрира функциите на дебъгера. Кодът обработва елементи от входния масив в зависимост от това дали са четни или нечетни и създава изходен масив. Можете да използвате sample за отстраняване на грешки както на CPU, така и на GPU, указвайки избраното устройство чрез аргумент от командния ред. Имайте предвид обаче, че GPU отстраняването на грешки може да изисква две системи и допълнителна конфигурация за отдалечено отстраняване на грешки.

Предпоставки

Ако се стремите да отстранявате грешки на GPU, инсталирайте най-новите драйвери за GPU и конфигурирайте системата си да ги използва. Обърнете се към Ръководство за инсталиране на Intel® oneAPI Toolkits за Linux* OS. Следвайте инструкциите Инсталирайте драйвери за графичен процесор Intel за да инсталирате GPU драйвери, съответстващи на вашата система.

Освен това можете да инсталирате разширение за Visual Studio Code* за отстраняване на грешки на GPU с Intel® Distribution for GDB*. Обърнете се към Използване на код на Visual Studio с Ръководство за комплекти инструменти Intel® oneAPI.

Настройте GPU Debugger

За да настроите GPU дебъгера, трябва да имате root достъп.


ЗАБЕЛЕЖКА По време на отстраняване на грешки в ядрото графичният процесор е спрян и видео изходът е недостъпен на вашата целева машина. Поради това не можете да дебъгвате GPU от целевата система, ако GPU картата на системата се използва и за графичен изход. В този случай се свържете с машината чрез ssh.


1. Ако се стремите да отстранявате грешки на GPU, е необходимо Linux ядро, което поддържа GPU отстраняване на грешки.

a. Следвайте инструкциите на Софтуер Intel® за възможности на GPU с общо предназначение за да изтеглите и инсталирате необходимите драйвери.
b. Активирайте поддръжката за отстраняване на грешки на i915 в ядрото:

a. Отворете терминал.
b. Отворете grub file в /etc/default.
c. В ларвата file, намерете реда GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Въведете следния текст между кавичките (“”):

i915.debug_eu=1


ЗАБЕЛЕЖКА По подразбиране драйверът на GPU не позволява работните натоварвания да се изпълняват на GPU по-дълго от определен период от време. Драйверът убива такива продължителни работни натоварвания, като нулира графичния процесор, за да предотврати увисвания. Механизмът за hangcheck на драйвера е деактивиран, ако приложението работи под програмата за отстраняване на грешки. Ако планирате да изпълнявате дълги изчислителни натоварвания и без прикачен дебъгер, помислете за кандидатстване GPU: Деактивирайте Hangcheck чрез добавяне

i915.enable_hangcheck=0

към същото Ред GRUB_CMDLINE_LINUX_DEFAULT.

c. Актуализирайте GRUB, за да влязат в сила тези промени:

sudo update-grub

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

2. Настройте вашата CLI среда, като извлечете скрипта setvars, намиращ се в основата на инсталацията на вашия инструментариум.

Linux (sudo):

източник /opt/intel/oneapi/setvars.sh

Linux (потребител):

източник ~/intel/oneapi/setvars.sh

3. Среда за настройка
Използвайте следните променливи на средата, за да активирате поддръжката на дебъгер за Intel® oneAPI Level Zero:

експортиране ZET_ENABLE_PROGRAM_DEBUGGING=1
експортиране IGC_EnableGTLocationDebugging=1

4. Проверка на системата
Когато всичко е готово, моля, изпълнете следната команда, за да потвърдите, че системната конфигурация е надеждна:

python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –filter 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 …

Компилирайте програмата с информация за отстраняване на грешки

Можете да използвате sample project, Array Transform, за да започнете бързо с програмата за отстраняване на грешки в приложението.

1. За да получите sample, изберете някой от следните начини:

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

cd масив-преобразуване/src

3. Компилирайте приложението, като активирате информацията за отстраняване на грешки (флаг -g) и изключите оптимизациите (флаг -O0).
Деактивирането на оптимизацията се препоръчва за стабилна и точна среда за отстраняване на грешки. Това помага да се избегне объркване, причинено от промени в кода след оптимизации на компилатора.


ЗАБЕЛЕЖКА Все още можете да компилирате програмата с активирана оптимизация (флаг -O2), което може да бъде полезно, ако се стремите към отстраняване на грешки в сглобката на GPU.


Можете да компилирате програмата по няколко начина. Опции 1 и 2 използват компилация точно навреме (JIT), която се препоръчва за отстраняване на грешки в sampле. Вариант 3 използва компилация преди време (AOT).

  • Вариант 1. Можете да използвате CMake file за конфигуриране и изграждане на приложението. Обърнете се към README на sample за инструкциите.

ЗАБЕЛЕЖКА CMake file предоставени със sample вече предава флаговете -g -O0.


  • Вариант 2. За да компилирате array-transform.cpp sample приложение без CMake file, издайте следните команди:

icpx -fsycl -g -O0 трансформация на масив.cpp -o трансформация на масив

Ако компилирането и свързването се извършват отделно, запазете флаговете -g -O0 в стъпката за свързване. Стъпката на свързване е, когато icpx преобразува тези флагове, за да бъдат предадени на компилатора на устройството по време на изпълнение. Прampле:

icpx -fsycl -g -O0 -c масив-трансформация.cpp
icpx -fsycl -g -O0 преобразуване на масив.o -o преобразуване на масив

  • Опция 3. Можете да използвате AOT компилация, за да избегнете по-дълги времена за JIT компилация по време на изпълнение. JIT компилацията може да отнеме значително повече време за големи ядра под дебъгера. За да използвате режима на компилация преди време:

• За отстраняване на грешки на GPU:
Посочете устройството, което ще използвате за изпълнение на програмата. Напримерample, -device 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 (OC компилатор LOC). За повече информация вижте раздела „Инсталиране на офлайн компилатор на OpenCLTM (OCLOC)“ на Ръководство за инсталиране.

• За отстраняване на грешки на CPU:

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

Стартирайте сесия за отстраняване на грешки

Стартирайте сесията за отстраняване на грешки:

1. Стартирайте Intel® Distribution за GDB*, както следва:

gdb-oneapi преобразуване на масив

Трябва да видите подканата (gdb).

2. За да се уверите, че ядрото е разтоварено на правилното устройство, направете следните стъпки. Когато изпълните командата за изпълнение от подканата (gdb), подайте процесор, gpu or ускорител аргумент:

  • За отстраняване на грешки на процесора:

стартирайте процесора

Example изход:

[SYCL] Използване на устройство: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] от [Intel(R) OpenCL]
  • За отстраняване на грешки на GPU:

стартирайте gpu

Example изход:

[SYCL] Използване на устройство: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] от [Intel(R) LevelZero]
  • За отстраняване на грешки в емулатора на FPGA:

ускорител на бягане

Example изход:

[SYCL] Използване на устройство: [Intel(R) FPGA Emulation Device] от [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]

ЗАБЕЛЕЖКА Параметрите на CPU, GPU и ускорителя са специфични за приложението Array Transform.


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

напуснете

За ваше удобство общи команди Intel® Distribution for GDB* са предоставени в Справочен лист.

За отстраняване на грешки в Array Transform sample и научете повече за Intel® Distribution for GDB*, прегледайте основните сценарии за отстраняване на грешки, като използвате Урок.

Научете повече
Документ Описание
Урок: Отстраняване на грешки с Intel® Distribution за GDB* Този документ описва основните сценарии, които да следвате при отстраняване на грешки в SYCL* и OpenCL с Intel® Distribution for GDB*.
Intel® Distribution for GDB* Ръководство за потребителя Този документ описва всички общи задачи, които можете да изпълнявате с Intel® Distribution for GDB* и предоставя необходимите технически подробности.
Intel® Distribution for GDB* Бележки по изданието Бележките съдържат информация за ключови възможности, нови функции и известни проблеми на Intel® Distribution for GDB*.
продуктова страница oneAPI Тази страница съдържа кратко представяне на инструментариума oneAPI и връзки към полезни ресурси.
Intel® Distribution for GDB* Референтен лист Този документ от една страница описва накратко предпоставките и полезните команди за Intel® Distribution for GDB*.
Якоби Сample Това малко приложение SYCL* има две версии: с грешки и с коригирани. Използвайте sample за упражняване на отстраняване на грешки в приложения с Intel® Distribution за GDB*.
Забележки и отказ от отговорност

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

Никой продукт или компонент не може да бъде абсолютно сигурен.

Вашите разходи и резултати могат да варират.

© Intel Corporation. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Други имена и марки могат да бъдат заявени като собственост на други.

Този документ не предоставя никакъв лиценз (изричен или подразбиращ се, чрез estoppel или по друг начин) за права върху интелектуална собственост.

Описаните продукти може да съдържат конструктивни дефекти или грешки, известни като errata, които могат да доведат до отклонение на продукта от публикуваните спецификации. Текущите характеризирани грешки са налични при поискване.

Intel отхвърля всички изрични и подразбиращи се гаранции, включително, без ограничение, подразбиращите се гаранции за продаваемост, пригодност за определена цел и ненарушение, както и всякакви гаранции, произтичащи от курса на изпълнение, курса на работа или употребата в търговията.

OpenCL и логото на OpenCL са търговски марки на Apple Inc., използвани с разрешение от Khronos.

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

Разпространение на intel за GDB на Linux OS хост [pdf] Ръководство за потребителя
Разпространение за GDB на Linux OS хост, GDB на Linux OS хост, Linux OS хост, OS хост, хост

Референции

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

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *