ເລີ່ມຕົ້ນດ້ວຍ Intel® Distribution ສໍາລັບ GDB* ໃນ Linux* OS Host
ເລີ່ມນຳໃຊ້ Intel® Distribution for GDB* ສຳລັບການດີບັກແອັບພລິເຄຊັນ. ປະຕິບັດຕາມຄໍາແນະນໍາຂ້າງລຸ່ມນີ້ເພື່ອຕັ້ງຄ່າ debugger ເພື່ອແກ້ໄຂບັນຫາຄໍາຮ້ອງສະຫມັກທີ່ມີ kernels offloaded ກັບ CPU ແລະອຸປະກອນ GPU.
Intel® Distribution for GDB* ແມ່ນມີຢູ່ໃນສ່ວນຂອງ Intel® oneAPI Base Toolkit. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບຊຸດເຄື່ອງມື oneAPI, ເຂົ້າໄປເບິ່ງທີ່ ຫນ້າຜະລິດຕະພັນ.
ຢ້ຽມຢາມ ບັນທຶກການປ່ອຍ ຫນ້າສໍາລັບຂໍ້ມູນກ່ຽວກັບຄວາມສາມາດທີ່ສໍາຄັນ, ລັກສະນະໃຫມ່, ແລະບັນຫາທີ່ຮູ້ຈັກ.
ທ່ານສາມາດນໍາໃຊ້ SYCL* sample code, Array Transform, ເພື່ອເລີ່ມຕົ້ນດ້ວຍ Intel® Distribution for GDB*. ສample ບໍ່ສ້າງຂໍ້ຜິດພາດ ແລະພຽງແຕ່ສະແດງໃຫ້ເຫັນເຖິງຄຸນສົມບັດດີບັກ. ລະຫັດປະມວນຜົນອົງປະກອບຂອງອາເຣ input ຂຶ້ນກັບວ່າພວກມັນເປັນຄູ່ ຫຼືຄີກ ແລະຜະລິດອາເຣຂາອອກ. ທ່ານສາມາດນໍາໃຊ້ sample ເພື່ອແກ້ບັນຫາໃນທັງ CPU ຫຼື GPU, ການລະບຸອຸປະກອນທີ່ເລືອກໂດຍຜ່ານການໂຕ້ຖຽງເສັ້ນຄໍາສັ່ງ. ໃຫ້ສັງເກດວ່າການດີບັກ GPU ອາດຈະຕ້ອງການສອງລະບົບແລະການຕັ້ງຄ່າເພີ່ມເຕີມສໍາລັບການດີບັກທາງໄກ.
ເງື່ອນໄຂເບື້ອງຕົ້ນ
ຖ້າທ່ານຕັ້ງໃຈທີ່ຈະດີບັກໃນ GPU, ຕິດຕັ້ງໄດເວີ GPU ຫຼ້າສຸດແລະຕັ້ງຄ່າລະບົບຂອງທ່ານເພື່ອໃຊ້ພວກມັນ. ອ້າງເຖິງ ຄູ່ມືການຕິດຕັ້ງ Intel® oneAPI Toolkits ສໍາລັບ Linux* OS. ປະຕິບັດຕາມຄໍາແນະນໍາ ຕິດຕັ້ງ Intel GPU Drivers ເພື່ອຕິດຕັ້ງໄດເວີ GPU ທີ່ກົງກັບລະບົບຂອງເຈົ້າ.
ນອກຈາກນັ້ນ, ທ່ານສາມາດຕິດຕັ້ງສ່ວນຂະຫຍາຍສໍາລັບ Visual Studio Code* ສໍາລັບການ debugging GPU ກັບ Intel® Distribution ສໍາລັບ GDB*. ອ້າງເຖິງ ການນໍາໃຊ້ Visual Studio Code ກັບ Intel® oneAPI Toolkits Guide.
ຕັ້ງຄ່າ GPU Debugger
ເພື່ອຕັ້ງຄ່າດີບັກ GPU, ທ່ານຕ້ອງມີການເຂົ້າເຖິງຮາກ.
ໝາຍເຫດ ໃນລະຫວ່າງການດີບັກ kernel, GPU ໄດ້ຖືກຢຸດເຊົາແລະຜົນຜະລິດວິດີໂອແມ່ນບໍ່ມີຢູ່ໃນເຄື່ອງເປົ້າຫມາຍຂອງທ່ານ. ເນື່ອງຈາກວ່ານີ້, ທ່ານບໍ່ສາມາດ debug GPU ຈາກລະບົບເປົ້າຫມາຍດັ່ງກ່າວຖ້າຫາກວ່າບັດ GPU ຂອງລະບົບຍັງຖືກນໍາໃຊ້ສໍາລັບການອອກກາຟິກ. ໃນກໍລະນີນີ້, ເຊື່ອມຕໍ່ກັບເຄື່ອງຜ່ານ ssh.
1. ຖ້າທ່ານຕັ້ງໃຈທີ່ຈະດີບັກໃນ GPU, Linux Kernel ທີ່ສະຫນັບສະຫນູນການດີບັກ GPU ແມ່ນຈໍາເປັນ.
a. ປະຕິບັດຕາມຄໍາແນະນໍາທີ່ ຊອບແວ Intel® ສໍາລັບຄວາມສາມາດ GPU ທົ່ວໄປ ເພື່ອດາວໂຫລດແລະຕິດຕັ້ງໄດເວີທີ່ຈໍາເປັນ.
b. ເປີດໃຊ້ການຮອງຮັບການດີບັກ i915 ໃນ Kernel:
a. ເປີດ terminal.
b. ເປີດ grub ໄດ້ file ໃນ /etc/default.
c. ໃນ grub ໄດ້ 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. ຕັ້ງຄ່າສະພາບແວດລ້ອມ 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) Distribution for GDB*).
ສະຖານະຜົນໄດ້ຮັບ: ຜ່ານ
ພົບດີບັກເກີ.
libipt ພົບ.
libiga ພົບ.
i915 debug ຖືກເປີດໃຊ້.
ຕົວແປສິ່ງແວດລ້ອມຖືກຕ້ອງ. ================================================================== ================================
1 ກວດສອບ: 1 ຜ່ານ, 0 ລົ້ມເຫລວ, 0 ຄໍາເຕືອນ, 0 ຂໍ້ຜິດພາດ
ຜົນຜະລິດ Console file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt ຜົນຜະລິດ JSON file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …
ລວບລວມໂຄງການທີ່ມີຂໍ້ມູນ Debug
ທ່ານສາມາດນໍາໃຊ້ sampໂຄງການ le, Array Transform, ເພື່ອເລີ່ມຕົ້ນດ້ວຍຕົວດີບັກແອັບພລິເຄຊັນຢ່າງໄວວາ.
1. ເພື່ອໃຫ້ໄດ້ຮັບ sample, ເລືອກວິທີໃດນຶ່ງຕໍ່ໄປນີ້:
- ໃຊ້ oneAPI CLI Samples browser ເພື່ອເລືອກ Array Transform ຈາກປະເພດການເລີ່ມຕົ້ນ.
- ດາວໂຫຼດຈາກ GitHub*.
2. ທ່ອງໄປຫາ src ຂອງ sampໂຄງການ le:
cd array-transform/src
3. ລວບລວມແອັບພລິເຄຊັນໂດຍການເປີດໃຊ້ຂໍ້ມູນດີບັກ (-g flag) ແລະປິດການເພີ່ມປະສິດທິພາບ (-O0 flag).
ການປິດການເພີ່ມປະສິດທິພາບແມ່ນແນະນໍາສໍາລັບສະພາບແວດລ້ອມດີບັກທີ່ຫມັ້ນຄົງແລະຖືກຕ້ອງ. ນີ້ຊ່ວຍຫຼີກເວັ້ນການສັບສົນທີ່ເກີດຈາກການປ່ຽນແປງລະຫັດຫຼັງຈາກການເພີ່ມປະສິດທິພາບຂອງ compiler.
ໝາຍເຫດ ທ່ານຍັງສາມາດລວບລວມໂປແກມດ້ວຍການເພີ່ມປະສິດທິພາບ (ທຸງ -O2), ເຊິ່ງສາມາດເປັນປະໂຫຍດຖ້າທ່ານຕັ້ງເປົ້າໃສ່ການດີບັກການປະກອບ GPU.
ທ່ານສາມາດລວບລວມໂຄງການໃນຫຼາຍວິທີ. ທາງເລືອກ 1 ແລະ 2 ໃຊ້ການລວບລວມພຽງແຕ່ໃນເວລາ (JIT), ເຊິ່ງແນະນໍາໃຫ້ແກ້ໄຂ sampເລ. ທາງເລືອກ 3 ໃຊ້ການລວບລວມຂໍ້ມູນລ່ວງໜ້າ (AOT).
- ທາງເລືອກ 1. ທ່ານສາມາດນໍາໃຊ້ CMake file ການຕັ້ງຄ່າແລະສ້າງແອັບພລິເຄຊັນ. ອ້າງເຖິງ README ຂອງ sample ສໍາລັບຄໍາແນະນໍາ.
ໝາຍເຫດ CMake file ສະຫນອງໃຫ້ກັບ sample ຜ່ານທຸງ -g -O0 ແລ້ວ.
- ທາງເລືອກ 2. ເພື່ອລວບລວມ array-transform.cpp sampຄໍາຮ້ອງສະຫມັກທີ່ບໍ່ມີ CMake file, ອອກຄໍາສັ່ງຕໍ່ໄປນີ້:
icpx -fsycl -g -O0 array-transform.cpp -o array-transform
ຖ້າການລວບລວມແລະການເຊື່ອມໂຍງແມ່ນເຮັດແຍກຕ່າງຫາກ, ຮັກສາທຸງ -g -O0 ໃນຂັ້ນຕອນການເຊື່ອມໂຍງ. ຂັ້ນຕອນການເຊື່ອມໂຍງແມ່ນເມື່ອ icpx ແປທຸງເຫຼົ່ານີ້ເພື່ອສົ່ງຜ່ານອຸປະກອນ compiler ໃນເວລາແລ່ນ. ຕົວຢ່າງample:
icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform
- ທາງເລືອກ 3. ທ່ານສາມາດນໍາໃຊ້ການລວບລວມ AOT ເພື່ອຫຼີກເວັ້ນການລວບລວມ JIT ທີ່ຍາວກວ່າໃນເວລາແລ່ນ. ການລວບລວມ JIT ສາມາດໃຊ້ເວລາດົນກວ່າສໍາລັບແກ່ນຂະຫນາດໃຫຍ່ພາຍໃຕ້ຕົວດີບັກ. ເພື່ອໃຊ້ໂໝດລວບລວມຂໍ້ມູນລ່ວງໜ້າ:
• ສຳລັບການດີບັກເທິງ GPU:
ລະບຸອຸປະກອນທີ່ເຈົ້າຈະໃຊ້ເພື່ອປະຕິບັດໂຄງການ. ຕົວຢ່າງample, -device dg2-g10 ສໍາລັບ Intel® Data Center GPU Flex 140 Graphics. ສໍາລັບບັນຊີລາຍຊື່ຂອງທາງເລືອກທີ່ສະຫນັບສະຫນູນແລະຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການລວບລວມ AOT, ເບິ່ງທີ່ ຄູ່ມືນັກພັດທະນາ Intel® oneAPI DPC++ Compiler ແລະເອກະສານອ້າງອີງ.
ຕົວຢ່າງample:
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 array-transform
ເລີ່ມເຊດຊັນດີບັກ
ເລີ່ມເຊດຊັນດີບັກ:
1. ເລີ່ມການແຈກຢາຍ Intel® ສໍາລັບ GDB* ດັ່ງຕໍ່ໄປນີ້:
gdb-oneapi array-transform
ທ່ານຄວນເຫັນການເຕືອນ (gdb).
2. ເພື່ອເຮັດໃຫ້ແນ່ໃຈວ່າ kernel ໄດ້ຖືກ offloaded ກັບອຸປະກອນທີ່ຖືກຕ້ອງ, ເຮັດຂັ້ນຕອນດັ່ງຕໍ່ໄປນີ້. ເມື່ອທ່ານປະຕິບັດຄໍາສັ່ງ run ຈາກ prompt (gdb), ຜ່ານ CPU, gpu or ເລັ່ງ ການໂຕ້ຖຽງ:
- ສໍາລັບການ debugging ໃນ CPU ໄດ້:
ແລ່ນ CPU
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]- ສໍາລັບການ debugging ໃນ FPGA-emulator:
ແລ່ນເລັ່ງ
Example ຜົນຜະລິດ:
[SYCL] ການນໍາໃຊ້ອຸປະກອນ: [Intel(R) FPGA Emulation Device] ຈາກ [Intel(R) FPGA Emulation Platform ສໍາລັບຊອບແວ OpenCL(TM)]ໝາຍເຫດ ຕົວກໍານົດການ cpu, gpu, ແລະ accelerator ແມ່ນສະເພາະກັບຄໍາຮ້ອງສະຫມັກ Array Transform.
3. ເພື່ອອອກຈາກ Intel® Distribution ສໍາລັບ GDB*:
ເຊົາ
ເພື່ອຄວາມສະດວກຂອງທ່ານ, ຄຳສັ່ງ Intel® Distribution ທົ່ວໄປສຳລັບ GDB* ແມ່ນມີຢູ່ໃນ ເອກະສານອ້າງອີງ.
ເພື່ອແກ້ໄຂບັນຫາ Array Transform sample ແລະຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບ Intel® Distribution for GDB*, ຍ່າງຜ່ານສະຖານະການແກ້ບັນຫາພື້ນຖານໂດຍໃຊ້ ບົດຮຽນ.
ສຶກສາເພີ່ມເຕີມ
ເອກະສານ | ລາຍລະອຽດ |
Tutorial: Debugging ກັບ Intel® Distribution ສໍາລັບ GDB* | ເອກະສານນີ້ອະທິບາຍສະຖານະການພື້ນຖານທີ່ຈະປະຕິບັດຕາມໃນຂະນະທີ່ແກ້ໄຂ SYCL* ແລະ OpenCL ກັບ Intel® Distribution ສໍາລັບ GDB*. |
Intel® Distribution ສໍາລັບ GDB* ຄູ່ມືຜູ້ໃຊ້ | ເອກະສານນີ້ອະທິບາຍທຸກວຽກງານທົ່ວໄປທີ່ທ່ານສາມາດເຮັດສໍາເລັດດ້ວຍ Intel® Distribution for GDB* ແລະໃຫ້ລາຍລະອຽດດ້ານວິຊາການທີ່ຈໍາເປັນ. |
Intel® Distribution ສໍາລັບ GDB* Release Notes | ບັນທຶກມີຂໍ້ມູນກ່ຽວກັບຄວາມສາມາດຫຼັກ, ຄຸນສົມບັດໃໝ່, ແລະບັນຫາທີ່ຮູ້ຈັກຂອງ Intel® Distribution for GDB*. |
ໜ້າຜະລິດຕະພັນ oneAPI | ໜ້ານີ້ມີການແນະນຳສັ້ນໆກ່ຽວກັບຊຸດເຄື່ອງມືຂອງ oneAPI ແລະການເຊື່ອມຕໍ່ກັບຊັບພະຍາກອນທີ່ເປັນປະໂຫຍດ. |
Intel® Distribution ສໍາລັບ GDB* Reference Sheet | ເອກະສານໜຶ່ງໜ້ານີ້ອະທິບາຍສັ້ນໆກ່ຽວກັບ Intel® Distribution ສໍາລັບ GDB* ແລະຄໍາສັ່ງທີ່ເປັນປະໂຫຍດ. |
Jacobi Sample | ແອັບພລິເຄຊັ່ນ SYCL* ຂະໜາດນ້ອຍນີ້ມີສອງລຸ້ນ: ບັກ ແລະ ແກ້ໄຂ. ໃຊ້ sampລອງໃຊ້ການດີບັກແອັບພລິເຄຊັນກັບ Intel® Distribution ສໍາລັບ GDB*. |
ແຈ້ງການ ແລະຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ
ເຕັກໂນໂລຢີຂອງ Intel ອາດຈະຮຽກຮ້ອງໃຫ້ມີການເປີດໃຊ້ຮາດແວ, ຊອບແວຫຼືການເປີດໃຊ້ບໍລິການ.
ບໍ່ມີຜະລິດຕະພັນຫຼືສ່ວນປະກອບສາມາດຮັບປະກັນຢ່າງແທ້ຈິງ.
ຄ່າໃຊ້ຈ່າຍແລະຜົນໄດ້ຮັບຂອງທ່ານອາດຈະແຕກຕ່າງກັນ.
© Intel Corporation. Intel, ໂລໂກ້ Intel, ແລະເຄື່ອງໝາຍ Intel ອື່ນໆແມ່ນເຄື່ອງໝາຍການຄ້າຂອງ Intel Corporation ຫຼືບໍລິສັດຍ່ອຍຂອງມັນ. ຊື່ ແລະຍີ່ຫໍ້ອື່ນໆອາດຈະຖືກອ້າງວ່າເປັນຊັບສິນຂອງຄົນອື່ນ.
ບໍ່ມີໃບອະນຸຍາດ (ສະແດງອອກຫຼືໂດຍຫຍໍ້, ໂດຍ estoppel ຫຼືອື່ນໆ) ຕໍ່ກັບສິດທິຊັບສິນທາງປັນຍາໃດໆທີ່ຖືກອະນຸຍາດໂດຍເອກະສານນີ້.
ຜະລິດຕະພັນທີ່ອະທິບາຍໄວ້ອາດມີຂໍ້ບົກພ່ອງໃນການອອກແບບ ຫຼືຄວາມຜິດພາດທີ່ເອີ້ນກັນວ່າ errata ເຊິ່ງອາດເຮັດໃຫ້ຜະລິດຕະພັນ deviate ຈາກຂໍ້ມູນສະເພາະທີ່ເຜີຍແຜ່. ຄວາມຜິດພາດທີ່ມີລັກສະນະໃນປະຈຸບັນແມ່ນມີໃຫ້ຕາມການຮ້ອງຂໍ.
Intel ປະຕິເສດການຮັບປະກັນທີ່ສະແດງອອກແລະໂດຍຫຍໍ້ທັງຫມົດ, ລວມທັງບໍ່ມີຂໍ້ຈໍາກັດ, ການຮັບປະກັນໂດຍທາງອ້ອມຂອງຄວາມສາມາດໃນການຄ້າ, ການສອດຄ່ອງສໍາລັບຈຸດປະສົງສະເພາະໃດຫນຶ່ງ, ແລະບໍ່ລະເມີດ, ເຊັ່ນດຽວກັນກັບການຮັບປະກັນໃດໆທີ່ເກີດຂື້ນຈາກການປະຕິບັດ, ແນ່ນອນ, ການຈັດການຫຼືການນໍາໃຊ້ໃນການຄ້າ.
OpenCL ແລະໂລໂກ້ OpenCL ແມ່ນເຄື່ອງໝາຍການຄ້າຂອງ Apple Inc. ທີ່ໃຊ້ໂດຍການອະນຸຍາດໂດຍ Khronos.
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
intel Distribution ສໍາລັບ GDB ໃນ Linux OS Host [pdf] ຄູ່ມືຜູ້ໃຊ້ ການແຈກຢາຍສໍາລັບ GDB ໃນ Linux OS Host, GDB ໃນ Linux OS Host, Linux OS Host, OS Host, Host |