เริ่มต้นใช้งาน 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ให้เลือกวิธีใดวิธีหนึ่งดังต่อไปนี้:
- ใช้ oneAPI CLI Sampเลสบราวเซอร์ เพื่อเลือกการแปลงอาร์เรย์จากหมวดหมู่การเริ่มต้นใช้งาน
- ดาวน์โหลดจาก GitHub*.
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, โฮสต์ระบบปฏิบัติการ, โฮสต์ |