AN 824 FPGA SDK សម្រាប់ក្រុមប្រឹក្សាភិបាល OpenCL
កញ្ចប់គាំទ្រផែនការជាន់
ការណែនាំអ្នកប្រើប្រាស់
Intel® FPGA SDK សម្រាប់ OpenCL ™ មគ្គុទ្ទេសក៍ការបង្កើនប្រសិទ្ធភាពផែនការជាន់លើកញ្ចប់គាំទ្រ
Intel/® FPGA SDK សម្រាប់ OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide ផ្តល់គោលការណ៍ណែនាំសម្រាប់ការធ្វើផែនការជាន់សម្រាប់ OpenCL) BSP ។ វាក៏ផ្តល់នូវការណែនាំអំពីរបៀបដែលអ្នកអាចទទួលបានគ្រាប់ពូជមូលដ្ឋានជាមួយនឹងប្រេកង់ប្រតិបត្តិការជាមធ្យមល្អបំផុត និងវាយតម្លៃប្រសិទ្ធភាពនៃការប្រើប្រាស់ធនធាន BSP ។
ឯកសារនេះសន្មត់ថាអ្នកស៊ាំជាមួយគំនិត OpenCL(2) ដូចដែលបានពិពណ៌នានៅក្នុង OpenCL Specification version 1.0 ដោយ Khronos Group។
លំហូរការចងក្រង OpenCL BSP
OpenCL BSP គាំទ្រប្រភេទលំហូរចងក្រងខាងក្រោម៖
- Flat compile [–bsp-flow flat]៖ អនុវត្តការចងក្រងសំប៉ែតនៃការរចនាទាំងមូល (BSP រួមជាមួយផ្នែករឹងដែលបង្កើតខឺណែល)។
- ការចងក្រងមូលដ្ឋាន [–bsp-flow base]៖ អនុវត្តការចងក្រងមូលដ្ឋានដោយប្រើការរឹតបន្តឹង LogicLock ពី base.qsf file. គោលដៅនាឡិកាខឺណែលត្រូវបានបន្ធូរបន្ថយ ដើម្បីឱ្យផ្នែករឹង BSP មានសេរីភាពកាន់តែច្រើនក្នុងការបំពេញតាមពេលវេលា។ មូលដ្ឋានទិន្នន័យ base.qar ត្រូវបានបង្កើតឡើងដើម្បីការពារផ្នែករឹង BSP ដែលជាតំបន់ឋិតិវន្ត។
- នាំចូលចងក្រង [ ]៖ ស្តារតំបន់ឋិតិវន្តដែលបានបិទពេលវេលាពីមូលដ្ឋានទិន្នន័យ base.qar និងចងក្រងតែផ្នែករឹងដែលបានបង្កើតខឺណែលប៉ុណ្ណោះ។ វាក៏បង្កើនគោលដៅនាឡិកាខឺណែល ដើម្បីទទួលបានប្រេកង់ប្រតិបត្តិការអតិបរមារបស់ខឺណែលល្អបំផុត (fmax)។
ភាគថាស OpenCL BSP Floorplan
ផែនការជាន់លើ OpenCL BSP ត្រូវបានបែងចែកជាចម្បងទៅជាតំបន់ពីរដូចខាងក្រោម៖
- តំបន់ឋិតិវន្ត៖ តំណាងឱ្យតំបន់ដែលមានផ្នែករឹងដែលទាក់ទងនឹង BSP ដែលនៅតែឋិតិវន្ត។ ពេលវេលាត្រូវបានបិទសម្រាប់តំបន់នេះកំឡុងពេលចងក្រងមូលដ្ឋាន។ ជាទូទៅ គោលដៅគឺដើម្បីកាត់បន្ថយធនធានបន្ទះឈីបដែលប្រើប្រាស់ដោយតំបន់នេះ ដើម្បីបិទពេលវេលា។
- តំបន់ខឺណែល៖ តំណាងឱ្យតំបន់កំណត់រចនាសម្ព័ន្ធឡើងវិញដោយផ្នែក (PR) ដែលត្រូវបានបម្រុងទុកសម្រាប់ម៉ូឌុល freeze_wrapper_inst|kernel_system_inst ដែលមានខឺណែល។ ជាទូទៅ គោលដៅគឺដើម្បីបម្រុងទុកធនធានបន្ទះឈីបដល់កម្រិតអតិបរមាសម្រាប់តំបន់នេះ។
- Intel FPGA SDK សម្រាប់ OpenCL គឺផ្អែកលើការបញ្ជាក់របស់ Khronos ដែលបានបោះពុម្ពផ្សាយ ហើយបានឆ្លងកាត់ដំណើរការសាកល្បងការអនុលោមតាម Khronos ។ ស្ថានភាពអនុលោមតាមបច្ចុប្បន្នអាចរកបាននៅ www.khronos.org/conformance.
- OpenCL និងនិមិត្តសញ្ញា OpenCL គឺជាពាណិជ្ជសញ្ញារបស់ក្រុមហ៊ុន Apple Inc. ហើយត្រូវបានប្រើប្រាស់ដោយការអនុញ្ញាតពី Khronos Group™។
សាជីវកម្ម Intel ។ រក្សារសិទ្ធគ្រប់យ៉ាង។ Intel, និមិត្តសញ្ញា Intel និងសញ្ញា Intel ផ្សេងទៀតគឺជាពាណិជ្ជសញ្ញារបស់ Intel Corporation ឬក្រុមហ៊ុនបុត្រសម្ព័ន្ធរបស់ខ្លួន។ Intel ធានាការអនុវត្តផលិតផល FPGA និង semiconductor របស់ខ្លួនទៅនឹងលក្ខណៈបច្ចេកទេសបច្ចុប្បន្នស្របតាមការធានាស្តង់ដាររបស់ Intel ប៉ុន្តែរក្សាសិទ្ធិក្នុងការផ្លាស់ប្តូរផលិតផល និងសេវាកម្មណាមួយនៅពេលណាមួយដោយមិនមានការជូនដំណឹងជាមុន។ Intel សន្មត់ថាគ្មានទំនួលខុសត្រូវ ឬការទទួលខុសត្រូវដែលកើតចេញពីកម្មវិធី ឬការប្រើប្រាស់ព័ត៌មាន ផលិតផល ឬសេវាកម្មណាមួយដែលបានពិពណ៌នានៅទីនេះ លើកលែងតែមានការយល់ព្រមជាលាយលក្ខណ៍អក្សរដោយ Intel ។ អតិថិជនរបស់ Intel ត្រូវបានណែនាំឱ្យទទួលបានកំណែចុងក្រោយបំផុតនៃលក្ខណៈបច្ចេកទេសឧបករណ៍ មុនពេលពឹងផ្អែកលើព័ត៌មានដែលបានបោះពុម្ពផ្សាយណាមួយ និងមុនពេលធ្វើការបញ្ជាទិញផលិតផល ឬសេវាកម្ម។
*ឈ្មោះ និងម៉ាកផ្សេងទៀតអាចត្រូវបានទាមទារជាកម្មសិទ្ធិរបស់អ្នកដទៃ។
គោលការណ៍ណែនាំសម្រាប់ការធ្វើផែនការជាន់ OpenCL BSP
- ចាប់ផ្តើមជាមួយនឹងការចងក្រងសំប៉ែត ដើម្បីយល់ពីកន្លែងដែលសមាសធាតុសំខាន់ៗទាំងអស់នៃ BSP ត្រូវបានដាក់ដោយធម្មជាតិ (ជាពិសេសប្លុក IP ជាមួយនឹងការតភ្ជាប់ I/O ដូចជា PCIe ឬ DDR)។ ខណៈពេលដែលរចនា BSP អ្នកប្រហែលជាត្រូវពិចារណាបង្កើតបំពង់បង្ហូរtagស្ថិតនៅចន្លោះ IPs ដើម្បីបិទពេលវេលា។ ដំបូងអ្នកគួរតែដំណើរការការបោសសំអាតគ្រាប់ពូជដែលចងក្រងសំប៉ែតដើម្បីកំណត់ផ្លូវដែលបរាជ័យដែលកើតឡើងដដែលៗ ហើយបន្ទាប់មកព្យាយាមជួសជុលពួកវា។
គន្លឹះ៖ - អត្រាបិទពេលវេលាដ៏ល្អលើការប្រមូលគ្រាប់ពូជរាបស្មើនឹងមានឱកាសខ្ពស់ក្នុងការបិទពេលវេលាចងក្រងមូលដ្ឋាន។
- ប្រសិនបើអ្នកសង្កេតឃើញការបរាជ័យជាប់លាប់នៅក្នុង mm_interconnect* (សមាសធាតុបន្ថែមដោយ Qsys) បន្ទាប់មកបើកប្រព័ន្ធជាមួយ Qsys Interconnect viewer និងសង្កេតមើលភាពស្មុគស្មាញនៃការតភ្ជាប់គ្នាដែលបរាជ័យ។ អ្នកអាចបន្ថែម flipflops បំពង់នៅក្នុង viewer ដើម្បីកែលម្អពេលវេលា។ ប្រសិនបើអ្នកនៅតែមិនអាចដោះស្រាយបញ្ហាបានទេ អ្នកប្រហែលជាត្រូវបំបែកផ្លូវសំខាន់ mm_interconnect* ដោយបន្ថែមស្ពានបំពង់ Avalon។ - កំឡុងពេលចងក្រងមូលដ្ឋាន ចាប់ផ្តើមជាមួយ LogicLock លើតំបន់ខឺណែលដែលមាន freeze_wrapper_inst|kernel_system_inst។ ដោយមិនមានការរឹតបន្តឹងផ្សេងទៀត Intel Quartus Prime អាចដាក់ផ្នែករឹង BSP ដោយសេរីនៅក្នុងតំបន់ឋិតិវន្តដែលនៅសល់នៃបន្ទះឈីប។ ប្រើកម្មវិធីចងក្រង និងបន្ទះសៀគ្វីរាបស្មើដើម្បីកំណត់ទំហំ និងទីតាំងនៃផ្នែករឹង BSP ដូចជា PCIe និង DDR ។ បន្ទាប់មក រក្សាទុកតំបន់ខឺណែលដោយប្រើ LogicLock ខណៈពេលដែលជៀសវាងតំបន់សំខាន់ៗនៃផ្នែករឹង BSP ។
គន្លឹះ៖ ប្រសិនបើឈីបដែលបានប្រើគឺដូចគ្នានឹងវេទិកាឯកសារយោង ហើយប្រសិនបើសមាសធាតុ BSP ស្រដៀងគ្នា វាអាចលឿនជាងមុនក្នុងការចាប់ផ្តើមជាមួយនឹងតំបន់ LogicLock សម្រាប់ freeze_wrapper_inst|kernel_system_inst ដែលត្រូវបានដឹកជញ្ជូនជាមួយ OpenCL reference BSP ហើយដំណើរការដោយការបរាជ័យ។ - អ្នកអាចបន្ថែមសមាសធាតុបន្ថែមខាងក្រោមទៅ BSP របស់អ្នក៖
- ធនាគារអង្គចងចាំ៖ ប្រសិនបើអ្នកបន្ថែមធនាគារអង្គចងចាំបន្ថែមទៀត អ្នកគួរតែកំណត់ទីតាំងធនាគារ I/O ចាប់តាំងពីអ្នកប្រហែលជាត្រូវបន្ថែមស្ពានបំពង់ដើម្បីបំពេញតាមពេលវេលា។
— ឆានែល I/O៖ អ្នកអាចបន្ថែមប៉ុស្តិ៍ I/O ដូចជាវីដេអូ អ៊ីសឺរណិត ឬចំណុចប្រទាក់សៀរៀល។ ប្រសិនបើអ្នកបន្ថែមបណ្តាញ I/O អ្នកគួរតែកំណត់ទីតាំងធនាគារ I/O ចាប់តាំងពីអ្នកប្រហែលជាត្រូវអនុវត្តតំបន់ LogicLock ថ្មីសម្រាប់ការដាក់បំពង់ ប្រសិនបើពេលវេលាបិទគឺពិបាក។
គន្លឹះ៖ ប្រសិនបើអ្នកត្រូវការបន្ថែមស្ពានបំពង់ (ឧទាហរណ៍ample ដោយសារតែការពន្យារផ្លូវធំដែលបណ្តាលឱ្យបរាជ័យក្នុងការកំណត់ពេលវេលា) បន្ទាប់មកពិចារណាពីចម្ងាយផ្លូវពីប្រភពទៅតក្កវិជ្ជាគោលដៅនៅក្នុងបន្ទះឈីប ហើយបញ្ចេញកន្លែងទំនេរមួយចំនួនដែលបានបម្រុងទុកសម្រាប់តំបន់ខឺណែល។ - អនុវត្តតាមគោលការណ៍ណែនាំទូទៅទាំងនេះ នៅពេលរក្សាទុកតំបន់ LogicLock សម្រាប់ខឺណែល៖
- ព្យាយាមដាក់ជួរឈរ DSP ទាំងអស់នៅក្នុងប្រព័ន្ធ kernel_ លុះត្រាតែទាមទារដោយ BSP ។
- ព្យាយាមបម្រុងទុកធនធានបន្ថែមសម្រាប់ប្រព័ន្ធខឺណែល។
- ព្យាយាមរក្សាចំនួនស្នាមរន្ធនៅក្នុងតំបន់ខឺណែលឱ្យនៅអប្បបរមា។
តួលេខខាងក្រោមបង្ហាញពីស្នាមរន្ធមួយដែលត្រូវបានបន្ថែមដើម្បីដាក់ស្ពានបំពង់រវាងធនាគារ PCIe និង DDR ។
រូបភាពទី 1. OpenCL BSP Floorplan សម្រាប់ Intel Arria® 10 GX នៅក្នុងការចេញផ្សាយ 17.0
គោលការណ៍ណែនាំសម្រាប់ប្រេកង់ប្រតិបត្តិការអតិបរមា
ប្រេកង់ប្រតិបត្តិការអតិបរមា (fmax) ដែលសម្រេចបានដោយខឺណែលភាគច្រើនអាស្រ័យលើល្បឿន FPGA ចាប់តាំងពី IPs ភាគច្រើនគួរតែត្រូវបានធ្វើឱ្យប្រសើររួចហើយ។ ទោះយ៉ាងណាក៏ដោយ វាអាចមានការបាត់បង់ fmax មួយចំនួនអាស្រ័យលើផែនការជាន់ BSP ។ សម្រាប់អតីតample ជាធម្មតាចំនួននៃការកាត់ចេញនៅក្នុងតំបន់ខឺណែលនៃ BSP ប៉ះពាល់ដល់ខឺណែល fmax ។
ដូចដែលបានបង្ហាញក្នុងរូបខាងក្រោម ដើម្បីទទួលបានគ្រាប់ពូជមូលដ្ឋានល្អបំផុតដែលផ្តល់ទិន្នផលជាមធ្យមល្អបំផុត fmax៖
- អនុវត្តការបោសសំអាតគ្រាប់ពូជនៅលើការចងក្រងមូលដ្ឋានជំនួសឱ្យការជ្រើសរើសគ្រាប់ពូជមូលដ្ឋានដំបូងដែលត្រូវនឹងពេលវេលា។
- អនុវត្តការចងក្រងនាំចូល (ដោយប្រើខឺណែលពីរបីពី ឧample រចនា) លើគ្រាប់ពូជមូលដ្ឋានឆ្លងកាត់ទាំងអស់។
- គណនា fmax ជាមធ្យមសម្រាប់គ្រាប់ពូជមូលដ្ឋានទាំងអស់។
- ជ្រើសរើសពូជមូលដ្ឋានដែលផ្តល់ទិន្នផលជាមធ្យមខ្ពស់បំផុត។
គ្រាប់ពូជមូលដ្ឋានដែលមាន fmax ជាមធ្យមល្អបំផុតគឺជាបេក្ខជនដ៏ល្អសម្រាប់ការចេញផ្សាយជាមួយ BSP ។ ប្រសិនបើអ្នកសម្រេចចិត្តធ្វើតាមវិធីសាស្រ្តខុសពីជំហានដែលបានណែនាំ អ្នកអាចសង្កេតមើលការប្រែប្រួល 5-10% នៅក្នុង fmax នៃដំណើរការចងក្រងការនាំចូលខឺណែល។
រូបភាពទី 2. ការកំណត់ពូជមូលដ្ឋានល្អបំផុត
- ដើម្បីស្វែងយល់ថាតើខឺណែលអាចដំណើរការបានលឿនប៉ុនណា ដោយគ្មានការរឹតបន្តឹងលើផែនការជាន់៖
1. អនុវត្តការចងក្រងសំប៉ែតនៃខឺណែល ហើយសង្កេតមើល fmax ។
2. អនុវត្តការចងក្រងនាំចូលនៅលើខឺណែលដូចគ្នា ហើយសង្កេតមើល fmax ។
3. ប្រៀបធៀបលទ្ធផល fmax ។
ដោយសារការរឹតបន្តឹងលើផែនការជាន់ ការនាំចូលចងក្រង fmax តែងតែទាបជាងការចងក្រងរាបស្មើ។ ដើម្បីជៀសវាងសំលេងរំខានគ្រាប់ពូជ សូមចងក្រងខឺណែលជាមួយនឹងគ្រាប់ពូជមូលដ្ឋានបន្ថែមទៀត ហើយពិចារណាលើកម្រិតមធ្យម fmax ខណៈពេលដែលប្រៀបធៀបលទ្ធផល fmax ។ - កុំប្រៀបធៀបខឺណែល fmax ពីការចងក្រងមូលដ្ឋានជាមួយផ្ទះល្វែង ឬការចងក្រងនាំចូល។ គោលដៅនាឡិកាខឺណែលត្រូវបានបន្ធូរបន្ថយកំឡុងពេលចងក្រងមូលដ្ឋាន ហេតុដូច្នេះហើយ អ្នកនឹងមិនទទួលបានលទ្ធផលល្អទេ។
- សង្កេតមើលផ្លូវសំខាន់នៃនាឡិកាខឺណែលនៅក្នុងមូលដ្ឋាន ឬការចងក្រងនាំចូល។ ប្រសិនបើផ្លូវសំខាន់កំពុងឆ្លងកាត់ពីខឺណែលទៅតំបន់ឋិតិវន្តក្នុងប្លង់ជាន់ សូមផ្លាស់ប្តូរផែនការជាន់ ឬដំណើរការគ្រាប់ពូជមូលដ្ឋានពីរបីទៀត ដើម្បីជៀសវាងផ្លូវដ៏សំខាន់នេះ។
គោលការណ៍ណែនាំសម្រាប់ការវាយតម្លៃប្រសិទ្ធភាពនៃការប្រើប្រាស់ធនធាន BSP
ភាគរយនៃការប្រើប្រាស់ធនធានកាន់តែខ្ពស់។tage, ការប្រើប្រាស់តំបន់កាន់តែប្រសើរឡើងនៅក្នុងតំបន់ឋិតិវន្តនៃ BSP របស់អ្នក។ ភាគរយនៃការប្រើប្រាស់ធនធានខ្ពស់។tage ក៏បង្កប់ន័យថាមានធនធានកាន់តែច្រើនសម្រាប់តំបន់ខឺណែល។
អនុវត្តតាមជំហានខាងក្រោមដើម្បីគណនាការប្រើប្រាស់ធនធាន percentage នៃ BSP របស់អ្នក៖
- ទទួលបានតម្លៃសម្រាប់ធនធានទាំងអស់នៅក្នុង FPGA ពី top.fit.rpt ឬ base.fit.rpt ដែលមាននៅក្រោមផ្នែកស្ថិតិភាគនៃរបាយការណ៍ Fitter ។
- កាត់តម្លៃសម្រាប់ “freeze_wrapper_inst|kernel_system_inst” (តំបន់ខឺណែល)។
គន្លឹះ៖
ផ្តោតលើតម្លៃនៃម៉ូឌុលតក្កវិជ្ជាសម្របខ្លួន (ALM) ជាងតម្លៃនៃធនធានផ្សេងទៀត។ ត្រូវប្រាកដថាការប្រើប្រាស់ធនធាន percentage សម្រាប់ ALM គឺខិតទៅជិតឯកសារយោង OpenCL BSP ។ ភាគរយខ្ពស់ណាស់។tage សម្រាប់ ALM អាចនាំឱ្យមានការកកស្ទះ ដែលអាចបង្កើនពេលវេលាចងក្រង និងណែនាំការកកស្ទះផ្លូវនៅក្នុងខឺណែលស្មុគស្មាញ។ ទោះយ៉ាងណាក៏ដោយ អ្នកតែងតែអាចបង្កើន ឬបន្ថយតំបន់ឋិតិវន្ត ហើយសង្កេតមើលពេលវេលាចងក្រង និង fmax ។
តារាងខាងក្រោមឆ្លុះបញ្ចាំងពីការប្រើប្រាស់ធនធាន OpenCL BSP នៃឧបករណ៍ Arria ® 10 GX នៅក្នុងការចេញផ្សាយ 17.0 ។
តារាង 1 ។
ការប្រើប្រាស់ធនធាន OpenCL BSP នៃឧបករណ៍ IntelArria 10 GX នៅក្នុងការចេញផ្សាយ 17.0
សរុបដែលអាចប្រើបាន | បានបម្រុងទុកសម្រាប់ខឺណែល។ | មានសម្រាប់ BSP | ប្រើដោយ BSP | ៥/៥ | |
ALM | 427200 | 393800 | 33400 | ០១. | ៩៨. % |
ចុះឈ្មោះ | 1708800 | 1575200 | 133600 | 38913 | ៩៨. % |
M2 យល់ព្រម | 2713 | 2534 | 179 | 134 | ៩៨. % |
DSP | 1518 | 1518 | 0 | 0 | គ្មាន |
សង្កេតមើលថាការរៀបផែនការជាន់ត្រូវបានប្រតិបត្តិតាមរបៀបដែលតំបន់ឋិតិវន្តនឹងមិនមានប្លុក DSP ណាមួយឡើយ។
ប្រវត្តិនៃការកែប្រែឯកសារ
តារាង 2 ។
ប្រវត្តិនៃការកែប្រែឯកសាររបស់ Intel FPGA SDK សម្រាប់ OpenCL Board Support Package ការណែនាំបង្កើនប្រសិទ្ធភាព Floorplan
កាលបរិច្ឆេទ | កំណែ | ការផ្លាស់ប្តូរ |
សីហា-២៣ | ការចេញផ្សាយដំបូង។ |
កំណែអនឡាញ
ផ្ញើមតិកែលម្អ
លេខសម្គាល់៖ 683312
AN-824
កំណែ៖ 2017.08.08
AN 824៖ Intel® FPGA SDK សម្រាប់ OpenCL™ Board
ជំនួយការជួយណែនាំការបង្កើនប្រសិទ្ធភាពផែនការជាន់
ឯកសារ/ធនធាន
![]() |
intel AN 824 FPGA SDK សម្រាប់ OpenCL Board Support Package Floorplan [pdf] ការណែនាំអ្នកប្រើប្រាស់ AN 824 FPGA SDK សម្រាប់ផែនការជាន់នៃកញ្ចប់គាំទ្រក្រុមប្រឹក្សាភិបាល OpenCL, AN 824, FPGA SDK សម្រាប់កញ្ចប់គាំទ្រក្រុមប្រឹក្សាភិបាល OpenCL, ផែនការជំនួយក្រុមប្រឹក្សាភិបាល OpenCL, កញ្ចប់គាំទ្រក្តារបន្ទះ, ផែនការគាំទ្រកញ្ចប់, ផែនការជាន់កញ្ចប់, ផែនការជាន់ |