با Intel® Distribution برای GDB* در Linux* OS Host شروع کنید

شروع به استفاده از Intel® Distribution برای GDB* برای اشکال زدایی برنامه ها کنید. دستورالعمل‌های زیر را دنبال کنید تا اشکال‌زدایی را برای اشکال‌زدایی برنامه‌هایی با هسته‌های بارگذاری شده روی دستگاه‌های CPU و GPU تنظیم کنید.

Intel® Distribution برای GDB* به عنوان بخشی از Intel® OneAPI Base Toolkit در دسترس است. برای اطلاعات بیشتر در مورد جعبه ابزار oneAPI، به سایت مراجعه کنید صفحه محصول.

بازدید کنید یادداشت های انتشار صفحه برای اطلاعات در مورد قابلیت های کلیدی، ویژگی های جدید، و مسائل شناخته شده.

می توانید از SYCL*s استفاده کنیدampکد le، Array Transform، برای شروع با توزیع Intel® برای GDB*. اسample خطا ایجاد نمی کند و به سادگی ویژگی های دیباگر را نشان می دهد. کد عناصر آرایه ورودی را بسته به زوج یا فرد بودن آنها پردازش می کند و یک آرایه خروجی تولید می کند. می توانید از s استفاده کنیدample برای اشکال زدایی در هر دو CPU یا GPU، مشخص کردن دستگاه انتخابی از طریق یک آرگومان خط فرمان. البته توجه داشته باشید که اشکال زدایی GPU ممکن است به دو سیستم و پیکربندی اضافی برای اشکال زدایی از راه دور نیاز داشته باشد.

پیش نیازها

اگر قصد رفع اشکال در GPU را دارید، آخرین درایورهای GPU را نصب کرده و سیستم خود را برای استفاده از آنها پیکربندی کنید. رجوع به راهنمای نصب Intel® OneAPI Toolkits برای سیستم عامل Linux*. دستورالعمل ها را دنبال کنید درایورهای پردازنده گرافیکی اینتل را نصب کنید برای نصب درایورهای GPU مطابق با سیستم شما.

علاوه بر این، می‌توانید یک افزونه برای Visual Studio Code* برای اشکال زدایی GPU با Intel® Distribution برای GDB* نصب کنید. رجوع به استفاده از کد ویژوال استودیو با راهنمای جعبه ابزار Intel® oneAPI.

GPU Debugger را تنظیم کنید

برای راه اندازی دیباگر GPU، باید دسترسی ریشه داشته باشید.


توجه در طول اشکال زدایی هسته، GPU متوقف می شود و خروجی ویدیو در دستگاه مورد نظر شما در دسترس نیست. به همین دلیل، اگر کارت گرافیک سیستم برای خروجی گرافیکی نیز استفاده شود، نمی‌توانید GPU را از سیستم هدف دیباگ کنید. در این حالت از طریق ssh به دستگاه متصل شوید.


1. اگر قصد دارید در GPU اشکال زدایی کنید، یک هسته لینوکس که از اشکال زدایی GPU پشتیبانی می کند مورد نیاز است.

a. دستورالعمل ها را دنبال کنید نرم افزار Intel® برای قابلیت های GPU عمومی برای دانلود و نصب درایورهای لازم
b. پشتیبانی از اشکال زدایی i915 را در کرنل فعال کنید:

a. یک ترمینال باز کنید
b. گراب را باز کنید file در /etc/default.
c. در گراب file، خط GRUB_CMDLINE_LINUX_DEFAULT=”” را پیدا کنید.
d. متن زیر را بین نقل قول ها ("") وارد کنید:

i915.debug_eu=1


توجه به‌طور پیش‌فرض، درایور GPU اجازه نمی‌دهد بارهای کاری بیش از مدت زمان مشخصی روی یک GPU اجرا شوند. راننده با تنظیم مجدد پردازنده گرافیکی برای جلوگیری از هنگ کردن، چنین حجم کاری طولانی مدت را از بین می برد. اگر برنامه تحت دیباگر اجرا شود، مکانیزم hangcheck درایور غیرفعال است. اگر قصد دارید حجم کاری محاسباتی طولانی را نیز بدون اتصال دیباگر اجرا کنید، درخواست را در نظر بگیرید GPU: Hangcheck را غیرفعال کنید با اضافه کردن

i915.enable_hangcheck=0

به همان خط GRUB_CMDLINE_LINUX_DEFAULT.

c. برای اعمال این تغییرات، GRUB را به روز کنید:

sudo update-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
دیباگر پیدا شد.
لیبیپت پیدا شد
لیبیگا پیدا شد
اشکال زدایی 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…

کامپایل برنامه با اطلاعات Debug

می توانید از s استفاده کنیدampپروژه، تبدیل آرایه، برای شروع سریع با دیباگر برنامه.

1. برای بدست آوردن sample، یکی از راه های زیر را انتخاب کنید:

2. به src از s برویدampپروژه le:

cd array-transform/src

3. با فعال کردن اطلاعات اشکال زدایی (پرچم -g) و خاموش کردن بهینه‌سازی‌ها (پرچم -O0) برنامه را کامپایل کنید.
غیرفعال کردن بهینه سازی برای یک محیط اشکال زدایی پایدار و دقیق توصیه می شود. این به جلوگیری از سردرگمی ناشی از تغییرات کد پس از بهینه سازی کامپایلر کمک می کند.


توجه همچنان می‌توانید برنامه را با فعال‌سازی بهینه‌سازی (پرچم O2) کامپایل کنید، که اگر هدفتان اشکال‌زدایی مونتاژ GPU باشد، می‌تواند مفید باشد.


شما می توانید برنامه را به روش های مختلفی کامپایل کنید. گزینه‌های 1 و 2 از کامپایل فقط به‌موقع (JIT) استفاده می‌کنند که برای رفع اشکال s توصیه می‌شود.ampله گزینه 3 از کامپایل پیش از زمان (AOT) استفاده می کند.

  • گزینه 1. می توانید از CMake استفاده کنید file برای پیکربندی و ساخت برنامه رجوع به README از سampبرای دستورالعمل.

توجه CMake file ارائه شده با sample قبلاً پرچم -g -O0 را پاس کرده است.


  • گزینه 2. برای کامپایل آرایه-transform.cpp sampبرنامه بدون CMake file، دستورات زیر را صادر کنید:

icpx -fsycl -g -O0 array-transform.cpp -o array-transform

اگر کامپایل و پیوند به طور جداگانه انجام می شود، پرچم -g -O0 را در مرحله پیوند حفظ کنید. مرحله پیوند زمانی است که icpx این پرچم ها را ترجمه می کند تا در زمان اجرا به کامپایلر دستگاه منتقل شود. سابقampدر:

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 for Intel® Data Center GPU Flex 140 Graphics. برای لیست گزینه های پشتیبانی شده و اطلاعات بیشتر در مورد کامپایل AOT، به آدرس مراجعه کنید راهنمای توسعه دهنده و مرجع کامپایلر Intel® oneAPI DPC++.
برای مثالampدر:

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

کامپایل پیش از زمان به کامپایلر آفلاین OpenCLTM (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

شما باید اعلان (gdb) را ببینید.

2. برای اطمینان از بارگذاری کرنل روی دستگاه مناسب، مراحل زیر را انجام دهید. هنگامی که دستور run را از اعلان (gdb) اجرا می کنید، آن را ارسال کنید cpu, gpu or شتاب دهنده استدلال:

  • برای رفع اشکال در CPU:

سی پی یو را اجرا کنید

Exampخروجی:

[SYCL] استفاده از دستگاه: [CPU Intel(R) Core(TM) i7-9750H @ 2.60GHz] از [Intel(R) OpenCL]
  • برای رفع اشکال در GPU:

gpu را اجرا کنید

Exampخروجی:

[SYCL] استفاده از دستگاه: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] از [Intel(R) LevelZero]
  • برای اشکال زدایی در شبیه ساز FPGA:

شتاب دهنده را اجرا کنید

Exampخروجی:

[SYCL] استفاده از دستگاه: [دستگاه شبیه‌سازی Intel(R) FPGA] از [Intel(R) FPGA Emulation Platform for OpenCL(TM)]

توجه پارامترهای cpu، gpu و accelerator مخصوص برنامه Array Transform هستند.


3. برای خروج از Intel® Distribution برای GDB*:

ترک کردن

برای راحتی شما، دستورات مشترک Intel® Distribution برای GDB* در قسمت ارائه شده است برگه مرجع.

برای رفع اشکال Array Transform sampبرای کسب اطلاعات بیشتر در مورد Intel® Distribution برای GDB*، سناریوهای اساسی اشکال زدایی را با استفاده از آموزش.

بیشتر بدانید
سند توضیحات
آموزش: اشکال زدایی با Intel® Distribution برای GDB* این سند سناریوهای اساسی را که باید هنگام اشکال‌زدایی SYCL* و OpenCL با Intel® Distribution برای GDB* دنبال کنید، شرح می‌دهد.
راهنمای کاربری Intel® Distribution for GDB* این سند تمام کارهای رایجی را که می‌توانید با Intel® Distribution برای GDB* انجام دهید شرح می‌دهد و جزئیات فنی لازم را ارائه می‌کند.
Intel® Distribution for GDB* Release Notes یادداشت ها حاوی اطلاعاتی درباره قابلیت های کلیدی، ویژگی های جدید و مسائل شناخته شده Intel® Distribution برای GDB* هستند.
صفحه محصول oneAPI این صفحه شامل معرفی مختصری از جعبه ابزار oneAPI و پیوندهایی به منابع مفید است.
صفحه مرجع توزیع اینتل برای GDB* این سند یک صفحه ای به طور خلاصه Intel® Distribution برای پیش نیازها و دستورات مفید GDB* را شرح می دهد.
ژاکوبی اسample این برنامه کوچک SYCL* دارای دو نسخه است: باگ و ثابت. از s استفاده کنیدampبرای انجام اشکال‌زدایی برنامه با Intel® Distribution برای GDB*.
اطلاعیه ها و سلب مسئولیت

فن آوری های اینتل ممکن است نیاز به فعال سازی سخت افزار ، نرم افزار یا سرویس داشته باشند.

هیچ محصول یا م componentلفه ای نمی تواند کاملاً ایمن باشد.

هزینه ها و نتایج شما ممکن است متفاوت باشد.

© شرکت اینتل. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. نام ها و مارک های دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

هیچ مجوزی (به صورت صریح یا ضمنی، توسط estoppel یا غیره) برای هیچ گونه حقوق مالکیت معنوی توسط این سند اعطا نمی شود.

محصولات شرح داده شده ممکن است دارای ایرادات طراحی یا خطاهایی به نام خطا باشد که ممکن است باعث انحراف محصول از مشخصات منتشر شده شود. خطاهای مشخص شده فعلی در صورت درخواست در دسترس هستند.

اینتل تمام ضمانت‌های صریح و ضمنی، از جمله بدون محدودیت، ضمانت‌های ضمنی خرید و فروش، تناسب برای یک هدف خاص، و عدم نقض، و همچنین هر گونه ضمانت ناشی از عملکرد، دوره معامله یا استفاده در تجارت را سلب می‌کند.

OpenCL و لوگوی OpenCL علائم تجاری Apple Inc. هستند که با مجوز Khronos استفاده می شوند.

اسناد / منابع

توزیع intel برای GDB در میزبان سیستم عامل لینوکس [pdfراهنمای کاربر
توزیع برای GDB در میزبان سیستم عامل لینوکس، GDB در میزبان سیستم عامل لینوکس، میزبان سیستم عامل لینوکس، میزبان سیستم عامل، میزبان

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *