ओपनसीएल बोर्ड के लिए AN 824 FPGA SDK
सपोर्ट पैकेज फ्लोरप्लान
उपयोगकर्ता गाइड
Intel® FPGA SDK के लिए ओपनसीएल™ बोर्ड सपोर्ट पैकेज फ्लोरप्लान ऑप्टिमाइजेशन गाइड
ओपनसीएल™ बोर्ड सपोर्ट पैकेज (बीएसपी) फ्लोरप्लान ऑप्टिमाइजेशन गाइड के लिए इंटेल/® एफपीजीए एसडीके ओपनसीएल) बीएसपी के लिए फ्लोरप्लानिंग दिशानिर्देश प्रदान करता है। यह इस बारे में भी मार्गदर्शन प्रदान करता है कि आप सर्वश्रेष्ठ औसत अधिकतम ऑपरेटिंग आवृत्ति के साथ बेस सीड कैसे प्राप्त कर सकते हैं और बीएसपी संसाधन उपयोग दक्षता का मूल्यांकन कैसे कर सकते हैं।
यह दस्तावेज़ मानता है कि आप ओपनसीएल(2) अवधारणाओं से परिचित हैं जैसा कि क्रोनोस समूह द्वारा ओपनसीएल विनिर्देश संस्करण 1.0 में वर्णित है।
ओपनसीएल बीएसपी संकलन प्रवाह
ओपनसीएल बीएसपी निम्नलिखित प्रकार के संकलन प्रवाहों का समर्थन करता है:
- फ्लैट संकलन [–bsp-flow flat]: संपूर्ण डिज़ाइन (कर्नेल जनरेटेड हार्डवेयर के साथ BSP) का फ्लैट संकलन करता है।
- आधार संकलन [–bsp-flow base]: base.qsf से LogicLock प्रतिबंधों का उपयोग करके आधार संकलन निष्पादित करता है fileकर्नेल क्लॉक टारगेट को शिथिल किया जाता है ताकि BSP हार्डवेयर को टाइमिंग को पूरा करने की अधिक स्वतंत्रता मिले। BSP हार्डवेयर को संरक्षित करने के लिए एक base.qar डेटाबेस बनाया जाता है, जो स्थिर क्षेत्र है।
- आयात संकलन [ ]: बेस.qar डेटाबेस से टाइमिंग क्लोज्ड स्टैटिक क्षेत्र को पुनर्स्थापित करता है और केवल कर्नेल जनरेटेड हार्डवेयर को संकलित करता है। यह सर्वोत्तम कर्नेल अधिकतम ऑपरेटिंग आवृत्ति (fmax) प्राप्त करने के लिए कर्नेल क्लॉक लक्ष्य को भी बढ़ाता है।
ओपनसीएल बीएसपी फ्लोरप्लान विभाजन
ओपनसीएल बीएसपी फ्लोरप्लान मुख्य रूप से निम्नलिखित दो क्षेत्रों में विभाजित है:
- स्थिर क्षेत्र: BSP से संबंधित हार्डवेयर वाले क्षेत्र को दर्शाता है जो स्थिर रहता है। बेस संकलन के दौरान इस क्षेत्र के लिए समय बंद रहता है। सामान्य तौर पर, लक्ष्य समय को बंद करने के लिए इस क्षेत्र द्वारा उपयोग किए जाने वाले चिप संसाधनों को कम करना है।
- कर्नेल क्षेत्र: आंशिक पुनर्संरचना (PR) क्षेत्र को दर्शाता है जो freeze_wrapper_inst|kernel_system_inst मॉड्यूल के लिए आरक्षित है, जिसमें कर्नेल शामिल है। सामान्य तौर पर, लक्ष्य इस क्षेत्र के लिए अधिकतम सीमा तक चिप संसाधनों को आरक्षित करना है।
- OpenCL के लिए Intel FPGA SDK एक प्रकाशित ख्रोनोस विशिष्टता पर आधारित है, और ख्रोनोस अनुरूपता परीक्षण प्रक्रिया को पास कर चुका है। वर्तमान अनुरूपता स्थिति पर देखी जा सकती है www.khronos.org/conformance.
- ओपनसीएल और ओपनसीएल लोगो एप्पल इंक के ट्रेडमार्क हैं और क्रोनोस ग्रुप™ की अनुमति से उपयोग किए जाते हैं।
इंटेल कॉर्पोरेशन। सभी अधिकार सुरक्षित हैं। इंटेल, इंटेल लोगो और अन्य इंटेल चिह्न इंटेल कॉर्पोरेशन या उसकी सहायक कंपनियों के ट्रेडमार्क हैं। इंटेल अपने FPGA और सेमीकंडक्टर उत्पादों के प्रदर्शन को इंटेल की मानक वारंटी के अनुसार वर्तमान विनिर्देशों के अनुसार वारंटी देता है, लेकिन बिना किसी सूचना के किसी भी समय किसी भी उत्पाद और सेवा में बदलाव करने का अधिकार सुरक्षित रखता है। इंटेल यहाँ वर्णित किसी भी जानकारी, उत्पाद या सेवा के अनुप्रयोग या उपयोग से उत्पन्न होने वाली कोई जिम्मेदारी या दायित्व नहीं लेता है, सिवाय इसके कि इंटेल द्वारा लिखित रूप में स्पष्ट रूप से सहमति व्यक्त की गई हो। इंटेल ग्राहकों को सलाह दी जाती है कि वे किसी भी प्रकाशित जानकारी पर भरोसा करने से पहले और उत्पादों या सेवाओं के लिए ऑर्डर देने से पहले डिवाइस विनिर्देशों का नवीनतम संस्करण प्राप्त करें।
*अन्य नामों और ब्रांडों पर दूसरों की संपत्ति होने का दावा किया जा सकता है।
ओपनसीएल बीएसपी फ्लोरप्लानिंग के लिए दिशानिर्देश
- फ्लैट संकलन से शुरू करें ताकि यह समझ सकें कि BSP के सभी मुख्य घटक स्वाभाविक रूप से कहाँ रखे जाते हैं (विशेष रूप से PCIe या DDR जैसे I/O कनेक्शन वाले IP ब्लॉक)। BSP को डिज़ाइन करते समय, आपको पाइपलाइन स्थापित करने पर विचार करना पड़ सकता हैtagसमय को बंद करने के लिए आईपी के बीच में। आपको बार-बार विफल होने वाले पथों की पहचान करने के लिए पहले एक फ्लैट संकलन बीज स्वीप चलाना चाहिए, और फिर उन्हें ठीक करने का प्रयास करना चाहिए।
टिप: — फ्लैट संकलन सीड स्वीप पर एक अच्छी टाइमिंग क्लोजर दर से बेस संकलन टाइमिंग को बंद करने की संभावना अधिक होगी।
— यदि आप mm_interconnect* (Qsys द्वारा जोड़ा गया घटक) में लगातार विफलताएं देखते हैं, तो Qsys Interconnect के साथ सिस्टम खोलें viewऔर असफल इंटरकनेक्ट की जटिलता का निरीक्षण करें। आप पाइपलाइनिंग फ्लिपफ्लॉप जोड़ सकते हैं viewटाइमिंग में सुधार करने के लिए। यदि आप अभी भी समस्या का समाधान नहीं कर सकते हैं, तो आपको एवलॉन पाइपलाइन ब्रिज जोड़कर mm_interconnect* क्रिटिकल पथ को तोड़ना पड़ सकता है। - बेस संकलन के दौरान, कर्नेल क्षेत्र पर LogicLock से शुरू करें जिसमें freeze_wrapper_inst|kernel_system_inst शामिल है। किसी अन्य प्रतिबंध के बिना, इंटेल क्वार्टस प्राइम चिप के शेष स्थिर क्षेत्र में BSP हार्डवेयर को स्वतंत्र रूप से रख सकता है। PCIe और DDR जैसे BSP हार्डवेयर के आकार और स्थान की पहचान करने के लिए फ्लैट संकलन और चिप प्लानर का उपयोग करें। फिर, BSP हार्डवेयर के मुख्य क्लस्टर किए गए क्षेत्रों से बचते हुए LogicLock का उपयोग करके कर्नेल क्षेत्र को आरक्षित करें।
टिप: यदि प्रयुक्त चिप परिवार संदर्भ प्लेटफॉर्म के समान है और यदि BSP घटक समान हैं, तो Freeze_wrapper_inst|kernel_system_inst के लिए LogicLock क्षेत्रों से शुरू करना अधिक तेज़ हो सकता है, जो OpenCL संदर्भ BSP के साथ भेजा जाता है और विफलताओं के माध्यम से काम करता है। - आप अपने बीएसपी में निम्नलिखित अतिरिक्त घटक जोड़ सकते हैं:
— मेमोरी बैंक: यदि आप अधिक मेमोरी बैंक जोड़ते हैं, तो आपको I/O बैंक स्थान की पहचान करनी चाहिए क्योंकि आपको समय को पूरा करने के लिए पाइपलाइन ब्रिज जोड़ने की आवश्यकता हो सकती है।
— I/O चैनल: आप वीडियो, ईथरनेट या सीरियल इंटरफ़ेस जैसे I/O चैनल जोड़ सकते हैं। यदि आप I/O चैनल जोड़ते हैं, तो आपको I/O बैंक स्थान की पहचान करनी चाहिए क्योंकि यदि समापन समय कठिन है, तो आपको पाइपलाइनिंग के लिए नए LogicLock क्षेत्रों को लागू करने की आवश्यकता हो सकती है।
टिप: यदि आपको पाइपलाइन ब्रिज जोड़ने की आवश्यकता है (उदाहरण के लिएampयदि कर्नेल क्षेत्र में बड़े रूटिंग विलम्ब के कारण टाइमिंग विफलताएं होती हैं, तो चिप में स्रोत से गंतव्य तक रूटिंग दूरी पर विचार करें और कर्नेल क्षेत्र के लिए आरक्षित कुछ स्थान को छोड़ दें। - कर्नेल के लिए LogicLock क्षेत्रों को आरक्षित करते समय इन सामान्य दिशानिर्देशों का पालन करें:
— जब तक BSP द्वारा अपेक्षित न हो, सभी DSP कॉलमों को kernel_system में रखने का प्रयास करें।
— kernel_system के लिए अधिक संसाधन आरक्षित करने का प्रयास करें।
— कर्नेल क्षेत्र में नॉच की संख्या न्यूनतम रखने का प्रयास करें।
निम्नलिखित चित्र एक नॉच को दर्शाता है जिसे PCIe और DDR बैंक के बीच पाइपलाइन ब्रिज लगाने के लिए जोड़ा गया था।
चित्र 1. 10 रिलीज़ में Intel Arria® 17.0 GX के लिए OpenCL BSP फ़्लोरप्लान
अधिकतम परिचालन आवृत्ति के लिए दिशानिर्देश
कर्नेल द्वारा प्राप्त अधिकतम ऑपरेटिंग आवृत्ति (fmax) काफी हद तक FPGA गति पर निर्भर करती है क्योंकि अधिकांश IP को पहले से ही अनुकूलित किया जाना चाहिए। हालाँकि, BSP फ़्लोरप्लान के आधार पर कुछ fmax हानि हो सकती है। उदाहरण के लिएampआमतौर पर बीएसपी के कर्नेल क्षेत्र में कट-आउट की संख्या कर्नेल fmax को प्रभावित करती है।
जैसा कि निम्नलिखित चित्र में दर्शाया गया है, सर्वोत्तम औसत fmax प्रदान करने वाले सर्वोत्तम आधार बीज को प्राप्त करने के लिए:
- समय-सीमा को पूरा करने वाले प्रथम आधार बीज का चयन करने के बजाय आधार संकलन पर बीज स्वीप निष्पादित करें।
- आयात संकलन करें (उदाहरण से कुछ कर्नेल का उपयोग करके)ampसभी गुजर आधार बीज पर डिजाइन)।
- सभी आधार बीजों के लिए औसत fmax की गणना करें।
- उस आधार बीज का चयन करें जो उच्चतम औसत fmax पैदा करता है।
सबसे अच्छे औसत fmax वाला बेस सीड BSP के साथ रिलीज़ के लिए एक अच्छा उम्मीदवार है। यदि आप अनुशंसित चरणों से अलग दृष्टिकोण का पालन करने का निर्णय लेते हैं, तो आप कर्नेल आयात संकलन प्रक्रिया के fmax में 5-10% भिन्नता देख सकते हैं।
चित्र 2. सर्वोत्तम आधार बीज की पहचान करना
- यह समझने के लिए कि कर्नेल फ्लोरप्लान प्रतिबंधों के बिना कितनी तेजी से चल सकता है:
1. कर्नेल का समतल संकलन करें और fmax का निरीक्षण करें।
2. उसी कर्नेल पर आयात संकलन करें और fmax का निरीक्षण करें।
3. fmax परिणामों की तुलना करें.
फ़्लोरप्लान प्रतिबंधों के कारण, आयात संकलन fmax हमेशा फ़्लैट संकलन fmax से कम होता है। बीज शोर से बचने के लिए, कर्नेल को अधिक बेस बीजों के साथ संकलित करें और fmax परिणामों की तुलना करते समय औसत fmax पर विचार करें। - बेस संकलन से कर्नेल fmax की तुलना कभी भी फ्लैट या आयात संकलन से न करें। बेस संकलन के दौरान कर्नेल क्लॉक लक्ष्य शिथिल हो जाते हैं और इसलिए, आपको कभी भी अच्छे परिणाम नहीं मिलेंगे।
- बेस या आयात संकलन में कर्नेल क्लॉक क्रिटिकल पथ का निरीक्षण करें। यदि क्रिटिकल पथ फ़्लोरप्लान में कर्नेल से स्थिर क्षेत्र को पार कर रहा है, तो इस क्रिटिकल पथ से बचने के लिए फ़्लोरप्लान बदलें या कुछ और बेस सीड्स चलाएँ।
बीएसपी संसाधन उपयोग दक्षता के मूल्यांकन के लिए दिशानिर्देश
संसाधन उपयोग प्रतिशत जितना अधिक होगाtagई, आपके बीएसपी के स्थिर क्षेत्र में बेहतर क्षेत्र उपयोग। एक उच्च संसाधन उपयोग प्रतिशतtagइसका यह भी अर्थ है कि कर्नेल क्षेत्र के लिए अधिक संसाधन उपलब्ध हैं।
संसाधन उपयोग प्रतिशत की गणना करने के लिए नीचे दिए गए चरणों का पालन करेंtagआपके बीएसपी का ई:
- फिटर रिपोर्ट के विभाजन सांख्यिकी अनुभाग के अंतर्गत उपलब्ध top.fit.rpt या base.fit.rpt से FPGA में सभी संसाधनों के लिए मान प्राप्त करें।
- “freeze_wrapper_inst|kernel_system_inst” (कर्नेल क्षेत्र) के लिए मान घटाएँ।
बख्शीश:
अन्य संसाधनों के मूल्यों की तुलना में अनुकूली तर्क मॉड्यूल (ALM) के मूल्यों पर अधिक ध्यान दें। सुनिश्चित करें कि संसाधन उपयोग प्रतिशतtagएएलएम के लिए ई ओपनसीएल संदर्भ बीएसपी के करीब है। बहुत उच्च प्रतिशतtagएएलएम के लिए ई कंजेशन की ओर ले जा सकता है, जो संकलन समय को बढ़ा सकता है और जटिल कर्नेल में रूटिंग कंजेशन को पेश कर सकता है। हालाँकि, आप हमेशा स्थिर क्षेत्र क्षेत्र को बढ़ा या घटा सकते हैं, और संकलन समय और fmax का निरीक्षण कर सकते हैं।
निम्न तालिका 10 रिलीज में Arria ® 17.0 GX डिवाइसों के OpenCL BSP संसाधन उपयोग को दर्शाती है।
तालिका 1.
10 रिलीज में IntelArria 17.0 GX डिवाइसों का OpenCL BSP संसाधन उपयोग
कुल उपलब्ध | कर्नेल के लिए आरक्षित | बीएसपी के लिए उपलब्ध | बीएसपी द्वारा उपयोग किया गया | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
रजिस्टर | 1708800 | 1575200 | 133600 | 38913 | 29% |
एम2ओके | 2713 | 2534 | 179 | 134 | 75% |
डीएसपी | 1518 | 1518 | 0 | 0 | एन/ए |
ध्यान दें कि फ्लोरप्लानिंग इस प्रकार से क्रियान्वित की गई है कि स्थैतिक क्षेत्र में कोई डीएसपी ब्लॉक नहीं होगा।
दस्तावेज़ संशोधन इतिहास
तालिका 2.
ओपनसीएल बोर्ड सपोर्ट पैकेज फ्लोरप्लान ऑप्टिमाइजेशन गाइड के लिए इंटेल एफपीजीए एसडीके का दस्तावेज़ संशोधन इतिहास
तारीख | संस्करण | परिवर्तन |
अगस्त-17 | प्रारंभिक रिहाई। |
ऑनलाइन संस्करण
प्रतिक्रिया भेजें
आईडी: 683312
एएन-824
संस्करण: 2017.08.08
एएन 824: ओपनसीएल™ बोर्ड के लिए इंटेल® एफपीजीए एसडीके
सहायता पैकेज फ़्लोरप्लान अनुकूलन गाइड
दस्तावेज़ / संसाधन
![]() |
ओपनसीएल बोर्ड सपोर्ट पैकेज फ्लोरप्लान के लिए इंटेल एएन 824 एफपीजीए एसडीके [पीडीएफ] उपयोगकर्ता गाइड ओपनसीएल बोर्ड सपोर्ट पैकेज फ्लोरप्लान के लिए एएन 824 एफपीजीए एसडीके, ओपनसीएल बोर्ड सपोर्ट पैकेज फ्लोरप्लान के लिए एएन 824, एफपीजीए एसडीके, ओपनसीएल बोर्ड सपोर्ट पैकेज फ्लोरप्लान, बोर्ड सपोर्ट पैकेज फ्लोरप्लान, सपोर्ट पैकेज फ्लोरप्लान, पैकेज फ्लोरप्लान, फ्लोरप्लान |