ចាប់ផ្តើមជាមួយ Intel® Distribution សម្រាប់ GDB* នៅលើ Linux* OS Host
ចាប់ផ្តើមប្រើប្រាស់ Intel® Distribution សម្រាប់ GDB* សម្រាប់កម្មវិធីបំបាត់កំហុស។ សូមអនុវត្តតាមការណែនាំខាងក្រោម ដើម្បីដំឡើងកម្មវិធីបំបាត់កំហុស ដើម្បីបំបាត់កំហុសកម្មវិធីជាមួយខឺណែលដែលផ្ទុកទៅឧបករណ៍ CPU និង GPU។
Intel® Distribution for GDB* គឺអាចរកបានជាផ្នែកនៃ Intel® oneAPI Base Toolkit។ សម្រាប់ព័ត៌មានបន្ថែមអំពីប្រអប់ឧបករណ៍ OneAPI សូមចូលទៅកាន់គេហទំព័រ ទំព័រផលិតផល.
ទស្សនា កំណត់ចំណាំចេញផ្សាយ ទំព័រសម្រាប់ព័ត៌មានអំពីសមត្ថភាពសំខាន់ៗ មុខងារថ្មីៗ និងបញ្ហាដែលគេស្គាល់។
អ្នកអាចប្រើ SYCL * sample code, Array Transform ដើម្បីចាប់ផ្តើមជាមួយ Intel® Distribution for GDB*។ សample មិនបង្កើតកំហុសទេ ហើយគ្រាន់តែបង្ហាញពីលក្ខណៈពិសេសបំបាត់កំហុស។ កូដដំណើរការធាតុនៃអារេបញ្ចូល អាស្រ័យលើថាតើពួកវាជាគូ ឬសេស ហើយបង្កើតអារេលទ្ធផល។ អ្នកអាចប្រើ sampដើម្បីបំបាត់កំហុសទាំង CPU ឬ GPU ដោយបញ្ជាក់ឧបករណ៍ដែលបានជ្រើសរើសតាមរយៈអាគុយម៉ង់បន្ទាត់ពាក្យបញ្ជា។ ចំណាំថាការកែកំហុស GPU អាចត្រូវការប្រព័ន្ធពីរ និងការកំណត់រចនាសម្ព័ន្ធបន្ថែមសម្រាប់ការបំបាត់កំហុសពីចម្ងាយ។
តម្រូវការជាមុន
ប្រសិនបើអ្នកមានបំណងបំបាត់កំហុសនៅលើ GPU សូមដំឡើងកម្មវិធីបញ្ជា GPU ចុងក្រោយបំផុត ហើយកំណត់រចនាសម្ព័ន្ធប្រព័ន្ធរបស់អ្នកដើម្បីប្រើវា។ យោងទៅ ការណែនាំអំពីការដំឡើងប្រអប់ឧបករណ៍ Intel® oneAPI សម្រាប់ Linux* OS. ធ្វើតាមការណែនាំ ដំឡើង Intel GPU Drivers ដើម្បីដំឡើងកម្មវិធីបញ្ជា GPU ដែលត្រូវគ្នានឹងប្រព័ន្ធរបស់អ្នក។
លើសពីនេះទៀត អ្នកអាចដំឡើងផ្នែកបន្ថែមសម្រាប់ Visual Studio Code* សម្រាប់បំបាត់កំហុស GPU ជាមួយ Intel® Distribution for GDB*។ យោងទៅ ការប្រើប្រាស់ Visual Studio Code ជាមួយ Intel® oneAPI Toolkits Guide.
ដំឡើង GPU Debugger
ដើម្បីដំឡើងកម្មវិធីបំបាត់កំហុស GPU អ្នកត្រូវតែមានសិទ្ធិជា root ។
ចំណាំ កំឡុងពេលកែកំហុសខឺណែល GPU ត្រូវបានបញ្ឈប់ ហើយលទ្ធផលវីដេអូមិនអាចប្រើបាននៅលើម៉ាស៊ីនគោលដៅរបស់អ្នក។ ដោយសារតែនេះ អ្នកមិនអាចបំបាត់កំហុស GPU ពីប្រព័ន្ធគោលដៅបានទេ ប្រសិនបើកាត GPU នៃប្រព័ន្ធនេះក៏ត្រូវបានប្រើសម្រាប់លទ្ធផលក្រាហ្វិកផងដែរ។ ក្នុងករណីនេះភ្ជាប់ទៅម៉ាស៊ីនតាមរយៈ ssh ។
1. ប្រសិនបើអ្នកមានបំណងបំបាត់កំហុសនៅលើ GPU នោះ Linux Kernel ដែលគាំទ្រការកែកំហុស GPU គឺចាំបាច់។
a. អនុវត្តតាមការណែនាំនៅ កម្មវិធី Intel® សម្រាប់សមត្ថភាព GPU គោលបំណងទូទៅ ដើម្បីទាញយក និងដំឡើងកម្មវិធីបញ្ជាចាំបាច់។
b. បើកដំណើរការការគាំទ្រការបំបាត់កំហុស i915 នៅក្នុងខឺណែល៖
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 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 for GDB*) ដែរឬទេ។
ស្ថានភាពលទ្ធផល៖ PASS
បានរកឃើញកម្មវិធីបំបាត់កំហុស។
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 …
ចងក្រងកម្មវិធីជាមួយនឹងព័ត៌មានបំបាត់កំហុស
អ្នកអាចប្រើ sample project, Array Transform ដើម្បីចាប់ផ្តើមយ៉ាងឆាប់រហ័សជាមួយនឹងកម្មវិធីបំបាត់កំហុសកម្មវិធី។
1. ដើម្បីទទួលបាន សample, ជ្រើសរើសវិធីណាមួយខាងក្រោម៖
- ប្រើ OneAPI CLI Samples កម្មវិធីរុករក ដើម្បីជ្រើសរើស Array Transform ពីប្រភេទ Getting Started។
- ទាញយកពី GitHub*.
2. រុករកទៅ src នៃ sampគម្រោង៖
អារេស៊ីឌី - ផ្លាស់ប្តូរ / src
3. ចងក្រងកម្មវិធីដោយបើកដំណើរការព័ត៌មានបំបាត់កំហុស (-g flag) និងបិទការបង្កើនប្រសិទ្ធភាព (-O0 flag)។
ការបិទការបង្កើនប្រសិទ្ធភាពត្រូវបានណែនាំសម្រាប់បរិស្ថានបំបាត់កំហុសដែលមានស្ថេរភាព និងត្រឹមត្រូវ។ វាជួយជៀសវាងការភ័ន្តច្រឡំដែលបណ្តាលមកពីការផ្លាស់ប្តូរកូដបន្ទាប់ពីការបង្កើនប្រសិទ្ធភាពកម្មវិធីចងក្រង។
ចំណាំ អ្នកនៅតែអាចចងក្រងកម្មវិធីដោយបើកការបង្កើនប្រសិទ្ធភាព (ទង់-O2) ដែលអាចមានប្រយោជន៍ប្រសិនបើអ្នកមានបំណងចង់កែកំហុសការជួបប្រជុំ GPU។
អ្នកអាចចងក្រងកម្មវិធីតាមវិធីជាច្រើន។ ជម្រើសទី 1 និង 2 ប្រើការចងក្រងតាមពេលវេលា (JIT) ដែលត្រូវបានណែនាំដើម្បីបំបាត់កំហុស sampលេ ជម្រើសទី 3 ប្រើការចងក្រងមុនម៉ោង (AOT) ។
- ជម្រើស 1. អ្នកអាចប្រើ CMake file ដើម្បីកំណត់រចនាសម្ព័ន្ធ និងបង្កើតកម្មវិធី។ យោងទៅ អានME នៃ sample សម្រាប់ការណែនាំ។
ចំណាំ ស៊ីម៉ាក់ file បានផ្តល់ជាមួយ sample បានឆ្លងកាត់ទង់ -g -O0 រួចហើយ។
- ជម្រើស 2. ដើម្បីចងក្រង array-transform.cpp sample កម្មវិធីដោយគ្មាន CMake fileចេញពាក្យបញ្ជាដូចខាងក្រោមៈ
icpx -fsycl -g -O0 array-transform.cpp -o array-transform
ប្រសិនបើការចងក្រង និងការភ្ជាប់ត្រូវបានធ្វើដោយឡែកពីគ្នា សូមរក្សាទង់ -g -O0 នៅជំហានតំណ។ ជំហាននៃតំណភ្ជាប់គឺនៅពេលដែល icpx បកប្រែទង់ទាំងនេះដើម្បីបញ្ជូនទៅអ្នកចងក្រងឧបករណ៍នៅពេលដំណើរការ។ ឧampលេ៖
icpx -fsycl -g -O0 -c អារេ-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform
- ជម្រើសទី 3. អ្នកអាចប្រើការចងក្រង AOT ដើម្បីជៀសវាងការចងក្រង JIT យូរជាងពេលដំណើរការ។ ការចងក្រង JIT អាចចំណាយពេលយូរជាងសម្រាប់ខឺណែលធំនៅក្រោមកម្មវិធីបំបាត់កំហុស។ ដើម្បីប្រើរបៀបចងក្រងមុនម៉ោង៖
• សម្រាប់ការកែកំហុសនៅលើ GPU៖
បញ្ជាក់ឧបករណ៍ដែលអ្នកនឹងប្រើសម្រាប់ដំណើរការកម្មវិធី។ សម្រាប់អតីតample, -device dg2-g10 សម្រាប់ Intel® Data Center GPU Flex 140 ក្រាហ្វិក។ សម្រាប់បញ្ជីនៃជម្រើសដែលបានគាំទ្រ និងព័ត៌មានបន្ថែមស្តីពីការចងក្រង AOT សូមមើល មគ្គុទ្ទេសក៍អ្នកបង្កើតកម្មវិធីចងក្រង Intel® oneAPI DPC++ និងឯកសារយោង.
សម្រាប់អតីតampលេ៖
icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs “-device dg2-g10” array-transform.cpp -o arraytransform
ការចងក្រងមុនម៉ោងទាមទារ OpenCLTM Offline Compiler (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 array-transform
អ្នកគួរតែឃើញប្រអប់បញ្ចូល (gdb) ។
2. ដើម្បីប្រាកដថាខឺណែលត្រូវបានបិទទៅឧបករណ៍ត្រឹមត្រូវ សូមធ្វើជំហានខាងក្រោម។ នៅពេលអ្នកប្រតិបត្តិពាក្យបញ្ជារត់ពីប្រអប់បញ្ចូល (gdb) ឆ្លងកាត់ ស៊ីភីយូ, ជីភីយូ 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-emulator៖
រត់ឧបករណ៍បង្កើនល្បឿន
Exampលទ្ធផល៖
[SYCL] ការប្រើប្រាស់ឧបករណ៍៖ [Intel(R) FPGA Emulation Device] ពី [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]ចំណាំ ប៉ារ៉ាម៉ែត្រ cpu, gpu, និង accelerator គឺជាក់លាក់ចំពោះកម្មវិធី Array Transform ។
3. ដើម្បីចាកចេញពី Intel® Distribution សម្រាប់ GDB*៖
ឈប់
ដើម្បីភាពងាយស្រួលរបស់អ្នក ការចែកចាយ Intel® ទូទៅសម្រាប់ពាក្យបញ្ជា GDB* ត្រូវបានផ្តល់ជូននៅក្នុង សន្លឹកឯកសារយោង.
ដើម្បីបំបាត់កំហុស Array Transform sample និងស្វែងយល់បន្ថែមអំពី Intel® Distribution for GDB* ដើរតាមសេណារីយ៉ូបំបាត់កំហុសជាមូលដ្ឋានដោយប្រើ ការបង្រៀន.
ស្វែងយល់បន្ថែម
ឯកសារ | ការពិពណ៌នា |
ការបង្រៀន៖ ការបំបាត់កំហុសជាមួយ Intel® Distribution សម្រាប់ GDB* | ឯកសារនេះពិពណ៌នាអំពីសេណារីយ៉ូជាមូលដ្ឋានដែលត្រូវអនុវត្តតាម ខណៈពេលដែលកំពុងបំបាត់កំហុស SYCL* និង OpenCL ជាមួយ Intel® Distribution for GDB*។ |
Intel® Distribution សម្រាប់ GDB* មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់ | ឯកសារនេះពិពណ៌នាអំពីកិច្ចការទូទៅទាំងអស់ដែលអ្នកអាចបំពេញជាមួយ Intel® Distribution for GDB* និងផ្តល់នូវព័ត៌មានលម្អិតបច្ចេកទេសចាំបាច់។ |
Intel® Distribution សម្រាប់ GDB* Release Notes | កំណត់ចំណាំមានព័ត៌មានអំពីសមត្ថភាពសំខាន់ៗ មុខងារថ្មីៗ និងបញ្ហាដែលគេស្គាល់ថា Intel® Distribution for GDB*។ |
ទំព័រផលិតផល oneAPI | ទំព័រនេះមានការណែនាំខ្លីៗអំពីកញ្ចប់ឧបករណ៍ OneAPI និងតំណភ្ជាប់ទៅកាន់ធនធានដែលមានប្រយោជន៍។ |
Intel® Distribution សម្រាប់ GDB* Reference Sheet | ឯកសារមួយទំព័រនេះពិពណ៌នាយ៉ាងខ្លីអំពីការចែកចាយ Intel® សម្រាប់តម្រូវការជាមុនរបស់ GDB* និងពាក្យបញ្ជាដែលមានប្រយោជន៍។ |
លោក Jacobi Sample | កម្មវិធី SYCL* តូចនេះមានពីរកំណែ៖ មានបញ្ហា និងជួសជុល។ ប្រើ sampដើម្បីអនុវត្តការបំបាត់កំហុសកម្មវិធីជាមួយ Intel® Distribution សម្រាប់ GDB*។ |
សេចក្តីជូនដំណឹង និងការបដិសេធ
បច្ចេកវិទ្យារបស់ Intel ប្រហែលជា តម្រូវឲ្យ មានផ្នែករឹង, សូហ្វវែរឬសេវាកម្មដែលអាចដំណើរការបាន។
គ្មានផលិតផល ឬសមាសធាតុណាមួយអាចធានាបានដាច់ខាត។
ការចំណាយ និងលទ្ធផលរបស់អ្នកអាចប្រែប្រួល។
© សាជីវកម្ម Intel ។ Intel, និមិត្តសញ្ញា Intel និងសញ្ញា Intel ផ្សេងទៀតគឺជាពាណិជ្ជសញ្ញារបស់ Intel Corporation ឬក្រុមហ៊ុនបុត្រសម្ព័ន្ធរបស់ខ្លួន។ ឈ្មោះ និងម៉ាកផ្សេងទៀតអាចត្រូវបានអះអាងថាជាកម្មសិទ្ធិរបស់អ្នកដទៃ។
គ្មានអាជ្ញាប័ណ្ណ (បញ្ជាក់ ឬបង្កប់ន័យដោយបិទបាំង ឬបើមិនដូច្នេះទេ) ចំពោះកម្មសិទ្ធិបញ្ញាណាមួយត្រូវបានផ្តល់ដោយឯកសារនេះ។
ផលិតផលដែលបានពិពណ៌នាអាចមានពិការភាពក្នុងការរចនា ឬកំហុសដែលគេស្គាល់ថាជា errata ដែលអាចបណ្តាលឱ្យផលិតផលខុសពីលក្ខណៈបច្ចេកទេសដែលបានបោះពុម្ពផ្សាយ។ កំហុសកំណត់លក្ខណៈបច្ចុប្បន្នអាចរកបានតាមការស្នើសុំ។
Intel បដិសេធរាល់ការធានាដោយប្រយោល និងដោយប្រយោល រួមទាំងដោយគ្មានដែនកំណត់ ការធានាដោយបង្កប់ន័យនៃភាពអាចធ្វើពាណិជ្ជកម្ម ភាពរឹងមាំសម្រាប់គោលបំណងជាក់លាក់មួយ និងការមិនរំលោភបំពាន ព្រមទាំងការធានាណាមួយដែលកើតឡើងពីដំណើរការដំណើរការ វគ្គនៃការជួញដូរ ឬការប្រើប្រាស់ក្នុងពាណិជ្ជកម្ម។
OpenCL និងនិមិត្តសញ្ញា OpenCL គឺជាពាណិជ្ជសញ្ញារបស់ក្រុមហ៊ុន Apple Inc. ដែលត្រូវបានប្រើប្រាស់ដោយការអនុញ្ញាតដោយ Khronos ។
ឯកសារ/ធនធាន
![]() |
ការចែកចាយ Intel សម្រាប់ GDB នៅលើ Linux OS Host [pdf] ការណែនាំអ្នកប្រើប្រាស់ ការចែកចាយសម្រាប់ GDB នៅលើ Linux OS Host, GDB នៅលើ Linux OS Host, Linux OS Host, OS Host, Host |