लिनक्स* ओएस होस्टमा GDB* को लागि Intel® वितरणको साथ सुरु गर्नुहोस्

डिबगिङ अनुप्रयोगहरूको लागि GDB* को लागि Intel® वितरण प्रयोग गर्न सुरु गर्नुहोस्। CPU र GPU यन्त्रहरूमा अफलोड गरिएका कर्नेलहरूसँग अनुप्रयोगहरू डिबग गर्न डिबगर सेटअप गर्न तलका निर्देशनहरू पालना गर्नुहोस्।

GDB* को लागि Intel® वितरण Intel® oneAPI बेस टूलकिटको भागको रूपमा उपलब्ध छ। oneAPI टूलकिटहरूमा थप जानकारीको लागि, भ्रमण गर्नुहोस् उत्पादन पृष्ठ.

भ्रमण गर्नुहोस् रिलिज नोटहरू मुख्य क्षमताहरू, नयाँ सुविधाहरू, र ज्ञात मुद्दाहरूको बारेमा जानकारीको लागि पृष्ठ।

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

पूर्व शर्तहरू

यदि तपाइँ GPU मा डिबग गर्ने लक्ष्य राख्नुहुन्छ भने, नवीनतम GPU ड्राइभरहरू स्थापना गर्नुहोस् र तिनीहरूलाई प्रयोग गर्न आफ्नो प्रणाली कन्फिगर गर्नुहोस्। सन्दर्भ गर्नुहोस् Linux* OS को लागि Intel® oneAPI Toolkits स्थापना गाइड। निर्देशनहरू पालना गर्नुहोस् Intel GPU ड्राइभरहरू स्थापना गर्नुहोस् तपाईको प्रणालीसँग मिल्ने GPU ड्राइभरहरू स्थापना गर्न।

थप रूपमा, तपाईंले GDB* को लागि Intel® वितरणसँग GPU डिबग गर्नको लागि भिजुअल स्टुडियो कोड* को लागि विस्तार स्थापना गर्न सक्नुहुन्छ। सन्दर्भ गर्नुहोस् Intel® oneAPI Toolkits Guide सँग भिजुअल स्टुडियो कोड प्रयोग गर्दै.

GPU डिबगर सेट अप गर्नुहोस्

GPU डिबगर सेटअप गर्न, तपाईंसँग रूट पहुँच हुनुपर्छ।


नोट कर्नेल डिबगिङको क्रममा, GPU रोकिएको छ र भिडियो आउटपुट तपाईंको लक्षित मेसिनमा उपलब्ध छैन। यसको कारणले, यदि प्रणालीको GPU कार्ड ग्राफिकल आउटपुटको लागि पनि प्रयोग गरिन्छ भने तपाईले लक्ष्य प्रणालीबाट GPU लाई डिबग गर्न सक्नुहुन्न। यस अवस्थामा, ssh मार्फत मेसिनमा जडान गर्नुहोस्।


1. यदि तपाइँ GPU मा डिबग गर्ने लक्ष्य राख्नुहुन्छ भने, GPU डिबगिङलाई समर्थन गर्ने लिनक्स कर्नेल आवश्यक छ।

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 अपडेट-ग्रब

d. रिबुट गर्नुहोस्।

2. तपाईंको टुलकिट स्थापनाको रूटमा अवस्थित सेटवर स्क्रिप्ट सोर्स गरेर तपाईंको 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 –filter debugger_sys_check -force

राम्रोसँग कन्फिगर गरिएको प्रणालीको सम्भावित आउटपुट निम्नानुसार छ:


नतिजा जाँच गर्दछ:
============================================= ============================
नाम जाँच गर्नुहोस्: debugger_sys_check
विवरण: यदि वातावरण GDB (GDB* को लागि Intel(R) वितरण प्रयोग गर्न तयार छ भने यो जाँचले प्रमाणित गर्दछ।
परिणाम स्थिति: PASS
डिबगर फेला पर्यो।
libipt भेटियो।
libiga भेटियो।
i915 डिबग सक्षम छ।
वातावरणीय चर सही। ============================================= =============================

१ चेक: १ पास, ० फेल, ० चेतावनी, ० त्रुटिहरू

कन्सोल आउटपुट file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt JSON आउटपुट file: /path/to/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

डिबग जानकारी संग कार्यक्रम कम्पाइल गर्नुहोस्

तपाईं s प्रयोग गर्न सक्नुहुन्छampले प्रोजेक्ट, एरे ट्रान्सफर्म, छिट्टै एप्लिकेसन डिबगरको साथ सुरु गर्न।

1. प्राप्त गर्न एसample, निम्न मध्ये कुनै पनि तरिका छनौट गर्नुहोस्:

2. s को src मा नेभिगेट गर्नुहोस्ampले परियोजना:

cd array-transform/src

3. डिबग जानकारी (-g फ्ल्याग) सक्षम गरेर र अप्टिमाइजेसनहरू (-O0 फ्ल्याग) बन्द गरेर अनुप्रयोग कम्पाइल गर्नुहोस्।
एक स्थिर र सही डिबग वातावरणको लागि अप्टिमाइजेसन असक्षम गर्न सिफारिस गरिन्छ। यसले कम्पाइलर अप्टिमाइजेसन पछि कोडमा परिवर्तनहरूको कारणले गर्दा भ्रमबाट बच्न मद्दत गर्दछ।


नोट तपाइँ अझै पनि अप्टिमाइजेसन सक्षम (-O2 फ्ल्याग) संग कार्यक्रम कम्पाइल गर्न सक्नुहुन्छ, जुन उपयोगी हुन सक्छ यदि तपाइँ GPU असेंबली डिबगिङमा लक्ष्य राख्नुहुन्छ।


तपाईं धेरै तरिकामा कार्यक्रम कम्पाइल गर्न सक्नुहुन्छ। विकल्प 1 र 2 ले जस्ट-इन-टाइम (JIT) कम्पाइलेशन प्रयोग गर्दछ, जुन s लाई डिबग गर्न सिफारिस गरिन्छ।ample। विकल्प 3 अगाडि-अफ-टाइम (AOT) संकलन प्रयोग गर्दछ।

  • विकल्प 1. तपाईं CMake प्रयोग गर्न सक्नुहुन्छ file कन्फिगर र अनुप्रयोग निर्माण गर्न। सन्दर्भ गर्नुहोस् README s कोampले निर्देशनहरूको लागि।

नोट CMake file एस संग प्रदानampले पहिले नै -g -O0 झण्डाहरू पास गर्दछ।


  • विकल्प २. array-transform.cpp s कम्पाइल गर्नampले आवेदन CMake बिना file, निम्न आदेश जारी गर्नुहोस्:

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

यदि संकलन र लिङ्किङ अलग-अलग गरिएमा, लिङ्क चरणमा -g -O0 फ्ल्यागहरू राख्नुहोस्। लिङ्क चरण हो जब icpx ले यी फ्ल्यागहरू रनटाइममा उपकरण कम्पाइलरमा पास गर्न अनुवाद गर्दछ। उदाampLe:

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 Intel® डाटा केन्द्र GPU Flex 140 ग्राफिक्सको लागि। समर्थित विकल्पहरूको सूची र AOT संकलनमा थप जानकारीको लागि, सन्दर्भ गर्नुहोस् Intel® oneAPI DPC++ कम्पाइलर विकासकर्ता गाइड र सन्दर्भ.
पूर्वका लागिampLe:

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

अगाड-अफ-टाइम संकलनलाई OpenCLTM अफलाइन कम्पाइलर (OC कम्पाइलर LOC) आवश्यक छ। थप जानकारीको लागि, "ओपनसीएलटीएम अफलाइन कम्पाइलर (ओसीएलओसी) स्थापना गर्नुहोस्" खण्ड हेर्नुहोस्। स्थापना गाइड.

• 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 चलाउनुहोस्

Exampले आउटपुट:

[SYCL] यन्त्र प्रयोग गर्दै: [Intel(R) OpenCL] बाट [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz]
  • GPU मा डिबग गर्न को लागी:

gpu चलाउनुहोस्

Exampले आउटपुट:

[SYCL] यन्त्र प्रयोग गर्दै: [Intel(R) LevelZero बाट [Intel(R) Data Center GPU Flex Series 140 [0x56c1]]
  • FPGA-इम्युलेटरमा डिबग गर्नका लागि:

एक्सिलरेटर चलाउनुहोस्

Exampले आउटपुट:

[SYCL] यन्त्र प्रयोग गर्दै: [Intel(R) FPGA इमुलेशन उपकरण] [Intel(R) FPGA इमुलेशन प्लेटफर्म OpenCL(TM) सफ्टवेयरको लागि]

नोट cpu, gpu, र एक्सेलेरेटर प्यारामिटरहरू एरे ट्रान्सफर्म अनुप्रयोगका लागि विशिष्ट छन्।


3. GDB* को लागि Intel® वितरण छोड्न:

छोड्नुहोस्

तपाईंको सुविधाको लागि, GDB* आदेशहरूको लागि साझा Intel® वितरण मा प्रदान गरिएको छ सन्दर्भ पाना.

एरे ट्रान्सफर्म डिबग गर्न sampले र GDB को लागि Intel® वितरण बारे थप जान्नुहोस्, आधारभूत डिबगिङ परिदृश्यहरू प्रयोग गरेर हिंड्नुहोस्। ट्यूटोरियल.

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

इंटेल टेक्नोलोजीहरूले सक्षम हार्डवेयर, सफ्टवेयर वा सेवा सक्रियताको आवश्यक हुन सक्दछ।

कुनै पनि उत्पादन वा कम्पोनेन्ट पूर्ण रूपमा सुरक्षित हुन सक्दैन।

तपाईंको लागत र परिणाम फरक हुन सक्छ।

© इंटेल निगम। Intel, Intel लोगो, र अन्य Intel मार्कहरू Intel Corporation वा यसको सहायक कम्पनीहरूको ट्रेडमार्क हुन्। अन्य नाम र ब्रान्डहरू अरूको सम्पत्तिको रूपमा दाबी गर्न सकिन्छ।

यस कागजातद्वारा कुनै पनि बौद्धिक सम्पत्ति अधिकारको लागि कुनै इजाजतपत्र (व्यक्त वा निहित, एस्टोपेल वा अन्यथा) प्रदान गरिएको छैन।

वर्णन गरिएका उत्पादनहरूमा डिजाइन त्रुटिहरू वा त्रुटिहरू समावेश हुन सक्छन् जसलाई इरेटा भनिन्छ जसले उत्पादनलाई प्रकाशित विनिर्देशहरूबाट विचलित हुन सक्छ। हालको विशेषता इरेटा अनुरोधमा उपलब्ध छन्।

Intel ले सबै एक्सप्रेस र निहित वारेन्टीहरू अस्वीकृत गर्दछ, बिना सीमा, व्यापारिकताको निहित वारेन्टी, एक विशेष उद्देश्यको लागि फिटनेस, र गैर-उल्लंघन, साथै प्रदर्शनको पाठ्यक्रम, व्यवहारको पाठ्यक्रम, वा व्यापारमा प्रयोगबाट उत्पन्न हुने कुनै पनि वारेन्टी।

ओपनसीएल र ओपनसीएल लोगोहरू एप्पल इंकका ट्रेडमार्क हुन्।

कागजातहरू / स्रोतहरू

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

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *