Bắt đầu với Phân phối Intel® cho GDB* trên máy chủ chạy hệ điều hành Linux*

Bắt đầu sử dụng Bản phân phối Intel® cho GDB* để gỡ lỗi các ứng dụng. Thực hiện theo các hướng dẫn bên dưới để thiết lập trình gỡ lỗi nhằm gỡ lỗi các ứng dụng có nhân được giảm tải cho các thiết bị CPU và GPU.

Bản phân phối Intel® dành cho GDB* có sẵn như một phần của Bộ công cụ cơ sở Intel® oneAPI. Để biết thêm thông tin về bộ công cụ oneAPI, hãy truy cập trang sản phẩm.

Ghé thăm Ghi chú phát hành trang để biết thông tin về các chức năng chính, tính năng mới và sự cố đã biết.

Bạn có thể sử dụng SYCL* sampmã, Chuyển đổi mảng, để bắt đầu với Bản phân phối Intel® cho GDB*. các samptập tin không tạo ra lỗi và chỉ minh họa các tính năng của trình gỡ lỗi. Mã này xử lý các phần tử của mảng đầu vào tùy thuộc vào việc chúng là chẵn hay lẻ và tạo ra một mảng đầu ra. Bạn có thể sử dụng sample để gỡ lỗi trên cả CPU hoặc GPU, chỉ định thiết bị đã chọn thông qua đối số dòng lệnh. Xin lưu ý rằng việc gỡ lỗi GPU có thể yêu cầu hai hệ thống và cấu hình bổ sung để gỡ lỗi từ xa.

Điều kiện tiên quyết

Nếu bạn muốn gỡ lỗi trên GPU, hãy cài đặt trình điều khiển GPU mới nhất và định cấu hình hệ thống của bạn để sử dụng chúng. Tham khảo đến Hướng dẫn cài đặt bộ công cụ Intel® oneAPI dành cho hệ điều hành Linux*. Làm theo chỉ dẫn Cài đặt trình điều khiển GPU Intel để cài đặt trình điều khiển GPU phù hợp với hệ thống của bạn.

Ngoài ra, bạn có thể cài đặt tiện ích mở rộng cho Visual Studio Code* để gỡ lỗi GPU với Intel® Distribution cho GDB*. Tham khảo đến Sử dụng Visual Studio Code với Hướng dẫn bộ công cụ Intel® oneAPI.

Thiết lập trình gỡ lỗi GPU

Để thiết lập trình gỡ lỗi GPU, bạn phải có quyền truy cập root.


GHI CHÚ Trong quá trình gỡ lỗi kernel, GPU bị tạm dừng và đầu ra video không khả dụng trên máy mục tiêu của bạn. Do đó, bạn không thể gỡ lỗi GPU khỏi hệ thống đích nếu thẻ GPU của hệ thống cũng được sử dụng cho đầu ra đồ họa. Trong trường hợp này, hãy kết nối với máy thông qua ssh.


1. Nếu bạn muốn gỡ lỗi trên GPU, thì cần có Linux Kernel hỗ trợ gỡ lỗi GPU.

a. Làm theo hướng dẫn tại Phần mềm Intel® dành cho các khả năng của GPU đa năng để tải xuống và cài đặt các trình điều khiển cần thiết.
b. Bật hỗ trợ gỡ lỗi i915 trong Kernel:

a. Mở một thiết bị đầu cuối.
b. mở grub file trong /etc/default.
c. trong sâu bọ file, tìm dòng GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Nhập nội dung sau vào giữa dấu ngoặc kép (“”):

i915.debug_eu=1


GHI CHÚ Theo mặc định, trình điều khiển GPU không cho phép khối lượng công việc chạy trên GPU lâu hơn một khoảng thời gian nhất định. Trình điều khiển sẽ loại bỏ khối lượng công việc chạy trong thời gian dài như vậy bằng cách đặt lại GPU để tránh bị treo. Cơ chế kiểm tra treo của trình điều khiển bị tắt nếu ứng dụng đang chạy trong trình gỡ lỗi. Nếu bạn dự định chạy các khối lượng công việc điện toán dài mà không đính kèm trình gỡ lỗi, hãy cân nhắc áp dụng GPU: Vô hiệu hóa Hangcheck bằng cách thêm vào

i915.enable_hangcheck=0

cùng Dòng GRUB_CMDLINE_LINUX_DEFAULT.

c. Cập nhật GRUB để những thay đổi này có hiệu lực:

sudo cập nhật-grub

d. Khởi động lại.

2. Thiết lập môi trường CLI của bạn bằng cách tìm nguồn tập lệnh setvars nằm trong thư mục gốc của cài đặt bộ công cụ của bạn.

Linux (sudo):

nguồn /opt/intel/oneapi/setvars.sh

Linux (người dùng):

nguồn ~/intel/oneapi/setvars.sh

3. Thiết lập môi trường
Sử dụng các biến môi trường sau để bật hỗ trợ trình gỡ lỗi cho Intel® oneAPI Level Zero:

xuất ZET_ENABLE_PROGRAM_DEBUGGING=1
xuất IGC_EnableGTLocationDebugging=1

4. Kiểm tra hệ thống
Khi mọi thứ đã sẵn sàng, vui lòng chạy lệnh sau để xác nhận rằng cấu hình hệ thống là đáng tin cậy:

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

Một đầu ra có thể có của một hệ thống được cấu hình tốt như sau:


Kiểm tra kết quả:
====================================================== ==================================
Tên kiểm tra: debugger_sys_check
Mô tả: Kiểm tra này xác minh xem môi trường đã sẵn sàng để sử dụng gdb (Bản phân phối của Intel(R) cho GDB*).
Trạng thái kết quả: ĐẠT
Đã tìm thấy trình gỡ lỗi.
libipt được tìm thấy.
libiga được tìm thấy.
gỡ lỗi i915 được bật.
Các biến môi trường chính xác. ================================================================= ================================

1 KIỂM TRA: 1 ĐẠT, 0 KHÔNG ĐẠT, 0 CẢNH BÁO, 0 LỖI

Đầu ra bảng điều khiển file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt Đầu ra JSON file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

Biên dịch chương trình với thông tin gỡ lỗi

Bạn có thể sử dụng sampdự án, Biến đổi mảng, để nhanh chóng bắt đầu với trình gỡ lỗi ứng dụng.

1. Để có được sample, chọn bất kỳ cách nào sau đây:

2. Điều hướng đến src của sampdự án le:

cd mảng-biến đổi/src

3. Biên dịch ứng dụng bằng cách bật thông tin gỡ lỗi (cờ -g) và tắt tối ưu hóa (cờ -O0).
Bạn nên tắt tính năng tối ưu hóa để có môi trường gỡ lỗi chính xác và ổn định. Điều này giúp tránh nhầm lẫn do thay đổi mã sau khi tối ưu hóa trình biên dịch.


GHI CHÚ Bạn vẫn có thể biên dịch chương trình khi bật tính năng tối ưu hóa (cờ -O2), điều này có thể hữu ích nếu bạn muốn gỡ lỗi cụm GPU.


Bạn có thể biên dịch chương trình theo nhiều cách. Tùy chọn 1 và 2 sử dụng trình biên dịch đúng lúc (JIT), được khuyến nghị để gỡ lỗi sample. Tùy chọn 3 sử dụng biên dịch trước thời hạn (AOT).

  • Tùy chọn 1. Bạn có thể sử dụng CMake file để cấu hình và xây dựng ứng dụng. Tham khảo đến TỆP ĐỌC của sample cho các hướng dẫn.

GHI CHÚ CMake file cung cấp với sample đã vượt qua các cờ -g -O0.


  • Tùy chọn 2. Để biên dịch mảng-transform.cpp sampứng dụng le không có CMake file, đưa ra các lệnh sau:

icpx -fsycl -g -O0 mảng-transform.cpp -o mảng-transform

Nếu quá trình biên dịch và liên kết được thực hiện riêng biệt, hãy giữ lại các cờ -g -O0 ở bước liên kết. Bước liên kết là khi icpx dịch các cờ này để được chuyển đến trình biên dịch thiết bị khi chạy. Bán tạiamplê:

icpx -fsycl -g -O0 -c mảng-transform.cpp
icpx -fsycl -g -O0 mảng-biến đổi.o -o biến đổi mảng

  • Tùy chọn 3. Bạn có thể sử dụng trình biên dịch AOT để tránh thời gian biên dịch JIT lâu hơn khi chạy. Quá trình biên dịch JIT có thể mất nhiều thời gian hơn đối với các hạt nhân lớn trong trình gỡ lỗi. Để sử dụng chế độ biên dịch Trước thời gian:

• Để gỡ lỗi trên GPU:
Chỉ định thiết bị mà bạn sẽ sử dụng để thực hiện chương trình. Đối với người yêu cũample, -device dg2-g10 cho Đồ họa GPU Flex 140 của Trung tâm dữ liệu Intel®. Để biết danh sách các tùy chọn được hỗ trợ và biết thêm thông tin về quá trình biên dịch AOT, hãy tham khảo Tài liệu tham khảo và hướng dẫn dành cho nhà phát triển trình biên dịch Intel® oneAPI DPC++.
Ví dụamplê:

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

Quá trình biên dịch trước thời hạn yêu cầu Trình biên dịch ngoại tuyến OpenCLTM (LOC Trình biên dịch OC). Để biết thêm thông tin, hãy tham khảo phần “Cài đặt Trình biên dịch Ngoại tuyến OpenCLTM (OCLOC)” của Hướng dẫn cài đặt.

• Để gỡ lỗi trên CPU:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o biến đổi mảng

Bắt đầu phiên gỡ lỗi

Bắt đầu phiên gỡ lỗi:

1. Bắt đầu Phân phối Intel® cho GDB* như sau:

chuyển đổi mảng gdb-oneapi

Bạn sẽ thấy dấu nhắc (gdb).

2. Để đảm bảo rằng hạt nhân được giảm tải xuống đúng thiết bị, hãy thực hiện các bước sau. Khi bạn thực hiện lệnh chạy từ dấu nhắc (gdb), hãy chuyển bộ vi xử lý, GPU or máy gia tốc lý lẽ:

  • Để gỡ lỗi trên CPU:

chạy cpu

Example đầu ra:

[SYCL] Sử dụng thiết bị: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] từ [Intel(R) OpenCL]
  • Để gỡ lỗi trên GPU:

chạy gpu

Example đầu ra:

[SYCL] Sử dụng thiết bị: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] từ [Intel(R) LevelZero]
  • Để gỡ lỗi trên trình giả lập FPGA:

chạy tăng tốc

Example đầu ra:

[SYCL] Sử dụng thiết bị: [Intel(R) FPGA Emulation Device] từ [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]

GHI CHÚ Các tham số cpu, gpu và bộ tăng tốc dành riêng cho ứng dụng Biến đổi mảng.


3. Để thoát khỏi Bản phân phối Intel® cho GDB*:

từ bỏ

Để thuận tiện cho bạn, các lệnh Intel® Distribution cho GDB* phổ biến được cung cấp trong Tờ tham khảo.

Để gỡ lỗi Array Transform samptập tin và tìm hiểu thêm về Phân phối Intel® cho GDB*, xem qua các tình huống gỡ lỗi cơ bản bằng cách sử dụng Hướng dẫn.

Tìm hiểu thêm
Tài liệu Sự miêu tả
Hướng dẫn: Gỡ lỗi với Intel® Distribution cho GDB* Tài liệu này mô tả các tình huống cơ bản cần tuân theo trong khi gỡ lỗi SYCL* và OpenCL với Intel® Distribution cho GDB*.
Hướng dẫn sử dụng bản phân phối Intel® cho GDB* Tài liệu này mô tả tất cả các tác vụ phổ biến mà bạn có thể hoàn thành với Intel® Distribution cho GDB* và cung cấp các chi tiết kỹ thuật cần thiết.
Bản phân phối Intel® cho GDB* Ghi chú phát hành Các ghi chú chứa thông tin về các chức năng chính, tính năng mới và các sự cố đã biết của Intel® Distribution cho GDB*.
Trang sản phẩm oneAPI Trang này chứa phần giới thiệu ngắn gọn về bộ công cụ oneAPI và liên kết đến các tài nguyên hữu ích.
Bản phân phối Intel® cho Bảng tham chiếu GDB* Tài liệu dài một trang này mô tả ngắn gọn các điều kiện tiên quyết và lệnh hữu ích của Intel® Distribution cho GDB*.
Jacobi Sample Ứng dụng SYCL* nhỏ này có hai phiên bản: đã sửa lỗi và đã sửa lỗi. sử dụng samptập tin để thực hiện gỡ lỗi ứng dụng với Intel® Distribution cho GDB*.
Thông báo và Tuyên bố từ chối

Các công nghệ của Intel có thể yêu cầu kích hoạt phần cứng, phần mềm hoặc dịch vụ.

Không có sản phẩm hoặc thành phần nào có thể an toàn tuyệt đối.

Chi phí và kết quả của bạn có thể khác nhau.

© Tập đoàn Intel. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Các tên và thương hiệu khác có thể được coi là tài sản của người khác.

Tài liệu này không cấp bất kỳ giấy phép nào (rõ ràng hay ngụ ý, bằng cách ngăn chặn hoặc cách khác) cho bất kỳ quyền sở hữu trí tuệ nào.

Các sản phẩm được mô tả có thể chứa các lỗi hoặc khiếm khuyết về thiết kế được gọi là lỗi in, có thể khiến sản phẩm không giống với các thông số kỹ thuật đã công bố. Các lỗi in hiện tại có sẵn theo yêu cầu.

Intel từ chối tất cả các bảo đảm rõ ràng và ngụ ý, bao gồm nhưng không giới hạn, các bảo đảm ngụ ý về khả năng bán được, tính phù hợp cho một mục đích cụ thể và không vi phạm, cũng như bất kỳ bảo hành nào phát sinh từ quá trình thực hiện, quá trình giao dịch hoặc sử dụng trong thương mại.

OpenCL và logo OpenCL là thương hiệu của Apple Inc. được Khronos sử dụng với sự cho phép.

Tài liệu / Tài nguyên

phân phối intel cho GDB trên máy chủ hệ điều hành Linux [tập tin pdf] Hướng dẫn sử dụng
Phân phối cho GDB trên Máy chủ HĐH Linux, GDB trên Máy chủ HĐH Linux, Máy chủ HĐH Linux, Máy chủ HĐH, Máy chủ

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *