Linux* OS होस्टवर GDB* साठी Intel® वितरणासह प्रारंभ करा

डीबगिंग ऍप्लिकेशन्ससाठी GDB* साठी Intel® वितरण वापरणे सुरू करा. CPU आणि GPU उपकरणांवर ऑफलोड केलेल्या कर्नलसह अनुप्रयोग डीबग करण्यासाठी डीबगर सेट करण्यासाठी खालील सूचनांचे अनुसरण करा.

GDB* साठी Intel® वितरण Intel® oneAPI बेस टूलकिटचा भाग म्हणून उपलब्ध आहे. वनएपीआय टूलकिटबद्दल अधिक माहितीसाठी, येथे भेट द्या उत्पादन पृष्ठ.

ला भेट द्या रिलीझ नोट्स मुख्य क्षमता, नवीन वैशिष्ट्ये आणि ज्ञात समस्यांबद्दल माहितीसाठी पृष्ठ.

तुम्ही SYCL*s वापरू शकताample कोड, अॅरे ट्रान्सफॉर्म, GDB* साठी Intel® वितरणासह प्रारंभ करण्यासाठी. एसample त्रुटी निर्माण करत नाही आणि फक्त डीबगर वैशिष्ट्ये स्पष्ट करते. कोड इनपुट अॅरेचे घटक सम किंवा विषम आहेत यावर अवलंबून प्रक्रिया करतो आणि आउटपुट अॅरे तयार करतो. आपण एस वापरू शकताampसीपीयू किंवा जीपीयू दोन्हीवर डीबग करण्यासाठी, कमांड लाइन आर्ग्युमेंटद्वारे निवडलेले डिव्हाइस निर्दिष्ट करा. लक्षात ठेवा की GPU डीबगिंगसाठी रिमोट डीबगिंगसाठी दोन सिस्टम आणि अतिरिक्त कॉन्फिगरेशन आवश्यक असू शकते.

पूर्वतयारी

तुम्‍ही GPU वर डीबग करण्‍याचे उद्दिष्ट ठेवल्‍यास, नवीनतम GPU ड्राइवर स्‍थापित करा आणि तुमची सिस्‍टम ते वापरण्‍यासाठी कॉन्फिगर करा. चा संदर्भ घ्या Linux* OS साठी Intel® oneAPI टूलकिट्स इंस्टॉलेशन मार्गदर्शक. सूचनांचे पालन करा इंटेल GPU ड्राइव्हर्स स्थापित करा तुमच्या सिस्टमशी जुळणारे GPU ड्रायव्हर्स इन्स्टॉल करण्यासाठी.

याव्यतिरिक्त, तुम्ही GDB* साठी Intel® वितरण सह GPU डीबग करण्यासाठी व्हिज्युअल स्टुडिओ कोड* साठी विस्तार स्थापित करू शकता. चा संदर्भ घ्या Intel® oneAPI टूलकिट मार्गदर्शकासह व्हिज्युअल स्टुडिओ कोड वापरणे.

GPU डीबगर सेट करा

GPU डीबगर सेट करण्यासाठी, तुमच्याकडे रूट प्रवेश असणे आवश्यक आहे.


टीप कर्नल डीबगिंग दरम्यान, GPU थांबवले जाते आणि तुमच्या लक्ष्य मशीनवर व्हिडिओ आउटपुट अनुपलब्ध आहे. यामुळे, जर सिस्टीमचे GPU कार्ड ग्राफिकल आउटपुटसाठी देखील वापरले असेल तर तुम्ही लक्ष्य प्रणालीमधून GPU डीबग करू शकत नाही. या प्रकरणात, ssh द्वारे मशीनशी कनेक्ट करा.


1. तुमचे लक्ष्य GPU वर डीबग करायचे असल्यास, GPU डीबगिंगला समर्थन देणारा Linux कर्नल आवश्यक आहे.

a. येथे सूचनांचे अनुसरण करा सामान्य उद्देश GPU क्षमतांसाठी Intel® सॉफ्टवेअर आवश्यक ड्राइव्हर्स डाउनलोड आणि स्थापित करण्यासाठी.
b. कर्नलमध्ये i915 डीबग समर्थन सक्षम करा:

a. टर्मिनल उघडा.
b. ग्रब उघडा file /etc/default मध्ये.
c. कुबड्या मध्ये file, GRUB_CMDLINE_LINUX_DEFAULT=”” ही ओळ शोधा.
d. अवतरणांमध्ये खालील मजकूर प्रविष्ट करा (“”):

i915.debug_eu=1


टीप डीफॉल्टनुसार, GPU ड्रायव्हर वर्कलोडला GPU वर ठराविक वेळेपेक्षा जास्त वेळ चालवण्याची परवानगी देत ​​नाही. हँग होण्यापासून रोखण्यासाठी ड्रायव्हर GPU रीसेट करून असे दीर्घकाळ चालणारे वर्कलोड नष्ट करतो. अनुप्रयोग डीबगर अंतर्गत चालत असल्यास ड्रायव्हरची हँगचेक यंत्रणा अक्षम केली जाते. तुम्ही डिबगर जोडल्याशिवाय दीर्घ संगणकीय वर्कलोड्स चालवण्याचा विचार करत असल्यास, अर्ज करण्याचा विचार करा GPU: हँगचेक अक्षम करा जोडून

i915.enable_hangcheck=0

तेच GRUB_CMDLINE_LINUX_DEFAULT लाइन.

c. हे बदल प्रभावी होण्यासाठी GRUB अपडेट करा:

sudo update-grub

d. रीबूट करा.

2. तुमच्‍या टूलकिट इंस्‍टॉलेशनच्‍या रूटमध्‍ये असलेल्‍या setvars स्क्रिप्टचा सोर्सिंग करून तुमचे CLI वातावरण सेट करा.

लिनक्स (sudo):

स्रोत /opt/intel/oneapi/setvars.sh

लिनक्स (वापरकर्ता):

स्रोत ~/intel/oneapi/setvars.sh

3. सेटअप वातावरण
Intel® oneAPI लेव्हल झिरो साठी डीबगर सपोर्ट सक्षम करण्यासाठी खालील पर्यावरण व्हेरिएबल्स वापरा:

निर्यात ZET_ENABLE_PROGRAM_DEBUGGING=1
IGC_EnableGTLocationDebugging=1 निर्यात करा

4. सिस्टम तपासणी
सर्वकाही तयार झाल्यावर, सिस्टम कॉन्फिगरेशन विश्वसनीय आहे याची पुष्टी करण्यासाठी कृपया खालील आदेश चालवा:

python3 /path/to/intel/oneapi/diagnostics/latest/diagnostics.py –फिल्टर debugger_sys_check -force

व्यवस्थित कॉन्फिगर केलेल्या प्रणालीचे संभाव्य आउटपुट खालीलप्रमाणे आहे:


परिणाम तपासते:
================================================== ===============================
नाव तपासा: debugger_sys_check
वर्णन: पर्यावरण GDB (Intel(R) वितरण GDB* साठी वापरण्यासाठी तयार आहे की नाही हे तपासते.
निकालाची स्थिती: पास
डीबगर सापडला.
libipt आढळले.
libiga आढळले.
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 …

डीबग माहितीसह प्रोग्राम संकलित करा

आपण एस वापरू शकताample प्रोजेक्ट, अॅरे ट्रान्सफॉर्म, ऍप्लिकेशन डीबगरसह द्रुतपणे प्रारंभ करण्यासाठी.

1. एस मिळविण्यासाठीample, खालीलपैकी कोणताही मार्ग निवडा:

2. s च्या src वर नेव्हिगेट कराample प्रकल्प:

cd array-transform/src

3. डीबग माहिती (-g फ्लॅग) सक्षम करून आणि ऑप्टिमायझेशन (-O0 ध्वज) बंद करून अनुप्रयोग संकलित करा.
स्थिर आणि अचूक डीबग वातावरणासाठी ऑप्टिमायझेशन अक्षम करण्याची शिफारस केली जाते. हे कंपाइलर ऑप्टिमायझेशननंतर कोडमधील बदलांमुळे होणारा गोंधळ टाळण्यास मदत करते.


टीप तुम्ही अजूनही ऑप्टिमायझेशन सक्षम (-O2 ध्वज) सह प्रोग्राम संकलित करू शकता, जे तुम्ही GPU असेंबली डीबगिंगचे लक्ष्य ठेवल्यास उपयुक्त ठरू शकते.


आपण प्रोग्राम अनेक प्रकारे संकलित करू शकता. पर्याय 1 आणि 2 जस्ट-इन-टाइम (JIT) संकलन वापरतात, ज्याची s डीबग करण्यासाठी शिफारस केली जाते.ampले पर्याय 3 अगोदर-ऑफ-टाइम (AOT) संकलन वापरतो.

  • पर्याय 1. तुम्ही CMake वापरू शकता file अनुप्रयोग कॉन्फिगर करण्यासाठी आणि तयार करण्यासाठी. चा संदर्भ घ्या README च्याampसूचनांसाठी le.

टीप सीमेक file एस सह प्रदानample आधीच -g -O0 ध्वज पास करते.


  • पर्याय 2. array-transform.cpp s संकलित करण्यासाठीampसीमेकशिवाय अर्ज 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. रनटाइममध्ये जास्त JIT संकलन वेळ टाळण्यासाठी तुम्ही AOT संकलन वापरू शकता. डीबगर अंतर्गत मोठ्या कर्नलसाठी JIT संकलनास जास्त वेळ लागू शकतो. अहेड-ऑफ-टाइम संकलन मोड वापरण्यासाठी:

• GPU वर डीबगिंगसाठी:
आपण प्रोग्राम अंमलबजावणीसाठी वापरणार असलेले डिव्हाइस निर्दिष्ट करा. उदाample, Intel® डेटा सेंटर GPU Flex 2 ग्राफिक्ससाठी -डिव्हाइस dg10-g140. समर्थित पर्यायांच्या सूचीसाठी आणि AOT संकलनावरील अधिक माहितीसाठी, पहा Intel® oneAPI DPC++ कंपाइलर विकसक मार्गदर्शक आणि संदर्भ.
उदाampले:

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

अगोदर-ऑफ-टाइम संकलनासाठी OpenCLTM ऑफलाइन कंपाइलर (OC कंपाइलर LOC) आवश्यक आहे. अधिक माहितीसाठी, विभागातील “Install OpenCLTM ऑफलाइन कंपाइलर (OCLOC)” पहा. स्थापना मार्गदर्शक.

• CPU वर डीबगिंगसाठी:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform

डीबग सत्र सुरू करा

डीबग सत्र सुरू करा:

1. खालीलप्रमाणे GDB* साठी Intel® वितरण सुरू करा:

gdb-oneapi array-transform

तुम्ही (gdb) प्रॉम्प्ट पहावे.

2. कर्नल योग्य उपकरणावर ऑफलोड केले आहे याची खात्री करण्यासाठी, खालील पायऱ्या करा. जेव्हा तुम्ही (gdb) प्रॉम्प्टवरून रन कमांड कार्यान्वित करता, तेव्हा पास करा cpu, gpu or प्रवेगक युक्तिवाद

  • CPU वर डीबगिंगसाठी:

cpu चालवा

Example आउटपुट:

[SYCL] डिव्हाइस वापरणे: [Intel(R) OpenCL] कडून [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz]
  • GPU वर डीबगिंगसाठी:

gpu चालवा

Example आउटपुट:

[SYCL] डिव्हाइस वापरणे: [Intel(R) LevelZero] वरून [Intel(R) डेटा सेंटर GPU फ्लेक्स सिरीज 140 [0x56c1]]
  • FPGA-एमुलेटरवर डीबगिंगसाठी:

प्रवेगक चालवा

Example आउटपुट:

[SYCL] डिव्हाइस वापरणे: [Intel(R) FPGA इम्युलेशन डिव्हाइस] OpenCL(TM) सॉफ्टवेअरसाठी [Intel(R) FPGA इम्युलेशन प्लॅटफॉर्म वरून]

टीप cpu, gpu आणि एक्सीलरेटर पॅरामीटर्स अॅरे ट्रान्सफॉर्म ऍप्लिकेशनसाठी विशिष्ट आहेत.


3. GDB* साठी Intel® वितरण सोडण्यासाठी:

सोडणे

तुमच्या सोयीसाठी, GDB* कमांडसाठी कॉमन Intel® वितरण मध्ये प्रदान केले आहे संदर्भ पत्रक.

अॅरे ट्रान्सफॉर्म डीबग करण्यासाठी sample आणि GDB* साठी Intel® वितरणाबद्दल अधिक जाणून घ्या, वापरून मूलभूत डीबगिंग परिस्थितींमधून वाचा ट्यूटोरियल.

अधिक जाणून घ्या
दस्तऐवज वर्णन
ट्यूटोरियल: GDB साठी Intel® वितरणासह डीबगिंग* हा दस्तऐवज GDB* साठी Intel® वितरणासह SYCL* आणि OpenCL डीबग करताना फॉलो करण्याच्या मूलभूत परिस्थितींचे वर्णन करतो.
GDB* वापरकर्ता मार्गदर्शक साठी Intel® वितरण हा दस्तऐवज सर्व सामान्य कार्यांचे वर्णन करतो जे तुम्ही GDB* साठी Intel® वितरणासह पूर्ण करू शकता आणि आवश्यक तांत्रिक तपशील प्रदान करतो.
GDB* रिलीज नोट्ससाठी Intel® वितरण नोट्समध्ये GDB* साठी Intel® वितरणाच्या प्रमुख क्षमता, नवीन वैशिष्ट्ये आणि ज्ञात समस्यांबद्दल माहिती असते.
oneAPI उत्पादन पृष्ठ या पृष्ठावर वनएपीआय टूलकिटचा संक्षिप्त परिचय आणि उपयुक्त संसाधनांच्या लिंक्स आहेत.
GDB* संदर्भ पत्रकासाठी Intel® वितरण हा एक-पानाचा दस्तऐवज GDB* पूर्वआवश्यकता आणि उपयुक्त आदेशांसाठी Intel® वितरणाचे थोडक्यात वर्णन करतो.
जेकोबी एसample या लहान SYCL* ऍप्लिकेशनच्या दोन आवृत्त्या आहेत: बग केलेले आणि निश्चित. एस वापराampGDB* साठी Intel® वितरणासह ऍप्लिकेशन डीबगिंगचा व्यायाम करा.
सूचना आणि अस्वीकरण

इंटेल तंत्रज्ञानास सक्षम हार्डवेअर, सॉफ्टवेअर किंवा सेवा सक्रियण आवश्यक असू शकते.

कोणतेही उत्पादन किंवा घटक पूर्णपणे सुरक्षित असू शकत नाही.

तुमची किंमत आणि परिणाम भिन्न असू शकतात.

© इंटेल कॉर्पोरेशन. इंटेल, इंटेल लोगो आणि इतर इंटेल चिन्ह हे इंटेल कॉर्पोरेशन किंवा त्याच्या उपकंपन्यांचे ट्रेडमार्क आहेत. इतर नावे आणि ब्रँडवर इतरांची मालमत्ता म्हणून दावा केला जाऊ शकतो.

या दस्तऐवजाद्वारे कोणत्याही बौद्धिक संपदा अधिकारांना कोणताही परवाना (व्यक्त किंवा निहित, एस्टॉपेलद्वारे किंवा अन्यथा) मंजूर केला जात नाही.

वर्णन केलेल्या उत्पादनांमध्ये डिझाइन दोष किंवा त्रुटी असू शकतात ज्यांना इरेटा म्हणून ओळखले जाते ज्यामुळे उत्पादन प्रकाशित वैशिष्ट्यांपासून विचलित होऊ शकते. वर्तमान वैशिष्ट्यीकृत इरेटा विनंतीवर उपलब्ध आहे.

इंटेल मर्यादेशिवाय, व्यापारक्षमतेची गर्भित हमी, विशिष्ट हेतूसाठी फिटनेस आणि गैर-उल्लंघन, तसेच कार्यप्रदर्शन, व्यवहाराचा मार्ग किंवा व्यापारातील वापरामुळे उद्भवणारी कोणतीही हमी यासह सर्व व्यक्त आणि निहित वॉरंटी नाकारते.

OpenCL आणि OpenCL लोगो हे Apple Inc. चे ट्रेडमार्क आहेत जे Khronos च्या परवानगीने वापरले जातात.

कागदपत्रे / संसाधने

लिनक्स ओएस होस्टवर जीडीबीसाठी इंटेल वितरण [pdf] वापरकर्ता मार्गदर्शक
लिनक्स ओएस होस्टवर जीडीबीसाठी वितरण, लिनक्स ओएस होस्टवर जीडीबी, लिनक्स ओएस होस्ट, ओएस होस्ट, होस्ट

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *