Rozpocznij z dystrybucją Intel® dla GDB* na hoście z systemem operacyjnym Linux*

Zacznij używać Intel® Distribution for GDB* do debugowania aplikacji. Postępuj zgodnie z poniższymi instrukcjami, aby skonfigurować debuger do debugowania aplikacji z jądrami przeniesionymi do urządzeń CPU i GPU.

Dystrybucja Intel® dla GDB* jest dostępna jako część podstawowego zestawu narzędzi Intel® oneAPI. Aby uzyskać więcej informacji na temat zestawów narzędzi oneAPI, odwiedź stronę strona produktu.

Odwiedź Informacje o wydaniu strona zawiera informacje o kluczowych możliwościach, nowych funkcjach i znanych problemach.

Możesz użyć SYCL* sampkod pliku, Array Transform, aby rozpocząć korzystanie z Intel® Distribution for GDB*. sampplik nie generuje błędów i po prostu ilustruje funkcje debuggera. Kod przetwarza elementy tablicy wejściowej w zależności od tego, czy są one parzyste, czy nieparzyste, i tworzy tablicę wyjściową. Możesz użyć sampplik do debugowania zarówno na CPU, jak i GPU, określając wybrane urządzenie za pomocą argumentu wiersza poleceń. Należy jednak pamiętać, że debugowanie GPU może wymagać dwóch systemów i dodatkowej konfiguracji do zdalnego debugowania.

Wymagania wstępne

Jeśli zamierzasz debugować GPU, zainstaluj najnowsze sterowniki GPU i skonfiguruj swój system, aby ich używał. Patrz Podręcznik instalacji zestawów narzędzi Intel® oneAPI dla systemu operacyjnego Linux*. Postępuj zgodnie z instrukcją Zainstaluj sterowniki procesora graficznego Intel aby zainstalować sterowniki GPU pasujące do twojego systemu.

Dodatkowo możesz zainstalować rozszerzenie dla Visual Studio Code* do debugowania GPU z Intel® Distribution for GDB*. Patrz Korzystanie z programu Visual Studio Code z przewodnikiem po zestawach narzędzi Intel® oneAPI.

Skonfiguruj debuger GPU

Aby skonfigurować debuger GPU, musisz mieć uprawnienia administratora.


NOTATKA Podczas debugowania jądra procesor GPU jest zatrzymywany, a wyjście wideo jest niedostępne na komputerze docelowym. Z tego powodu nie można debugować GPU z systemu docelowego, jeśli karta GPU systemu jest również używana do wyświetlania grafiki. W takim przypadku połącz się z maszyną przez ssh.


1. Jeśli zamierzasz debugować na GPU, potrzebne jest jądro Linuksa obsługujące debugowanie GPU.

a. Postępuj zgodnie z instrukcjami na Oprogramowanie Intel® do zastosowań GPU ogólnego przeznaczenia pobrać i zainstalować niezbędne sterowniki.
b. Włącz obsługę debugowania i915 w jądrze:

a. Otwórz terminal.
b. Otwórz gruba file w /etc/default.
c. W grubiu file, znajdź wiersz GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Wpisz następujący tekst między cudzysłowami („”):

i915.debug_eu=1


NOTATKA Domyślnie sterownik GPU nie zezwala na uruchamianie obciążeń na GPU dłużej niż określony czas. Sterownik zabija takie długotrwałe obciążenia, resetując GPU, aby zapobiec zawieszaniu się. Mechanizm kontroli zawieszenia sterownika jest wyłączony, jeśli aplikacja działa w trybie debuggera. Jeśli planujesz uruchamiać długie obciążenia obliczeniowe również bez dołączania debugera, rozważ zastosowanie GPU: Wyłącz Hangcheck dodając

i915.enable_hangcheck=0

do tego samego wiersz GRUB_CMDLINE_LINUX_DEFAULT.

c. Zaktualizuj GRUB, aby te zmiany odniosły skutek:

sudo aktualizacja-grub

d. Ponowne uruchomienie.

2. Skonfiguruj środowisko CLI, pozyskując skrypt setvars znajdujący się w katalogu głównym instalacji zestawu narzędzi.

Linux (sudo):

źródło /opt/intel/oneapi/setvars.sh

Linuks (użytkownik):

źródło ~/intel/oneapi/setvars.sh

3. Skonfiguruj środowisko
Użyj następujących zmiennych środowiskowych, aby włączyć obsługę debugera dla Intel® oneAPI Level Zero:

wyeksportuj ZET_ENABLE_PROGRAM_DEBUGGING=1
wyeksportuj IGC_EnableGTLocationDebugging=1

4. Sprawdzenie systemu
Kiedy wszystko będzie gotowe, uruchom następujące polecenie, aby potwierdzić, że konfiguracja systemu jest niezawodna:

python3 /ścieżka/do/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force

Możliwy wynik dobrze skonfigurowanego systemu jest następujący:


Wyniki kontroli:
================================================== ===============================
Sprawdź nazwę: debugger_sys_check
Opis: To sprawdzenie sprawdza, czy środowisko jest gotowe do używania gdb (Intel(R) Distribution for GDB*).
Status wyniku: ZALICZONY
Znaleziono debugger.
znaleziono libipt.
znaleziono libido.
Debugowanie i915 jest włączone.
Zmienne środowiskowe poprawne. ================================================== ================================

1 KONTROLA: 1 ZALICZONY, 0 NIEUDANY, 0 OSTRZEŻEŃ, 0 BŁĘDÓW

Wyjście konsoli file: /ścieżka/do/logs/diagnostics_filter_debugger_sys_check_force.txt Dane wyjściowe JSON file: /ścieżka/do/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

Skompiluj program z informacjami debugowania

Możesz użyć sample, Array Transform, aby szybko rozpocząć pracę z debugerem aplikacji.

1. Aby uzyskać sample, wybierz jeden z następujących sposobów:

2. Przejdź do src sampprojekt:

transformacja tablicy cd/src

3. Skompiluj aplikację, włączając informacje o debugowaniu (flaga -g) i wyłączając optymalizacje (flaga -O0).
Wyłączenie optymalizacji jest zalecane dla stabilnego i dokładnego środowiska debugowania. Pomaga to uniknąć nieporozumień spowodowanych zmianami w kodzie po optymalizacji kompilatora.


NOTATKA Nadal możesz skompilować program z włączoną optymalizacją (flaga -O2), co może być pomocne, jeśli dążysz do debugowania zestawu GPU.


Program można skompilować na kilka sposobów. Opcje 1 i 2 używają kompilacji just-in-time (JIT), która jest zalecana do debugowania pliku sample. Opcja 3 wykorzystuje kompilację z wyprzedzeniem (AOT).

  • Opcja 1. Możesz użyć CMake file skonfigurować i zbudować aplikację. Patrz PRZECZYTAJ MNIE z samppo instrukcje.

NOTATKA CMake file zaopatrzony w sample już przekazuje flagi -g -O0.


  • Opcja 2. Aby skompilować plik array-transform.cpp sampplik aplikacji bez CMake file, wydaj następujące polecenia:

icpx -fsycl -g -O0 transformacja tablicy.cpp -o transformacja tablicy

Jeśli kompilacja i łączenie odbywa się oddzielnie, zachowaj flagi -g -O0 w kroku łączenia. Krok łącza polega na tym, że icpx tłumaczy te flagi w celu przekazania ich do kompilatora urządzenia w czasie wykonywania. Byłyampna:

icpx -fsycl -g -O0 -c transformacja tablicy.cpp
icpx -fsycl -g -O0 transformacja tablicy.o -o transformacja tablicy

  • Opcja 3. Możesz użyć kompilacji AOT, aby uniknąć dłuższych czasów kompilacji JIT w czasie wykonywania. Kompilacja JIT może trwać znacznie dłużej w przypadku dużych jąder w debugerze. Aby użyć trybu kompilacji z wyprzedzeniem:

• Do debugowania na GPU:
Określ urządzenie, którego będziesz używać do wykonywania programu. na przykładample, -device dg2-g10 dla karty graficznej Intel® Data Center GPU Flex 140. Aby uzyskać listę obsługiwanych opcji i więcej informacji na temat kompilacji AOT, zapoznaj się z Podręcznik programisty kompilatora Intel® oneAPI DPC++ i informacje referencyjne.
Na przykładampna:

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

Kompilacja z wyprzedzeniem wymaga OpenCLTM Offline Compiler (OC Compiler LOC). Aby uzyskać więcej informacji, zapoznaj się z sekcją „Instalowanie OpenCLTM Offline Compiler (OCLOC)” w dokumencie Instrukcja instalacji.

• Do debugowania na CPU:

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

Rozpocznij sesję debugowania

Rozpocznij sesję debugowania:

1. Rozpocznij dystrybucję Intel® dla GDB* w następujący sposób:

transformacja tablicy gdb-oneapi

Powinieneś zobaczyć monit (gdb).

2. Aby upewnić się, że jądro zostało przeniesione na właściwe urządzenie, wykonaj następujące czynności. Kiedy wykonasz polecenie uruchomienia z wiersza polecenia (gdb), przekaż procesor, procesor graficzny or akcelerator argument:

  • Do debugowania na procesorze:

uruchomić procesor

Exampplik wyjściowy:

[SYCL] Korzystanie z urządzenia: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] z [Intel(R) OpenCL]
  • Do debugowania na GPU:

uruchom GPU

Exampplik wyjściowy:

[SYCL] Korzystanie z urządzenia: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] z [Intel(R) LevelZero]
  • Do debugowania na emulatorze FPGA:

uruchomić akcelerator

Exampplik wyjściowy:

[SYCL] Korzystanie z urządzenia: [Intel(R) FPGA Emulation Device] z [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]

NOTATKA Parametry procesora, procesora graficznego i akceleratora są specyficzne dla aplikacji Array Transform.


3. Aby zakończyć dystrybucję Intel® dla GDB*:

zrezygnować

Dla Twojej wygody wspólne polecenia Intel® Distribution for GDB* są dostępne w pliku Arkusz referencyjny.

Aby debugować Array Transform sample i dowiedz się więcej o Intel® Distribution for GDB*, zapoznaj się z podstawowymi scenariuszami debugowania przy użyciu Seminarium.

Dowiedz się więcej
Dokument Opis
Samouczek: debugowanie za pomocą Intel® Distribution dla GDB* W tym dokumencie opisano podstawowe scenariusze, które należy wykonać podczas debugowania SYCL* i OpenCL z Intel® Distribution for GDB*.
Podręcznik użytkownika Intel® Distribution for GDB* W tym dokumencie opisano wszystkie typowe zadania, które można wykonać za pomocą Intel® Distribution for GDB* i zawiera niezbędne szczegóły techniczne.
Informacje o wersji Intel® Distribution for GDB* Notatki zawierają informacje o kluczowych możliwościach, nowych funkcjach i znanych problemach z Intel® Distribution for GDB*.
Strona produktu oneAPI Ta strona zawiera krótkie wprowadzenie na temat zestawów narzędzi oneAPI oraz łącza do przydatnych zasobów.
Dystrybucja Intel® dla GDB* Arkusz referencyjny Ten jednostronicowy dokument krótko opisuje wymagania wstępne Intel® Distribution for GDB* i przydatne polecenia.
Jakub Sample Ta niewielka aplikacja SYCL* ma dwie wersje: z błędami i naprawiona. Użyj sample, aby ćwiczyć debugowanie aplikacji za pomocą Intel® Distribution for GDB*.
Uwagi i zastrzeżenia

Technologie Intel mogą wymagać aktywacji sprzętu, oprogramowania lub usługi.

Żaden produkt ani komponent nie może być całkowicie bezpieczny.

Twoje koszty i wyniki mogą się różnić.

© Intel Corporation. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Inne nazwy i marki mogą być przedmiotem praw osób trzecich.

Niniejszy dokument nie udziela żadnej licencji (wyraźnej lub dorozumianej, na zasadzie estoppel lub w inny sposób) na jakiekolwiek prawa własności intelektualnej.

Opisane produkty mogą zawierać wady konstrukcyjne lub błędy znane jako errata, które mogą powodować odchylenie produktu od opublikowanych specyfikacji. Aktualne scharakteryzowane errata są dostępne na żądanie.

Firma Intel zrzeka się wszelkich wyraźnych i dorozumianych gwarancji, w tym między innymi dorozumianych gwarancji przydatności handlowej, przydatności do określonego celu i nienaruszalności, jak również wszelkich gwarancji wynikających z przebiegu działania, przebiegu transakcji lub użycia w handlu.

OpenCL i logo OpenCL są znakami towarowymi firmy Apple Inc., używanymi za zgodą firmy Khronos.

Dokumenty / Zasoby

Dystrybucja intel dla GDB na hoście z systemem operacyjnym Linux [plik PDF] Instrukcja użytkownika
Dystrybucja dla GDB na Linux OS Host, GDB na Linux OS Host, Linux OS Host, OS Host, Host

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *