დაიწყეთ Intel® Distribution for GDB* Linux* OS ჰოსტზე
დაიწყეთ Intel® Distribution-ის GDB* გამოყენება აპლიკაციების გამართვისთვის. მიჰყევით ქვემოთ მოცემულ ინსტრუქციებს, რათა დააყენოთ გამართვა აპლიკაციების გამართვისთვის, ბირთვებით, რომლებიც ჩამოტვირთულია CPU და GPU მოწყობილობებზე.
Intel® Distribution for GDB* ხელმისაწვდომია როგორც Intel® oneAPI Base Toolkit-ის ნაწილი. დამატებითი ინფორმაციისთვის oneAPI ინსტრუმენტთა ნაკრების შესახებ, ეწვიეთ პროდუქტის გვერდი.
ეწვიეთ გამოშვების შენიშვნები გვერდი ძირითადი შესაძლებლობების, ახალი ფუნქციების და ცნობილი საკითხების შესახებ ინფორმაციისთვის.
შეგიძლიათ გამოიყენოთ SYCL* sampკოდი, Array Transform, რათა დაიწყოთ Intel® Distribution for GDB*. სample არ წარმოქმნის შეცდომებს და უბრალოდ ასახავს გამართვის ფუნქციებს. კოდი ამუშავებს შეყვანის მასივის ელემენტებს იმისდა მიხედვით, ისინი ლუწია თუ კენტი და აწარმოებს გამომავალ მასივს. შეგიძლიათ გამოიყენოთ სampუნდა გამართოთ როგორც CPU, ასევე GPU, არჩეული მოწყობილობის მითითება ბრძანების ხაზის არგუმენტით. თუმცა გაითვალისწინეთ, რომ GPU გამართვას შეიძლება დასჭირდეს ორი სისტემა და დამატებითი კონფიგურაცია დისტანციური გამართვისთვის.
წინაპირობები
თუ GPU-ზე ხარვეზების გამართვას აპირებთ, დააინსტალირეთ GPU-ს უახლესი დრაივერები და დააკონფიგურირეთ სისტემა მათ გამოსაყენებლად. იხილეთ Intel® oneAPI Toolkits ინსტალაციის სახელმძღვანელო Linux* OS-ისთვის. მიჰყევით ინსტრუქციას დააინსტალირეთ Intel GPU დრაივერები დააინსტალიროთ GPU დრაივერები, რომლებიც შეესაბამება თქვენს სისტემას.
გარდა ამისა, შეგიძლიათ დააინსტალიროთ გაფართოება Visual Studio Code-ისთვის* GPU-ს გამართვისთვის Intel® Distribution-ით GDB*-ისთვის. იხილეთ ვიზუალური სტუდიის კოდის გამოყენება Intel® OneAPI ინსტრუმენტარიუმის სახელმძღვანელოსთან ერთად.
დააყენეთ GPU Debugger
GPU debugger-ის დასაყენებლად, თქვენ უნდა გქონდეთ root წვდომა.
შენიშვნა ბირთვის გამართვის დროს, GPU შეჩერებულია და ვიდეო გამომავალი მიუწვდომელია თქვენს სამიზნე მანქანაზე. ამის გამო, თქვენ არ შეგიძლიათ გამართოთ GPU სამიზნე სისტემიდან, თუ სისტემის GPU ბარათი ასევე გამოიყენება გრაფიკული გამოსასვლელად. ამ შემთხვევაში, დაუკავშირდით მანქანას ssh-ის საშუალებით.
1. თუ თქვენ აპირებთ GPU-ზე გამართვას, საჭიროა Linux-ის ბირთვი, რომელიც მხარს უჭერს GPU-ს გამართვას.
a. მიჰყევით ინსტრუქციებს მისამართზე Intel® პროგრამული უზრუნველყოფა ზოგადი დანიშნულების GPU შესაძლებლობებისთვის ჩამოტვირთეთ და დააინსტალირეთ საჭირო დრაივერები.
b. ჩართეთ i915 გამართვის მხარდაჭერა Kernel-ში:
a. გახსენით ტერმინალი.
b. გახსენით გრუბი file /etc/default-ში.
c. გრუბში file, იპოვეთ ხაზი GRUB_CMDLINE_LINUX_DEFAULT=””.
d. შეიყვანეთ შემდეგი ტექსტი ბრჭყალებს შორის (“”):
i915.debug_eu=1
შენიშვნა ნაგულისხმევად, GPU-ს დრაივერი არ იძლევა სამუშაო დატვირთვის გაშვებას GPU-ზე გარკვეულ დროზე მეტი ხნის განმავლობაში. მძღოლი კლავს ასეთ ხანგრძლივ დატვირთვას GPU-ს გადატვირთვით, რათა თავიდან აიცილოს დაკიდება. დრაივერის hangcheck მექანიზმი გამორთულია, თუ აპლიკაცია მუშაობს გამართვის ქვეშ. თუ თქვენ გეგმავთ ხანგრძლივი გამოთვლითი დატვირთვების გაშვებას ასევე გამართვის გარეშე, განიხილეთ განაცხადის გამოყენება GPU: გამორთეთ Hangcheck დამატებით
i915.enable_hangcheck=0
იმავეს GRUB_CMDLINE_LINUX_DEFAULT ხაზი.
c. განაახლეთ GRUB ამ ცვლილებების ძალაში შესვლისთვის:
sudo განახლება-გრუბი
d. გადატვირთვა.
2. დააყენეთ თქვენი CLI გარემო თქვენი ინსტრუმენტარიუმის ინსტალაციის ძირში მდებარე setvars სკრიპტის მოძიებით.
Linux (sudo):
წყარო /opt/intel/oneapi/setvars.sh
Linux (მომხმარებელი):
წყარო ~/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 –ფილტრის debugger_sys_check -force
კარგად კონფიგურირებული სისტემის შესაძლო გამოსავალი შემდეგია:
…
ამოწმებს შედეგებს:
=================================================== ================================
შეამოწმეთ სახელი: debugger_sys_check
აღწერა: ეს შემოწმება ადასტურებს, არის თუ არა გარემო მზად გამოსაყენებლად gdb (Intel(R) Distribution for 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…
შეადგინეთ პროგრამა გამართვის ინფორმაციით
შეგიძლიათ გამოიყენოთ სampპროექტი, Array Transform, რათა სწრაფად დაიწყოთ აპლიკაციის გამართვა.
1. მისაღებად სampაირჩიე რომელიმე შემდეგი გზა:
- გამოიყენეთ oneAPI CLI Samples ბრაუზერი რათა აირჩიოთ Array Transform კატეგორიიდან Getting Started.
- ჩამოტვირთეთ დან GitHub*.
2. გადადით src-ზეampპროექტი:
cd array-transform/src
3. შეადგინეთ აპლიკაცია გამართვის ინფორმაციის ჩართვით (-g flag) და გამორთეთ ოპტიმიზაცია (-O0 დროშა).
ოპტიმიზაციის გამორთვა რეკომენდებულია სტაბილური და ზუსტი გამართვის გარემოსთვის. ეს დაგეხმარებათ თავიდან აიცილოთ დაბნეულობა, რომელიც გამოწვეულია კოდის ცვლილებებით შემდგენელის ოპტიმიზაციის შემდეგ.
შენიშვნა თქვენ მაინც შეგიძლიათ შეადგინოთ პროგრამა ჩართული ოპტიმიზაციის საშუალებით (-O2 დროშა), რაც შეიძლება სასარგებლო იყოს, თუ თქვენ მიზნად ისახავთ GPU ასამბლეის გამართვას.
თქვენ შეგიძლიათ შეადგინოთ პროგრამა რამდენიმე გზით. 1 და 2 ვარიანტები იყენებენ მხოლოდ დროში (JIT) კომპილაციას, რომელიც რეკომენდებულია s-ის გამართვისთვისampლე. ვარიანტი 3 იყენებს წინასწარ (AOT) კომპილაციას.
- ვარიანტი 1. შეგიძლიათ გამოიყენოთ CMake file აპლიკაციის კონფიგურაციისა და შესაქმნელად. იხილეთ წაიკითხეთ სampინსტრუქციებისთვის.
შენიშვნა CMake file უზრუნველყოფილია სample უკვე გადის -g -O0 დროშებს.
- ვარიანტი 2. შედგენა array-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 მასივი-ტრანსფორმაცია.o -o მასივი-გარდაქმნა
- ვარიანტი 3. შეგიძლიათ გამოიყენოთ AOT კომპილაცია, რათა თავიდან აიცილოთ JIT შედგენის უფრო გრძელი დრო გაშვების დროს. JIT კომპილაციას შეიძლება მნიშვნელოვნად მეტი დრო დასჭირდეს გამართვის ქვეშ მყოფი დიდი ბირთვებისთვის. წინასწარი შედგენის რეჟიმის გამოსაყენებლად:
• GPU-ზე გამართვისთვის:
მიუთითეთ მოწყობილობა, რომელსაც გამოიყენებთ პროგრამის შესასრულებლად. მაგample, -device dg2-g10 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 ოფლაინ შემდგენელი (OCLOC)“. ინსტალაციის სახელმძღვანელო.
• CPU-ზე გამართვისთვის:
icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform
გამართვის სესიის დაწყება
გამართვის სესიის დაწყება:
1. დაიწყეთ Intel® Distribution for GDB* შემდეგნაირად:
gdb-oneapi მასივი-ტრანსფორმაცია
თქვენ უნდა ნახოთ (gdb) მოთხოვნა.
2. იმისათვის, რომ დარწმუნდეთ, რომ ბირთვი გადმოტვირთულია სწორ მოწყობილობაზე, შეასრულეთ შემდეგი ნაბიჯები. როდესაც თქვენ ასრულებთ run ბრძანებას (gdb) ბრძანებიდან, გაიარეთ პროცესორი, gpu or ამაჩქარებელი არგუმენტი:
- CPU-ზე გამართვისთვის:
გაუშვით CPU
Exampგამომავალი:
[SYCL] მოწყობილობის გამოყენებით: [Intel(R) Core(TM) i7-9750H CPU @ 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 Emulation Device] [Intel(R) FPGA Emulation Platform for OpenCL(TM) პროგრამული უზრუნველყოფისთვის]შენიშვნა Cpu, gpu და ამაჩქარებლის პარამეტრები სპეციფიკურია Array Transform აპლიკაციისთვის.
3. Intel® Distribution-ის გასასვლელად GDB*-ისთვის:
დატოვა
თქვენი მოხერხებულობისთვის, Intel® Distribution for GDB* ბრძანებები მოწოდებულია საცნობარო ფურცელი.
Array Transform-ის გამართვის მიზნით სampშეიტყვეთ მეტი 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 ინსტრუმენტთა ნაკრების შესახებ და სასარგებლო რესურსების ბმულებს. |
Intel® Distribution for GDB* Reference Sheet | ეს ერთგვერდიანი დოკუმენტი მოკლედ აღწერს Intel® Distribution-ს GDB* წინაპირობებისა და სასარგებლო ბრძანებებისთვის. |
იაკობი სample | ამ პატარა SYCL* აპლიკაციას აქვს ორი ვერსია: შეცდომით და დაფიქსირებული. გამოიყენეთ სampგანახორციელეთ აპლიკაციის გამართვა Intel® Distribution-ით GDB*-ისთვის. |
შეტყობინებები და პასუხისმგებლობის შეზღუდვები
Intel ტექნოლოგიებმა შეიძლება მოითხოვონ ჩართული აპარატურა, პროგრამული უზრუნველყოფა ან მომსახურების გააქტიურება.
არცერთი პროდუქტი ან კომპონენტი არ შეიძლება იყოს აბსოლუტურად უსაფრთხო.
თქვენი ხარჯები და შედეგები შეიძლება განსხვავდებოდეს.
© Intel Corporation. Intel, Intel-ის ლოგო და სხვა Intel ნიშნები არის Intel Corporation-ის ან მისი შვილობილი კომპანიების სავაჭრო ნიშნები. სხვა სახელები და ბრენდები შეიძლება მოითხოვონ, როგორც სხვების საკუთრება.
ამ დოკუმენტით არანაირი ლიცენზია (გამოხატული ან ნაგულისხმევი, ესტოპელის ან სხვაგვარად) რაიმე ინტელექტუალური საკუთრების უფლებაზე არ არის გაცემული.
აღწერილი პროდუქტები შეიძლება შეიცავდეს დიზაინის დეფექტებს ან შეცდომებს, რომლებიც ცნობილია როგორც შეცდომა, რამაც შეიძლება გამოიწვიოს პროდუქტის გადახრა გამოქვეყნებული სპეციფიკაციებისგან. მიმდინარე დახასიათებული შეცდომები ხელმისაწვდომია მოთხოვნით.
Intel უარს ამბობს ყველა მკაფიო და ნაგულისხმევ გარანტიებზე, მათ შორის, შეუზღუდავად, ნაგულისხმევი გარანტიები ვაჭრობის, კონკრეტული მიზნისთვის ვარგისიანობისა და არადარღვევის შესახებ, ისევე როგორც ნებისმიერი გარანტია, რომელიც წარმოიქმნება შესრულების კურსიდან, გარიგების კურსიდან ან ვაჭრობაში გამოყენებისგან.
OpenCL და OpenCL ლოგო არის Apple Inc.-ის სავაჭრო ნიშნები, რომლებიც გამოიყენება Khronos-ის ნებართვით.
დოკუმენტები / რესურსები
![]() |
intel Distribution for GDB Linux OS Host-ზე [pdf] მომხმარებლის სახელმძღვანელო დისტრიბუცია GDB-სთვის Linux OS ჰოსტზე, GDB Linux OS ჰოსტზე, Linux OS ჰოსტზე, OS ჰოსტზე, მასპინძელზე |