Linux* OS Host дээр GDB*-д зориулсан Intel® Distribution-ийг ашиглаж эхлээрэй

Дибаг хийхдээ Intel® Distribution for GDB*-г ашиглаж эхлээрэй. CPU болон GPU төхөөрөмжид ачаалагдсан цөм бүхий програмуудыг дибаг хийх дибаг тохируулагчийг тохируулахын тулд доорх зааврыг дагана уу.

Intel® Distribution for GDB* нь Intel® oneAPI Base Toolkit-ийн нэг хэсэг болгон ашиглах боломжтой. OneAPI хэрэгслийн талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл зочилно уу бүтээгдэхүүний хуудас.

-д зочилно уу Хувилбарын тэмдэглэл үндсэн боломжууд, шинэ боломжууд болон мэдэгдэж буй асуудлуудын талаарх мэдээллийг авах боломжтой.

Та SYCL* s ашиглаж болноampGDB*-д зориулсан Intel® Distribution-ийг эхлүүлэхийн тулд Array Transform кодыг ашиглана уу. Сample нь алдаа гаргадаггүй бөгөөд зүгээр л дибаг хийх функцуудыг харуулдаг. Код нь оролтын массивын элементүүдийг тэгш эсвэл сондгой эсэхээс хамаарч боловсруулж, гаралтын массив үүсгэдэг. Та s-г ашиглаж болноample командын мөрийн аргументаар сонгосон төхөөрөмжийг зааж өгч CPU эсвэл GPU аль алинд нь дибаг хийх. GPU дибаг хийхэд хоёр систем болон алсын зайнаас дибаг хийх нэмэлт тохиргоо шаардлагатай болохыг анхаарна уу.

Урьдчилсан нөхцөл

Хэрэв та GPU дээр дибаг хийхийг зорьж байгаа бол хамгийн сүүлийн үеийн GPU драйверуудыг суулгаж, системээ тэдгээрийг ашиглахаар тохируулаарай. -д хандана уу Linux* үйлдлийн системд зориулсан Intel® oneAPI Toolkits суулгах гарын авлага. Зааврыг дагана уу Intel GPU драйверуудыг суулгана уу өөрийн системд тохирсон GPU драйверуудыг суулгах.

Нэмж дурдахад, та GDB*-д зориулсан Intel® Distribution-тай GPU дибаг хийх Visual Studio Code* өргөтгөлийг суулгаж болно. -д хандана уу Visual Studio кодыг Intel® oneAPI хэрэгслийн гарын авлагатай ашиглах.

GPU дибаглагчийг тохируулна уу

GPU дибаглагчийг тохируулахын тулд та root хандалттай байх ёстой.


ЖИЧ Цөмд дибаг хийх явцад GPU зогссон бөгөөд таны зорилтот төхөөрөмж дээр видео гаралт боломжгүй байна. Үүнээс болж системийн GPU картыг график гаралтад ашигладаг бол зорилтот системээс GPU дибаг хийх боломжгүй. Энэ тохиолдолд ssh-ээр дамжуулан машинтай холбогдоно уу.


1. Хэрэв та GPU дээр дибаг хийхийг зорьж байгаа бол GPU дибаг хийхийг дэмждэг Линукс цөм хэрэгтэй.

a. дээрх зааврыг дагана уу Ерөнхий зориулалтын GPU чадварт зориулсан Intel® програм хангамж шаардлагатай драйверуудыг татаж аваад суулгах.
b. Цөмд i915 дибаг хийх дэмжлэгийг идэвхжүүлэх:

a. Терминал нээх.
b. Группийг нээ file /etc/default дотор.
c. Бүлэгт file, GRUB_CMDLINE_LINUX_DEFAULT=” мөрийг ол.
d. Хашилтын хооронд дараах текстийг оруулна уу (""):

i915.debug_eu=1


ЖИЧ Анхдагч байдлаар, GPU драйвер нь ажлын ачааллыг GPU дээр тодорхой хугацаанаас илүү удаан ажиллуулахыг зөвшөөрдөггүй. Драйвер нь гацахаас сэргийлж GPU-г дахин тохируулснаар ийм удаан үргэлжилсэн ажлын ачааллыг устгадаг. Хэрэв програм дибаг хийгчийн дор ажиллаж байгаа бол драйверын hangcheck механизм идэвхгүй болно. Хэрэв та дибаг хийлгүйгээр урт тооцооллын ачааллыг ажиллуулахаар төлөвлөж байгаа бол хүсэлт гаргах талаар бодож үзээрэй GPU: Hangcheck-ийг идэвхгүй болгох нэмэх замаар

i915.enable_hangcheck=0

мөн адил GRUB_CMDLINE_LINUX_DEFAULT мөр.

c. Эдгээр өөрчлөлтүүд хүчин төгөлдөр болохын тулд GRUB-г шинэчилнэ үү:

sudo update-grub

d. Дахин ачаална уу.

2. Хэрэгслийн суулгацын үндсэн хэсэгт байрлах setvars скриптийг хайж олох замаар CLI орчныг тохируулна уу.

Линукс (sudo):

эх сурвалж /opt/intel/oneapi/setvars.sh

Линукс (хэрэглэгч):

эх сурвалж ~/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 (GDB-д зориулсан Intel(R) Distribution*) ашиглахад бэлэн эсэхийг шалгадаг.
Үр дүнгийн төлөв: PASS
Дебаглагч олдсон.
libipt олдсон.
бэлгийн дур хүслээ оллоо.
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 …

Дибаг хийх мэдээлэл бүхий програмыг эмхэтгэ

Та s-г ашиглаж болноampПрограмын дибаглагчийг хурдан эхлүүлэхийн тулд Array Transform төсөл.

1. s авахын тулдample, дараах аргуудын аль нэгийг нь сонгоно уу:

2. s-ийн src руу очно ууample төсөл:

cd array-transform/src

3. Дибаг хийх мэдээллийг (-g туг) идэвхжүүлж, оновчлолыг унтрааж (-O0 туг) програмыг эмхэтгэ.
Тогтвортой, үнэн зөв дибаг хийх орчинд оновчлолыг идэвхгүй болгохыг зөвлөж байна. Энэ нь хөрвүүлэгчийн оновчлолын дараа кодын өөрчлөлтөөс үүдэлтэй будлианаас зайлсхийхэд тусална.


ЖИЧ Та оновчлолыг идэвхжүүлсэн (-O2 туг) програмыг хөрвүүлэх боломжтой хэвээр байгаа бөгөөд энэ нь GPU угсралтын дибаг хийхийг зорьсон тохиолдолд тустай байж болно.


Та програмыг хэд хэдэн аргаар эмхэтгэж болно. 1 ба 2-р сонголтууд нь цаг хугацаанд нь (JIT) эмхэтгэлийг ашигладаг бөгөөд үүнийг дибаг хийхийг зөвлөж байна.ample. Сонголт 3 нь цаг хугацааны өмнө (AOT) эмхэтгэлийг ашигладаг.

  • Сонголт 1. Та CMake ашиглаж болно file програмыг тохируулах, бүтээх. -д хандана уу README -ийн sampзааварчилгааг авна уу.

ЖИЧ CMake file s-ээр хангагдсанample аль хэдийн -g -O0 тугуудыг дамжуулдаг.


  • Сонголт 2. array-transform.cpp s-ийг эмхэтгэхampCMake-гүй програм file, дараах тушаалуудыг гарга.

icpx -fsycl -g -O0 array-transform.cpp -o массив-transform

Хэрэв эмхэтгэл болон холбоосыг тусад нь хийж байгаа бол холбоосын алхам дээр -g -O0 тэмдэглэгээг хадгална. Холболтын алхам нь icpx эдгээр тугуудыг хөрвүүлэн ажиллах үед төхөөрөмжийн хөрвүүлэгч рүү дамжуулах үе юм. Жишээ ньampле:

icpx -fsycl -g -O0 -c массив-transform.cpp
icpx -fsycl -g -O0 массив-transform.o -o массив-хувиргах

  • Сонголт 3. Ажиллах үед JIT эмхэтгэх хугацааг уртасгахгүйн тулд AOT эмхэтгэлийг ашиглаж болно. JIT эмхэтгэл нь дибаг хийгчийн дор байгаа том цөмүүдийн хувьд нэлээд урт хугацаа шаардагдана. Урьдчилан эмхэтгэх горимыг ашиглахын тулд:

• GPU дээр дибаг хийхэд:
Хөтөлбөрийг хэрэгжүүлэхэд ашиглах төхөөрөмжөө зааж өгнө үү. Жишээ ньample, -Intel® Data Center GPU Flex 2 графикт зориулсан dg10-g140 төхөөрөмж. Дэмжигдсэн сонголтуудын жагсаалт болон 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) суулгах" хэсгээс үзнэ үү Суулгах гарын авлага.

• CPU дээр дибаг хийхдээ:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o массив-transform

Дибаг хийх сессийг эхлүүлэх

Дибаг хийх сессийг эхлүүлэх:

1. GDB*-д зориулсан Intel® Distribution-ийг дараах байдлаар эхлүүлнэ үү:

gdb-oneapi массив хувиргах

Та (gdb) хүлээх мөрийг харах ёстой.

2. Цөмийг зөв төхөөрөмж рүү буулгасан эсэхийг шалгахын тулд дараах алхмуудыг хийгээрэй. (gdb) хүлээх мөрөөс ажиллуулах командыг гүйцэтгэхдээ дамжуулаарай cpu, gpu or хурдасгуур аргумент:

  • CPU дээр дибаг хийхдээ:

CPU ажиллуулах

Exampгаралт:

[SYCL] Төхөөрөмжийг ашиглаж байна: [Intel(R) OpenCL]-ийн Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz]
  • GPU дээр дибаг хийхдээ:

gpu ажиллуулах

Exampгаралт:

[SYCL] Төхөөрөмжийг ашиглаж байна: [Intel(R) LevelZero-аас Intel(R) Data Center GPU Flex Series 140 [0x56c1]]
  • FPGA эмулятор дээр дибаг хийхдээ:

хурдасгуур ажиллуулах

Exampгаралт:

[SYCL] Төхөөрөмжийг ашиглах: [Intel(R) FPGA эмуляцийн төхөөрөмж] [OpenCL(TM) програм хангамжийн Intel(R) FPGA эмуляцын платформ]

ЖИЧ CPU, gpu, хурдасгуурын параметрүүд нь Array Transform програмд ​​зориулагдсан.


3. GDB*-д зориулсан Intel® Distribution-аас гарахын тулд:

болих

Таны тав тухтай байдлыг хангах үүднээс GDB*-д зориулсан Intel® Distribution-ийн нийтлэг командуудыг эндээс өгсөн болно Лавлах хуудас.

Массив хувиргалтыг дибаг хийх sampGDB*-д зориулсан Intel® Distribution-ийн талаар илүү ихийг мэдэж, дибаг хийх үндсэн хувилбаруудыг ашиглан үзнэ үү. Заавар.

Илүү ихийг мэдэж аваарай
Баримт бичиг Тодорхойлолт
Заавар: GDB-д зориулсан Intel® Distribution ашиглан дибаг хийх* Энэхүү баримт бичиг нь GDB*-д зориулсан Intel® Distribution-тай SYCL* болон OpenCL-ийн дибаг хийх явцад дагаж мөрдөх үндсэн хувилбаруудыг тайлбарласан болно.
GDB*-д зориулсан Intel® Distribution* хэрэглэгчийн гарын авлага Энэхүү баримт бичиг нь GDB*-д зориулсан Intel® Distribution-ийн тусламжтайгаар гүйцэтгэж болох бүх нийтлэг ажлуудыг тайлбарлаж, шаардлагатай техникийн дэлгэрэнгүй мэдээллийг өгдөг.
GDB*-д зориулсан Intel® Distribution* хувилбарын тэмдэглэл Тэмдэглэлд GDB*-д зориулсан Intel® Distribution-ийн гол чадварууд, шинэ боломжууд болон мэдэгдэж буй асуудлуудын талаарх мэдээллийг агуулсан болно.
oneAPI бүтээгдэхүүний хуудас Энэ хуудсанд oneAPI хэрэгслийн товч танилцуулга, хэрэгтэй эх сурвалжуудын холбоосууд багтсан болно.
Intel® Distribution for GDB* лавлах хуудас Энэхүү нэг хуудас баримт бичиг нь Intel® Distribution for GDB*-ийн урьдчилсан нөхцөл, хэрэгтэй командуудыг товч тайлбарласан болно.
Жакоби Сample Энэхүү жижиг SYCL* програм нь алдаатай, зассан гэсэн хоёр хувилбартай. s-г ашиглана ууampGDB*-д зориулсан Intel® Distribution ашиглан програмын дибаг хийх.
Мэдэгдэл ба татгалзал

Intel технологи нь идэвхжүүлсэн техник хангамж, програм хангамж эсвэл үйлчилгээ идэвхжүүлэхийг шаардаж магадгүй юм.

Аливаа бүтээгдэхүүн, бүрэлдэхүүн хэсэг нь бүрэн аюулгүй байж чадахгүй.

Таны өртөг, үр дүн харилцан адилгүй байж болно.

© Intel корпораци. Intel, Intel лого болон бусад Intel тэмдэг нь Intel корпораци эсвэл түүний охин компаниудын худалдааны тэмдэг юм. Бусад нэр, брэндийг бусдын өмч гэж үзэж болно.

Энэхүү баримт бичигт оюуны өмчийн эрхийн аливаа лицензийг (илэрхий ба далд хэлбэрээр, эстоппел болон бусад хэлбэрээр) олгохгүй.

Тайлбарласан бүтээгдэхүүнүүд нь дизайны согог эсвэл алдаа гэж нэрлэгддэг алдаа агуулсан байж болох бөгөөд энэ нь бүтээгдэхүүнийг хэвлэгдсэн техникийн үзүүлэлтээс хазайхад хүргэж болзошгүй юм. Одоогийн тодорхойлогдсон алдааг хүсэлтээр авах боломжтой.

Intel нь худалдаалах, тодорхой зорилгод нийцэх, зөрчихгүй байх зэрэг шууд болон далд баталгааг хязгаарлахгүй, түүнчлэн гүйцэтгэлийн явц, арилжааны явц, худалдааны ашиглалтаас үүдэлтэй аливаа баталгааг үгүйсгэдэг.

OpenCL болон OpenCL лого нь Khronos-ын зөвшөөрлөөр ашиглагдаж буй Apple Inc.-ийн худалдааны тэмдэг юм.

Баримт бичиг / нөөц

Linux үйлдлийн системийн хост дээрх GDB-д зориулсан intel Distribution [pdf] Хэрэглэгчийн гарын авлага
Linux OS Host дээрх GDB, Linux OS Host дээрх GDB, Linux OS Host, OS Host, Host-д зориулсан түгээлт

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *