เริ่มต้นใช้งาน Intel® Distribution สำหรับ GDB* บน Linux* OS Host

เริ่มใช้ Intel® Distribution สำหรับ GDB* เพื่อดีบักแอปพลิเคชัน ปฏิบัติตามคำแนะนำด้านล่างเพื่อตั้งค่าดีบักเพื่อดีบักแอปพลิเคชันที่มีเคอร์เนลที่ถ่ายโอนไปยังอุปกรณ์ CPU และ GPU

Intel® Distribution for GDB* พร้อมใช้งานเป็นส่วนหนึ่งของ Intel® oneAPI Base Toolkit สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชุดเครื่องมือ oneAPI โปรดไปที่ หน้าผลิตภัณฑ์.

เยี่ยมชม หมายเหตุการเปิดตัว หน้าสำหรับข้อมูลเกี่ยวกับความสามารถหลัก คุณสมบัติใหม่ และปัญหาที่ทราบ

คุณสามารถใช้ SYCL* s ได้ampรหัส Array Transform เพื่อเริ่มต้นใช้งาน Intel® Distribution สำหรับ GDB*ample ไม่สร้างข้อผิดพลาดและเพียงแสดงคุณลักษณะของดีบักเกอร์ โค้ดจะประมวลผลองค์ประกอบของอาร์เรย์อินพุตโดยขึ้นอยู่กับว่าเป็นคู่หรือคี่ และสร้างอาร์เรย์เอาต์พุต คุณสามารถใช้ sample เพื่อดีบักทั้ง CPU หรือ GPU โดยระบุอุปกรณ์ที่เลือกผ่านอาร์กิวเมนต์บรรทัดคำสั่ง อย่างไรก็ตาม โปรดทราบว่าการดีบัก GPU อาจต้องใช้ระบบสองระบบและการกำหนดค่าเพิ่มเติมสำหรับการดีบักจากระยะไกล

ข้อกำหนดเบื้องต้น

หากคุณต้องการแก้ไขข้อบกพร่องบน GPU ให้ติดตั้งไดรเวอร์ GPU เวอร์ชันล่าสุดและกำหนดค่าระบบของคุณให้ใช้งานไดรเวอร์เหล่านี้ โปรดดูที่ คู่มือการติดตั้ง Intel® oneAPI Toolkits สำหรับระบบปฏิบัติการ Linux*. ทำตามคำสั่ง ติดตั้งไดรเวอร์ GPU ของ Intel เพื่อติดตั้งไดร์เวอร์ GPU ที่ตรงกับระบบของคุณ

นอกจากนี้ คุณสามารถติดตั้งส่วนขยายสำหรับ Visual Studio Code* เพื่อดีบัก GPU ด้วย Intel® Distribution สำหรับ GDB* โปรดดูที่ คู่มือการใช้ Visual Studio Code กับชุดเครื่องมือ Intel® oneAPI.

ตั้งค่า GPU Debugger

หากต้องการตั้งค่าดีบักเกอร์ GPU คุณต้องมีสิทธิ์การเข้าถึงระดับรูท


บันทึก ระหว่างการดีบักเคอร์เนล GPU จะหยุดทำงานและเอาต์พุตวิดีโอจะไม่พร้อมใช้งานบนเครื่องเป้าหมายของคุณ ด้วยเหตุนี้ คุณจึงไม่สามารถดีบัก GPU จากระบบเป้าหมายได้หากการ์ด GPU ของระบบถูกใช้สำหรับเอาต์พุตกราฟิกด้วย ในกรณีนี้ ให้เชื่อมต่อกับเครื่องผ่าน ssh


1. หากคุณตั้งเป้าที่จะดีบักบน GPU จำเป็นต้องใช้เคอร์เนล Linux ที่รองรับการดีบัก GPU

a. ติดตามคำแนะนำได้ที่ ซอฟต์แวร์ Intel® สำหรับความสามารถของ GPU วัตถุประสงค์ทั่วไป เพื่อดาวน์โหลดและติดตั้งไดรเวอร์ที่จำเป็น
b. เปิดใช้งานการรองรับการดีบัก i915 ในเคอร์เนล:

a. เปิดเทอร์มินัล
b. เปิดด้วง file ใน /etc/default
c. ในด้วง fileให้ค้นหาบรรทัด GRUB_CMDLINE_LINUX_DEFAULT=””
d. กรอกข้อความต่อไปนี้ระหว่างเครื่องหมายคำพูด (""):

i915.debug_eu=1


บันทึก ตามค่าเริ่มต้น ไดรเวอร์ GPU จะไม่อนุญาตให้เวิร์กโหลดทำงานบน GPU นานเกินกว่าระยะเวลาที่กำหนด ไดรเวอร์จะยุติเวิร์กโหลดที่ทำงานนานดังกล่าวโดยรีเซ็ต GPU เพื่อป้องกันไม่ให้เกิดอาการค้าง กลไกการตรวจสอบอาการค้างของไดรเวอร์จะถูกปิดใช้งานหากแอปพลิเคชันทำงานภายใต้ดีบักเกอร์ หากคุณวางแผนที่จะเรียกใช้เวิร์กโหลดการคำนวณระยะยาวโดยไม่แนบดีบักเกอร์ด้วย ให้พิจารณาใช้ GPU: ปิดการใช้งาน Hangcheck โดยการเพิ่ม

i915.enable_hangcheck=0

เหมือนเดิม บรรทัด GRUB_CMDLINE_LINUX_DEFAULT

c. อัปเดต GRUB เพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล:

sudo อัปเดต grub

d. รีบูต

2. ตั้งค่าสภาพแวดล้อม CLI ของคุณโดยใช้สคริปต์ setvars ที่อยู่ในรูทของการติดตั้งชุดเครื่องมือของคุณ

ลินุกซ์ (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 (Intel(R) Distribution สำหรับ GDB*) หรือไม่
สถานะผล : 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 …

คอมไพล์โปรแกรมด้วยข้อมูลการดีบัก

คุณสามารถใช้ sampโครงการ Array Transform ช่วยให้เริ่มต้นใช้งานดีบักเกอร์แอปพลิเคชันได้อย่างรวดเร็ว

1. เพื่อให้ได้ sampให้เลือกวิธีใดวิธีหนึ่งดังต่อไปนี้:

2. นำทางไปยัง src ของ sampโครงการเลอ:

ซีดีอาร์เรย์แปลง/src

3. คอมไพล์แอปพลิเคชันโดยเปิดใช้ข้อมูลการดีบัก (แฟล็ก -g) และปิดการเพิ่มประสิทธิภาพ (แฟล็ก -O0)
ขอแนะนำให้ปิดใช้งานการเพิ่มประสิทธิภาพเพื่อให้สภาพแวดล้อมการดีบักมีเสถียรภาพและแม่นยำ ซึ่งจะช่วยหลีกเลี่ยงความสับสนที่เกิดจากการเปลี่ยนแปลงโค้ดหลังจากเพิ่มประสิทธิภาพคอมไพเลอร์


บันทึก คุณยังสามารถคอมไพล์โปรแกรมด้วยการเปิดใช้งานการเพิ่มประสิทธิภาพ (แฟล็ก -O2) ซึ่งอาจเป็นประโยชน์หากคุณตั้งเป้าที่จะดีบักการประกอบ GPU


คุณสามารถคอมไพล์โปรแกรมได้หลายวิธี ตัวเลือกที่ 1 และ 2 ใช้การคอมไพล์แบบ Just-in-time (JIT) ซึ่งแนะนำให้ใช้เพื่อดีบักโปรแกรมampตัวเลือกที่ 3 ใช้การคอมไพล์แบบล่วงหน้า (AOT)

  • ตัวเลือกที่ 1 คุณสามารถใช้ CMake file เพื่อกำหนดค่าและสร้างแอปพลิเคชัน โปรดดูที่ อ่านฉัน ของสampขอบคุณสำหรับคำแนะนำ

บันทึก ซีเมค file จัดให้มีสample ส่งแฟล็ก -g -O0 แล้ว


  • ตัวเลือกที่ 2. การคอมไพล์ array-transform.cpp sampแอปพลิเคชันที่ไม่มี CMake file, ออกคำสั่งดังต่อไปนี้:

icpx -fsycl -g -O0 การแปลงอาร์เรย์.cpp -o การแปลงอาร์เรย์

หากทำการคอมไพล์และเชื่อมโยงแยกกัน ให้คงแฟล็ก -g -O0 ไว้ที่ขั้นตอนการเชื่อมโยง ขั้นตอนการเชื่อมโยงคือเมื่อ icpx แปลแฟล็กเหล่านี้เพื่อส่งไปยังคอมไพเลอร์อุปกรณ์ในระหว่างการรันไทม์ เช่นampเลอ:

icpx -fsycl -g -O0 -c อาร์เรย์-transform.cpp
icpx -fsycl -g -O0 การแปลงอาร์เรย์ o -o การแปลงอาร์เรย์

  • ตัวเลือกที่ 3 คุณสามารถใช้การคอมไพล์ AOT เพื่อหลีกเลี่ยงเวลาคอมไพล์ JIT ที่นานขึ้นในระหว่างการรันไทม์ การคอมไพล์ JIT อาจใช้เวลานานขึ้นอย่างมากสำหรับเคอร์เนลขนาดใหญ่ภายใต้ดีบักเกอร์ ในการใช้โหมดการคอมไพล์ Ahead-of-Time:

• สำหรับการแก้ไขข้อบกพร่องบน GPU:
ระบุอุปกรณ์ที่คุณจะใช้สำหรับการทำงานของโปรแกรม เช่นample, -device dg2-g10 สำหรับกราฟิก Intel® Data Center GPU Flex 140 สำหรับรายการตัวเลือกที่รองรับและข้อมูลเพิ่มเติมเกี่ยวกับการคอมไพล์ AOT โปรดดูที่ คู่มือและข้อมูลอ้างอิงสำหรับนักพัฒนาคอมไพเลอร์ Intel® oneAPI DPC++.
เช่นampเลอ:

icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs “-device dg2-g10” อาร์เรย์-transform.cpp -o อาร์เรย์ทรานส์ฟอร์ม

การคอมไพล์แบบ Ahead-of-Time ต้องใช้ OpenCLTM Offline Compiler (OC Compiler LOC) สำหรับข้อมูลเพิ่มเติม โปรดดูส่วน "ติดตั้ง OpenCLTM Offline Compiler (OCLOC)" ของ คู่มือการติดตั้ง.

• สำหรับการดีบักบน CPU:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 การแปลงอาร์เรย์.cpp -o การแปลงอาร์เรย์

เริ่มเซสชันการดีบัก

เริ่มเซสชันแก้ไขข้อบกพร่อง:

1. เริ่มต้น Intel® Distribution สำหรับ GDB* ดังต่อไปนี้:

การแปลงอาร์เรย์ gdb-oneapi

คุณควรเห็นพรอมต์ (gdb)

2. เพื่อให้แน่ใจว่าเคอร์เนลถูกออฟโหลดไปยังอุปกรณ์ที่ถูกต้อง ให้ทำตามขั้นตอนต่อไปนี้ เมื่อคุณดำเนินการคำสั่งรันจากพรอมต์ (gdb) ให้ส่ง ซีพียู, การ์ดจอ or เครื่องเร่งความเร็ว การโต้แย้ง:

  • สำหรับการดีบักบน CPU:

รันซีพียู

Exampเอาต์พุต:

[SYCL] การใช้อุปกรณ์: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] จาก [Intel(R) OpenCL]
  • สำหรับการดีบักบน GPU:

รันจีพียู

Exampเอาต์พุต:

[SYCL] การใช้อุปกรณ์: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] จาก [Intel(R) LevelZero]
  • สำหรับการดีบักบนโปรแกรมจำลอง FPGA:

วิ่งคันเร่ง

Exampเอาต์พุต:

[SYCL] การใช้อุปกรณ์: [อุปกรณ์จำลอง FPGA ของ Intel(R)] จาก [แพลตฟอร์มจำลอง FPGA ของ Intel(R) สำหรับซอฟต์แวร์ OpenCL(TM)]

บันทึก พารามิเตอร์ CPU, GPU และตัวเร่งความเร็วเป็นข้อมูลเฉพาะของแอปพลิเคชัน Array Transform


3. หากต้องการออกจาก Intel® Distribution สำหรับ GDB*:

ล้มเลิก

เพื่อความสะดวกของคุณ คำสั่ง Intel® Distribution สำหรับ GDB* ทั่วไปมีอยู่ใน แผ่นข้อมูลอ้างอิง.

การดีบักการแปลงอาร์เรย์ampและเรียนรู้เพิ่มเติมเกี่ยวกับ Intel® Distribution สำหรับ GDB* สาธิตสถานการณ์การดีบักพื้นฐานโดยใช้ บทช่วยสอน.

เรียนรู้เพิ่มเติม
เอกสาร คำอธิบาย
บทช่วยสอน: การดีบักด้วย Intel® Distribution สำหรับ GDB* เอกสารนี้จะอธิบายสถานการณ์พื้นฐานที่ต้องปฏิบัติตามขณะดีบัก SYCL* และ OpenCL ด้วย Intel® Distribution สำหรับ GDB*
คู่มือผู้ใช้ Intel® Distribution สำหรับ GDB* เอกสารนี้จะอธิบายงานทั่วไปทั้งหมดที่คุณสามารถทำได้ด้วย Intel® Distribution for GDB* และให้รายละเอียดทางเทคนิคที่จำเป็น
หมายเหตุการเผยแพร่ Intel® Distribution สำหรับ GDB* บันทึกประกอบด้วยข้อมูลเกี่ยวกับความสามารถหลัก คุณสมบัติใหม่ และปัญหาที่ทราบของ Intel® Distribution สำหรับ GDB*
หน้าผลิตภัณฑ์ oneAPI หน้านี้ประกอบด้วยคำแนะนำสั้นๆ เกี่ยวกับชุดเครื่องมือ oneAPI และลิงก์ไปยังแหล่งข้อมูลที่มีประโยชน์
แผ่นอ้างอิง Intel® Distribution สำหรับ GDB* เอกสารหนึ่งหน้านี้จะอธิบายข้อกำหนดเบื้องต้นและคำสั่งที่เป็นประโยชน์ของ Intel® Distribution สำหรับ GDB* โดยย่อ
จาโคบี้ เอสample แอปพลิเคชัน SYCL* ขนาดเล็กนี้มีสองเวอร์ชัน: มีข้อบกพร่องและได้รับการแก้ไขแล้ว ใช้ sampเพื่อฝึกฝนการดีบักแอพพลิเคชั่นด้วย Intel® Distribution สำหรับ GDB*
ประกาศและข้อจำกัดความรับผิดชอบ

เทคโนโลยีของ Intel อาจต้องเปิดใช้งานฮาร์ดแวร์ซอฟต์แวร์หรือการเปิดใช้งานบริการ

ไม่มีผลิตภัณฑ์หรือส่วนประกอบใดที่จะปลอดภัยได้อย่างแน่นอน

ค่าใช้จ่ายและผลลัพธ์ของคุณอาจแตกต่างกันไป

© อินเทล คอร์ปอเรชั่น Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ ชื่อและตราสินค้าอื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น

ไม่มีการอนุญาตสิทธิ์ใดๆ (โดยชัดแจ้งหรือโดยนัย โดยการห้ามปรามหรือวิธีอื่นใด) ต่อสิทธิในทรัพย์สินทางปัญญาใดๆ ที่ได้รับอนุญาตจากเอกสารนี้

ผลิตภัณฑ์ที่อธิบายอาจมีข้อบกพร่องด้านการออกแบบหรือข้อผิดพลาดที่เรียกว่าข้อผิดพลาดซึ่งอาจทำให้ผลิตภัณฑ์เบี่ยงเบนไปจากข้อมูลจำเพาะที่เผยแพร่ ข้อผิดพลาดที่ระบุในปัจจุบันสามารถขอได้

Intel ขอปฏิเสธการรับประกันโดยชัดแจ้งและโดยนัยทั้งหมด ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันโดยนัยของความสามารถในการซื้อขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ตลอดจนการรับประกันใดๆ ที่เกิดขึ้นจากการดำเนินการ แนวทางการซื้อขาย หรือการใช้งานในการค้าขาย

OpenCL และโลโก้ OpenCL เป็นเครื่องหมายการค้าของ Apple Inc. ซึ่งใช้งานโดยได้รับอนุญาตจาก Khronos

เอกสาร / แหล่งข้อมูล

การแจกจ่าย Intel สำหรับ GDB บนโฮสต์ระบบปฏิบัติการ Linux [พีดีเอฟ] คู่มือการใช้งาน
การกระจายสำหรับ GDB บนโฮสต์ระบบปฏิบัติการ Linux, GDB บนโฮสต์ระบบปฏิบัติการ Linux, โฮสต์ระบบปฏิบัติการ Linux, โฮสต์ระบบปฏิบัติการ, โฮสต์

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *