Bermula dengan Pengedaran Intel® untuk GDB* pada Hos OS Linux*

Mula menggunakan Intel® Distribution untuk GDB* untuk aplikasi penyahpepijatan. Ikut arahan di bawah untuk menyediakan penyahpepijat untuk nyahpepijat aplikasi dengan kernel yang dimuatkan ke peranti CPU dan GPU.

Pengedaran Intel® untuk GDB* tersedia sebagai sebahagian daripada Kit Alat Asas Intel® oneAPI. Untuk maklumat lanjut tentang kit alat oneAPI, lawati halaman produk.

Lawati Nota Keluaran halaman untuk maklumat tentang keupayaan utama, ciri baharu dan isu yang diketahui.

Anda boleh menggunakan SYCL* sampkod, Array Transform, untuk bermula dengan Pengedaran Intel® untuk GDB*. sample tidak menjana ralat dan hanya menggambarkan ciri penyahpepijat. Kod memproses elemen tatasusunan input bergantung pada sama ada ia genap atau ganjil dan menghasilkan tatasusunan output. Anda boleh menggunakan sample untuk nyahpepijat pada kedua-dua CPU atau GPU, menyatakan peranti yang dipilih melalui hujah baris arahan. Perhatikan walaupun penyahpepijatan GPU mungkin memerlukan dua sistem dan konfigurasi tambahan untuk penyahpepijatan jauh.

Prasyarat

Jika anda bertujuan untuk nyahpepijat pada GPU, pasang pemacu GPU terkini dan konfigurasikan sistem anda untuk menggunakannya. Merujuk kepada Panduan Pemasangan Intel® oneAPI Toolkits untuk Linux* OS. Ikut arahan Pasang Pemacu GPU Intel untuk memasang pemacu GPU yang sepadan dengan sistem anda.

Selain itu, anda boleh memasang sambungan untuk Visual Studio Code* untuk menyahpepijat GPU dengan Intel® Distribution untuk GDB*. Merujuk kepada Menggunakan Kod Visual Studio dengan Panduan Kit Alat Intel® oneAPI.

Sediakan Penyahpepijat GPU

Untuk menyediakan penyahpepijat GPU, anda mesti mempunyai akses root.


NOTA Semasa penyahpepijatan kernel, GPU dihentikan dan output video tidak tersedia pada mesin sasaran anda. Oleh sebab itu, anda tidak boleh nyahpepijat GPU daripada sistem sasaran jika kad GPU sistem juga digunakan untuk output grafik. Dalam kes ini, sambungkan ke mesin melalui ssh.


1. Jika anda berhasrat untuk nyahpepijat pada GPU, Kernel Linux yang menyokong penyahpepijatan GPU diperlukan.

a. Ikut arahan di Perisian Intel® untuk keupayaan GPU tujuan umum untuk memuat turun dan memasang pemacu yang diperlukan.
b. Dayakan sokongan nyahpepijat i915 dalam Kernel:

a. Buka terminal.
b. Buka grub file dalam /etc/default.
c. Dalam grub file, cari baris GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Masukkan teks berikut di antara petikan (“”):

i915.debug_eu=1


NOTA Secara lalai, pemacu GPU tidak membenarkan beban kerja berjalan pada GPU lebih lama daripada jumlah masa tertentu. Pemandu membunuh beban kerja yang berjalan lama dengan menetapkan semula GPU untuk mengelakkan hang. Mekanisme hangcheck pemacu dinyahdayakan jika aplikasi berjalan di bawah penyahpepijat. Jika anda bercadang untuk menjalankan beban kerja pengiraan yang panjang juga tanpa penyahpepijat dilampirkan, pertimbangkan untuk memohon GPU: Lumpuhkan Hangcheck dengan menambah

i915.enable_hangcheck=0

sama GRUB_CMDLINE_LINUX_DEFAULT baris.

c. Kemas kini GRUB untuk perubahan ini berkuat kuasa:

sudo update-grub

d. But semula.

2. Sediakan persekitaran CLI anda dengan mendapatkan skrip setvars yang terletak di akar pemasangan kit alat anda.

Linux (sudo):

sumber /opt/intel/oneapi/setvars.sh

Linux (pengguna):

sumber ~/intel/oneapi/setvars.sh

3. Persediaan persekitaran
Gunakan pembolehubah persekitaran berikut untuk mendayakan sokongan penyahpepijat untuk Intel® oneAPI Level Zero:

eksport ZET_ENABLE_PROGRAM_DEBUGGING=1
eksport IGC_EnableGTLocationDebugging=1

4. Pemeriksaan sistem
Apabila semuanya sudah sedia, sila jalankan arahan berikut untuk mengesahkan bahawa konfigurasi sistem boleh dipercayai:

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

Keluaran yang mungkin bagi sistem yang dikonfigurasikan dengan baik adalah seperti berikut:


Semak keputusan:
=================================================== ===============================
Nama semak: debugger_sys_check
Penerangan: Semakan ini mengesahkan sama ada persekitaran sedia untuk menggunakan gdb (Intel(R) Distribution untuk GDB*).
Status keputusan: LULUS
Penyahpepijat ditemui.
libipt ditemui.
libida ditemui.
nyahpepijat i915 didayakan.
Pembolehubah persekitaran betul. =================================================== =================================

1 SEMAK: 1 LULUS, 0 GAGAL, ​​0 AMARAN, 0 KESILAPAN

Keluaran konsol file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt output JSON file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

Susun Program dengan Maklumat Nyahpepijat

Anda boleh menggunakan sampprojek, Array Transform, untuk memulakan dengan cepat penyahpepijat aplikasi.

1. Untuk mendapatkan sample, pilih mana-mana cara berikut:

2. Navigasi ke src sampprojek:

cd array-transform/src

3. Susun aplikasi dengan mendayakan maklumat nyahpepijat (-g bendera) dan mematikan pengoptimuman (-O0 bendera).
Melumpuhkan pengoptimuman disyorkan untuk persekitaran nyahpepijat yang stabil dan tepat. Ini membantu mengelakkan kekeliruan yang disebabkan oleh perubahan pada kod selepas pengoptimuman pengkompil.


NOTA Anda masih boleh menyusun atur cara dengan pengoptimuman didayakan (-O2 bendera), yang boleh membantu jika anda bertujuan untuk penyahpepijatan pemasangan GPU.


Anda boleh menyusun atur cara dalam beberapa cara. Pilihan 1 dan 2 menggunakan kompilasi just-in-time (JIT), yang disyorkan untuk menyahpepijat sample. Pilihan 3 menggunakan kompilasi awal masa (AOT).

  • Pilihan 1. Anda boleh menggunakan CMake file untuk mengkonfigurasi dan membina aplikasi. Merujuk kepada README daripada sample bagi arahan.

NOTA CMake itu file disediakan dengan sample sudah melepasi bendera -g -O0.


  • Pilihan 2. Untuk menyusun array-transform.cpp sampaplikasi tanpa CMake file, keluarkan arahan berikut:

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

Jika penyusunan dan pemautan dilakukan secara berasingan, kekalkan bendera -g -O0 pada langkah pautan. Langkah pautan ialah apabila icpx menterjemahkan bendera ini untuk dihantar kepada pengkompil peranti semasa masa jalan. Cthample:

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

  • Pilihan 3. Anda boleh menggunakan kompilasi AOT untuk mengelakkan masa kompilasi JIT yang lebih lama pada masa jalan. Penyusunan JIT boleh mengambil masa yang lebih lama untuk kernel besar di bawah penyahpepijat. Untuk menggunakan mod penyusunan Ahead-of-Time:

• Untuk penyahpepijatan pada GPU:
Tentukan peranti yang akan anda gunakan untuk pelaksanaan program. Untuk example, -device dg2-g10 untuk Intel® Data Center GPU Flex 140 Graphics. Untuk senarai pilihan yang disokong dan maklumat lanjut tentang kompilasi AOT, rujuk kepada Panduan dan Rujukan Pembangun Pengkompil Intel® oneAPI DPC++.
Untuk example:

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

Penyusunan Ahead-of-Time memerlukan Penyusun Luar Talian OpenCLTM (OC Compiler LOC). Untuk maklumat lanjut, rujuk bahagian "Pasang OpenCLTM Offline Compiler (OCLOC)" Panduan Pemasangan.

• Untuk penyahpepijatan pada CPU:

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

Mulakan Sesi Nyahpepijat

Mulakan sesi nyahpepijat:

1. Mulakan Pengedaran Intel® untuk GDB* seperti berikut:

gdb-oneapi array-transform

Anda sepatutnya melihat gesaan (gdb).

2. Untuk memastikan bahawa kernel dimuatkan ke peranti yang betul, lakukan langkah berikut. Apabila anda melaksanakan arahan run dari gesaan (gdb), luluskan cpu, gpu or pemecut hujah:

  • Untuk penyahpepijatan pada CPU:

jalankan cpu

Exampkeluaran:

[SYCL] Menggunakan peranti: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] daripada [Intel(R) OpenCL]
  • Untuk penyahpepijatan pada GPU:

jalankan gpu

Exampkeluaran:

[SYCL] Menggunakan peranti: [Pusat Data Intel(R) GPU Flex Series 140 [0x56c1]] daripada [Intel(R) LevelZero]
  • Untuk penyahpepijatan pada emulator FPGA:

lari pemecut

Exampkeluaran:

[SYCL] Menggunakan peranti: [Intel(R) FPGA Emulation Device] daripada [Intel(R) FPGA Emulation Platform untuk perisian OpenCL(TM)]

NOTA Parameter cpu, gpu dan pemecut adalah khusus untuk aplikasi Transform Array.


3. Untuk berhenti daripada Intel® Distribution untuk GDB*:

berhenti

Untuk kemudahan anda, perintah biasa Intel® Distribution untuk GDB* disediakan dalam Lembaran Rujukan.

Untuk nyahpepijat Array Transform sampdan ketahui lebih lanjut tentang Intel® Distribution untuk GDB*, jalani senario penyahpepijatan asas menggunakan Tutorial.

Ketahui Lebih Lanjut
Dokumen Penerangan
Tutorial: Menyahpepijat dengan Intel® Distribution untuk GDB* Dokumen ini menerangkan senario asas yang perlu diikuti semasa menyahpepijat SYCL* dan OpenCL dengan Intel® Distribution untuk GDB*.
Intel® Distribution for GDB* Panduan Pengguna Dokumen ini menerangkan semua tugas biasa yang boleh anda selesaikan dengan Intel® Distribution untuk GDB* dan memberikan butiran teknikal yang diperlukan.
Nota Keluaran Intel® Distribution untuk GDB* Nota mengandungi maklumat tentang keupayaan utama, ciri baharu dan isu yang diketahui Intel® Distribution untuk GDB*.
Halaman Produk oneAPI Halaman ini mengandungi pengenalan ringkas tentang kit alat oneAPI dan pautan kepada sumber yang berguna.
Lembaran Rujukan Intel® Distribution untuk GDB* Dokumen satu halaman ini menerangkan secara ringkas Intel® Distribution untuk GDB* prasyarat dan arahan berguna.
Jacobi Sample Aplikasi SYCL* kecil ini mempunyai dua versi: bug dan tetap. Gunakan sample untuk melaksanakan penyahpepijatan aplikasi dengan Intel® Distribution untuk GDB*.
Notis dan Penafian

Teknologi Intel mungkin memerlukan pengaktifan perkakasan, perisian atau perkhidmatan yang diaktifkan.

Tiada produk atau komponen boleh benar-benar selamat.

Kos dan hasil anda mungkin berbeza-beza.

© Intel Corporation. Intel, logo Intel dan tanda Intel lain ialah tanda dagangan Intel Corporation atau anak syarikatnya. Nama dan jenama lain boleh dituntut sebagai hak milik orang lain.

Tiada lesen (ternyata atau tersirat, melalui estoppel atau sebaliknya) kepada mana-mana hak harta intelek diberikan oleh dokumen ini.

Produk yang diterangkan mungkin mengandungi kecacatan reka bentuk atau ralat yang dikenali sebagai errata yang boleh menyebabkan produk menyimpang daripada spesifikasi yang diterbitkan. Kesalahan berciri semasa tersedia atas permintaan.

Intel menafikan semua waranti nyata dan tersirat, termasuk tanpa had, waranti tersirat kebolehdagangan, kesesuaian untuk tujuan tertentu dan bukan pelanggaran, serta sebarang waranti yang timbul daripada perjalanan prestasi, perjalanan urusan atau penggunaan dalam perdagangan.

OpenCL dan logo OpenCL ialah tanda dagangan Apple Inc. yang digunakan dengan kebenaran Khronos.

Dokumen / Sumber

intel Distribution untuk GDB pada Hos OS Linux [pdf] Panduan Pengguna
Pengedaran untuk GDB pada Hos OS Linux, Hos OS Linux GDB, Hos OS Linux, Hos OS, Hos

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *