PolarFire FPGA साठी मायक्रोसेमी UG0943 CNN प्रवेगक
उत्पादन माहिती
हे उत्पादन मायक्रोसेमीने विकसित केलेले PolarFire FPGA साठी CNN प्रवेगक आहे. ही एक हार्डवेअर अंमलबजावणी आहे जी कॉन्व्होल्युशनल न्यूरल नेटवर्क्स (सीएनएन) साठी प्रवेगक प्रक्रिया प्रदान करते. CNN एक्सीलरेटर आयपी ब्लॉक डायग्राम एक्सीलरेटरची अंतर्गत रचना दर्शवितो, ज्यामध्ये सक्रियता रीड FIFO, वेट्स रीड FIFO, मॅट्रिक्स फ्रेमर, कॉन्व्होल्यूशन ReLU, Maxpooling, FC एक्युम्युलेटर, आउटपुट फ्रेमर आणि आउटपुट राईट यासारख्या घटकांचा समावेश आहे.
उत्पादन वापर सूचना
हार्डवेअर अंमलबजावणी
सीएनएन एक्सीलरेटर आयपी लागू करण्यासाठी, या चरणांचे अनुसरण करा:
- PolarFire FPGA साठी CNN एक्सीलरेटरला समर्थन देण्यासाठी तुमच्याकडे आवश्यक हार्डवेअर घटक असल्याची खात्री करा.
- वापरकर्ता मॅन्युअलच्या इनपुट आणि आउटपुट विभागात वर्णन केल्याप्रमाणे, आवश्यक इनपुट आणि आउटपुट एक्सीलरेटरशी कनेक्ट करा.
- योग्य कॉन्फिगरेशन पॅरामीटर्स निर्दिष्ट करून मेमरी घटक कॉन्फिगर करा. तपशीलांसाठी कॉन्फिगरेशन पॅरामीटर्स विभाग पहा.
- प्रवेगकांच्या वेळेची आवश्यकता समजून घेण्यासाठी टाइमिंग डायग्राम विभागाचा संदर्भ घ्या.
- रिसोर्स युटिलायझेशन विभाग वापरून एक्सीलरेटरच्या संसाधनाच्या वापराचे निरीक्षण करा.
समर्थित स्तर
प्रवेगक चे CNN इंजिन खालील प्रकारच्या स्तरांना समर्थन देते:
- कन्व्होल्यूशनल लेयर्स
- ReLU लेयर्स
- कमाल पूलिंग स्तर
- पूर्णपणे कनेक्ट केलेले (FC) स्तर
प्रत्येक लेयर प्रकार आणि ते कसे कॉन्फिगर करायचे याबद्दल तपशीलवार माहितीसाठी, वापरकर्ता मॅन्युअलच्या डिझाइन वर्णन विभागाचा संदर्भ घ्या.
पुनरावृत्ती इतिहास
पुनरावृत्ती इतिहास दस्तऐवजात लागू केलेल्या बदलांचे वर्णन करतो. सर्वात वर्तमान प्रकाशनापासून सुरू होणारे बदल पुनरावृत्तीद्वारे सूचीबद्ध केले जातात.
पुनरावृत्ती 1.0
या दस्तऐवजाचे पहिले प्रकाशन.
परिचय
CNN Accelerator IP हे PolarFire® FPGA वर कन्व्होल्यूशन न्यूरल नेटवर्क्स (CNN) चे अनुमान काढण्यासाठी हार्डवेअर प्रवेग प्रदान करते. CNN प्रवेगक प्रवेग प्राप्त करण्यासाठी एकाच घड्याळाच्या चक्रात अनेक DSP ऑपरेशन्स करतो. CNN मध्ये अनेक प्रकारचे स्तर असतात जसे की कनव्होल्यूशन, मॅक्सपूल, आरएलयू, पूर्णपणे कनेक्ट केलेले लेयर इ. एक कन्व्होल्यूशन लेयर गुणांकांसह कर्नल वापरते ज्याला वजन म्हणतात. आयपी यापैकी काही स्तर अनुक्रमे आणि काही स्तर एकाच वेळी कार्यान्वित करते. प्रत्येक लेयरचे आउटपुट ज्याला ॲक्टिव्हेशन म्हणतात ते DDR मध्ये साठवले जाते आणि पुढील लेयरमध्ये इनपुट म्हणून वापरले जाते. सीएनएनचे वजन डीडीआरमध्ये साठवले जाते आणि कॉन्व्होल्युशन लेयरशी संबंधित इनपुटसह वाचले जाते. CNN IP मधील शेड्युलर फ्रेम स्टार्टचे अनुक्रम आणि अंतिम आउटपुटची गणना होईपर्यंत विविध स्तरांची अंमलबजावणी व्यवस्थापित करतो.
CNN प्रवेगक IP इंटरफेस डीडीआर आर्बिटरला देतो जे एकाधिक वाचन आणि लेखन सक्षम करते. IP दोन रीड चॅनेल वापरतो, एक लेयर इनपुट वाचण्यासाठी आणि दुसरा नेटवर्क वेट्स वाचण्यासाठी. एक लेखन चॅनेल IP द्वारे DDR वर सक्रियता लिहिण्यासाठी वापरले जाते. IP ला इनपुट प्रतिमा मोजली जाण्याची अपेक्षा आहे आणि नेटवर्क इनपुटनुसार DDR मध्ये संग्रहित करणे आवश्यक आहे. शेड्युलर जे विविध स्तरांना अनुक्रमित करते ते इनपुट पिनद्वारे कॉन्फिगर केले जाते. सामान्यतः, शेड्यूलर कॉन्फिगर करण्यासाठी वापरलेला डेटा तयार करण्यासाठी प्रोसेसर सबसिस्टम किंवा UART वापरला जाऊ शकतो. स्टेटस आउटपुट हे CNN IP सध्या चालू असलेल्या लेयरची संख्या दर्शवते.
हार्डवेअर अंमलबजावणी
हा विभाग CNN प्रवेगक IP च्या अंमलबजावणीचे वर्णन करतो.
डिझाइन वर्णन
दोन डीडीआर रीड चॅनेल इमेज रीड आणि वेट्स रीड डीडीआर इंटरफेसच्या क्लॉक फ्रिक्वेन्सीवर डीडीआरमध्ये संग्रहित प्रतिमा डेटा आणि वजन डेटा वाचतात. CDC FIFO DDR इंटरफेस घड्याळातील डेटा CNN सिस्टम घड्याळात रूपांतरित करते. मॅट्रिक्स फ्रेम इमेज डेटामधून 3×3 मॅट्रिक्स फ्रेम करते ज्याचा वापर कन्व्होल्यूशनसाठी केला जाईल. मॅट्रिक्स फ्रेमर शून्य पॅडिंग आणि कॉन्व्होल्यूशन स्ट्राइड लागू करतो. वेट फ्रेमर कंव्होल्युशनसाठी वापरल्या जाणार्या फिल्टर्सची वेट व्हॅल्यू लोड करतो. आउटपुट फ्रेमर कॉन्व्होल्यूशन आउटपुट सक्रियकरण नकाशांमध्ये व्यवस्थित करतो आणि त्यांना LSRAM मध्ये संग्रहित करतो. 3×3 मॅट्रिक्स फ्रेमर मॅट्रिक्सला शून्य पॅडिंगसह फ्रेम करतो आणि नेटवर्क लेयरनुसार स्ट्राइड करतो. मॅक्सपूल मॉड्यूल जास्तीत जास्त 3×3 मॅट्रिक्स शोधतो आणि अंतिम आउटपुट तयार करतो. जर नेटवर्क लेयर मॅक्सपूल ऑपरेशन वापरत नसेल, तर आउटपुटवर मल्टीप्लेक्सरद्वारे LSRAM मधून थेट आउटपुट निवडले जाऊ शकते.
शेड्युलर मॉड्यूल प्रत्येक लेयरच्या अंमलबजावणीचा क्रम नियंत्रित करतो. प्रत्येक स्तरासाठी, शेड्युलर प्रतिमा वाचण्यासाठी DDR पत्ता आणि इंजिनचे अंतिम आउटपुट लिहिण्यासाठी वजन आणि पत्ता प्रदान करतो. हे शून्य पॅडिंग आणि स्ट्राइडसाठी मॅट्रिक्स फ्रेमर कॉन्फिगर करते, मक्सद्वारे अंतिम आउटपुटची निवड. कन्व्होल्यूशन प्रकार - 2D कन्व्होल्यूशन, डेप्थ-वार कॉन्व्होल्यूशन आणि पॉइंट-वार कॉन्व्होल्यूशन शेड्युलरद्वारे कॉन्फिगर केले जातात. शेड्युलर डेटा शेड्युलरशी संबंधित आयपीच्या इनपुटद्वारे लोड केला जातो. सीएनएन इंजिनद्वारे समर्थित स्तरांचे प्रकार खालीलप्रमाणे आहेत:
- कन्व्होल्युशन - स्ट्राइड1/स्ट्राइड2, शून्य पॅडिंग (5,5,5,5) किंवा शून्य पॅडिंग नाही
- कर्नल आकार - 3×3, 5×5, 7×7, 9×9
- 3×3 कमाल पूलिंग – स्ट्राइड1/स्ट्राइड2 कॉन्व्होल्युशन नंतर
- 3×3 convolution नंतर गळती relu
- Relu आणि Relu Max
- 3×3 डेप्थ वाइज कन्व्होल्युशन - स्ट्राइड1/स्ट्राइड2 शून्य पॅडिंगसह
- पॉइंटवाइज कन्व्होल्युशन
- पूर्णपणे कनेक्ट केलेले
- जागतिक सरासरी पूलिंग -7×7
मेमरी घटक
नेटवर्क चालवण्यासाठी CNN प्रवेगक IP ला खालील घटक आवश्यक आहेत:
- नेटवर्क डेटा: हे CNN ची रचना आणि नेटवर्क वजन आणि सक्रियतेचा DDR मेमरी नकाशा परिभाषित करते.
- वजन डेटा: यामध्ये सर्व स्तरांचे वजन, पूर्वाग्रह, स्केल घटक इत्यादींचा डेटा आहे
- वजन माहिती: यामध्ये नेटवर्क वेट्सच्या SPI सामग्रीचे DDR वर मॅपिंग करण्याचे तपशील आहेत
वरील तीन घटक एकल हेक्स म्हणून तयार केले आहेत file एसपीआय फ्लॅशमध्ये लोड केल्या जाऊ शकणाऱ्या SDK टूल फ्लोमधून
इनपुट आणि आउटपुट
खालील तक्ता CNN प्रवेगक IP चे इनपुट आणि आउटपुट पोर्ट दाखवते.
तक्ता 1: CNN प्रवेगक IP चे इनपुट आणि आउटपुट पोर्ट
सिग्नलचे नाव | दिशा | रुंदी | वर्णन |
RESETN_SYS_CLK_I | इनपुट | – | SYS_CLK_I च्या संदर्भात डिझाइन करण्यासाठी सक्रिय लो सिंक्रोनस रीसेट सिग्नल |
SYS_CLK_I | इनपुट | – | सिस्टम घड्याळ |
DDR_CLK_I | इनपुट | – | डीडीआर घड्याळ |
MiV_CLK_I | इनपुट | – | Mi-V घड्याळ |
CTRL_DATA_I | इनपुट | 32 बिट | शेड्युलरसाठी डेटा इनपुट नियंत्रित करा |
CTRL_DATA_VALID_I | इनपुट | – | शेड्युलरला डेटा इनपुटसाठी वैध सिग्नल |
START_CNN_I | इनपुट | – | एका फ्रेमसाठी CNN प्रवेगक चालविण्यासाठी सिग्नल सुरू करा |
DDR_READ_CHANNEL1 | बस | डीडीआर रीड ऑपरेशनसाठी व्हिडिओ आर्बिटरशी जोडण्यासाठी चॅनेल1 बस वाचा | |
DDR_READ_CHANNEL2 | बस | डीडीआर रीड ऑपरेशनसाठी व्हिडिओ आर्बिटरशी जोडण्यासाठी चॅनेल2 बस वाचा | |
STATUS_O | आउटपुट | 7 बिट | सीएनएन एक्सीलरेटरमध्ये सध्या चालू असलेल्या लेयरची संख्या दर्शवणारे स्टेटस रजिस्टर. STATUS_O(7) ची वाढती किनार CNN एक्सीलरेटरद्वारे एक फ्रेम पूर्ण करणे दर्शवते. |
DDR_WRITE_CHANNEL_O | बस | – | DDR लेखन ऑपरेशनसाठी व्हिडिओ आर्बिटरशी जोडण्यासाठी चॅनेल बस लिहा |
व्हिडिओ आर्बिटरसह CNN IP चा इंटरफेस आकृती 3 मध्ये दर्शविला आहे
आकृती 3: व्हिडिओ आर्बिटरसह CNN प्रवेगक IP इंटरफेस
कॉन्फिगरेशन पॅरामीटर्स
खालील सारणी CNN प्रवेगकच्या हार्डवेअर अंमलबजावणीमध्ये वापरलेल्या कॉन्फिगरेशन पॅरामीटर्सचे वर्णन दर्शवते. हे जेनेरिक पॅरामीटर्स आहेत आणि अर्जाच्या आवश्यकतेनुसार बदलू शकतात.
तक्ता 2: कॉन्फिगरेशन पॅरामीटर्स
नाव वर्णन
- G_PW: उत्पादनाची रुंदी किंवा कंव्होल्यूशन आउटपुट बिट रुंदी
- G_DWC: डेप्थ कॉन्व्होल्यूशन ऑपरेशनला समर्थन देण्यासाठी सक्षम करा
- G_MXP_EN: मॅक्सपूल ऑपरेशनला समर्थन देण्यासाठी सक्षम करा
- G_GAVG_POOLING_EN: जागतिक सरासरी पूलिंग ऑपरेशनला समर्थन देण्यासाठी सक्षम करा
वेळेचे आरेखन
खालील आकडे वाचन आणि लेखन चॅनेलचे वेळ रेखाचित्र दर्शवतात.
आकृती 4: रीड चॅनेलचे वेळेचे आकृती
आकृती 5: राईट चॅनेलचे टायमिंग डायग्राम
संसाधनांचा वापर
CNN प्रवेगक IP PolarFire FPGA (MPF300T – 1FCG1152E पॅकेज) वर लागू केला आहे. खालील तक्त्या CNN एक्सीलरेटर IP च्या संसाधनाचा वापर दर्शवितात.
तक्ता 3: G_PW = 30, G_DWC = 1, G_MXP_EN = 1, G_GAVG_POOLING_EN = 1
LUT | 37840 |
डीएफएफ | 34832 |
गणित | 152 |
LSRAM | 116 |
SRAM | 45 |
तक्ता 4: G_PW = 25, G_DWC = 1, G_MXP_EN = 1, G_GAVG_POOLING_EN = 1
LUT | 36059 |
डीएफएफ | 34434 |
गणित | 152 |
LSRAM | 114 |
SRAM | 45 |
तक्ता 5: G_PW = 30, G_DWC = 0, G_MXP_EN = 1, G_GAVG_POOLING_EN = 1
LUT | 30497 |
डीएफएफ | 29856 |
गणित | 152 |
LSRAM | 116 |
uSRAM | 45 |
तक्ता 6: G_PW = 30, G_DWC = 1, G_MXP_EN = 0, G_GAVG_POOLING_EN = 1
LUT | 34260 |
डीएफएफ | 32338 |
गणित | 152 |
LSRAM | 95 |
uSRAM | 45 |
तक्ता 7: G_PW = 30, G_DWC = 1, G_MXP_EN = 1, G_GAVG_POOLING_EN = 0
LUT | 36438 |
डीएफएफ | 34262 |
गणित | 152 |
LSRAM | 116 |
uSRAM | 0 |
तक्ता 8: उदा. साठी IP चे कार्यप्रदर्शन आणि संसाधन वापरample नेटवर्क्स
लहान YOLO v2 COCO | मोबाइलनेट v1 | रेसनेट५० | ||
फ्रेम्स/सेकंद @200 मेगाहर्ट्झ | 15.5 FPS | 54 FPS | 7 FPS | |
LUT | 28642 | 32330 | 36059 | |
डीएफएफ | 29128 | 31791 | 34434 | |
गणित | 152 | 152 | 152 | |
LSRAM | 114 | 93 | 114 | |
uSRAM | 0 | 45 | 45 |
टीप: विशिष्ट नेटवर्कसाठी CNN IP च्या इष्टतम सेटिंग्ज निवडून संसाधनाच्या वापरामध्ये फरक प्राप्त केला जातो. नेटवर्क विलंब 1/FPS आहे; नेटवर्क 1 च्या बॅच आकारासह चालवले जातात.
Microsemi कोणतीही हमी, प्रतिनिधित्व, किंवा कोणतीही हमी देत नाही यामधील माहिती किंवा त्याची उत्पादने आणि सेवा कोणत्याही विशिष्ट उद्देशासाठी उपयुक्तता, किंवा Microsemi कोणत्याही उत्पादन किंवा सर्किटच्या वापरामुळे उद्भवणारे कोणतेही दायित्व स्वीकारत नाही. येथे विकली जाणारी उत्पादने आणि Microsemi द्वारे विकली जाणारी इतर कोणतीही उत्पादने मर्यादित चाचणीच्या अधीन आहेत आणि मिशन-गंभीर उपकरणे किंवा अनुप्रयोगांच्या संयोगाने वापरली जाऊ नयेत. कोणतीही कार्यप्रदर्शन वैशिष्ट्ये विश्वासार्ह असल्याचे मानले जाते परंतु ते सत्यापित केले जात नाही आणि खरेदीदाराने उत्पादनांचे सर्व कार्यप्रदर्शन आणि इतर चाचणी आयोजित करणे आणि पूर्ण करणे आवश्यक आहे, एकट्याने आणि कोणत्याही अंतिम उत्पादनांसह, किंवा स्थापित केले पाहिजे. खरेदीदार मायक्रोसेमी द्वारे प्रदान केलेल्या कोणत्याही डेटा आणि कार्यप्रदर्शन वैशिष्ट्यांवर किंवा पॅरामीटर्सवर अवलंबून राहू नये. कोणत्याही उत्पादनांची योग्यता स्वतंत्रपणे निर्धारित करणे आणि त्याची चाचणी आणि पडताळणी करणे ही खरेदीदाराची जबाबदारी आहे. Microsemi द्वारे प्रदान केलेली माहिती "जशी आहे, कुठे आहे" आणि सर्व दोषांसह प्रदान केली आहे आणि अशा माहितीशी संबंधित संपूर्ण जोखीम पूर्णपणे खरेदीदारावर आहे. मायक्रोसेमी कोणत्याही पक्षाला कोणतेही पेटंट अधिकार, परवाने किंवा इतर कोणतेही IP अधिकार, स्पष्टपणे किंवा अप्रत्यक्षपणे मंजूर करत नाही, मग ते अशा माहितीच्या संदर्भात किंवा अशा माहितीद्वारे वर्णन केलेल्या कोणत्याही गोष्टीबाबत. या दस्तऐवजात प्रदान केलेली माहिती मायक्रोसेमीच्या मालकीची आहे आणि या दस्तऐवजातील माहितीमध्ये किंवा कोणत्याही उत्पादन आणि सेवांमध्ये कोणत्याही वेळी सूचना न देता कोणतेही बदल करण्याचा अधिकार मायक्रोसेमी राखून ठेवते.
मायक्रोसेमी बद्दल
Microsemi, Microchip Technology Inc. (Nasdaq: MCHP) ची पूर्ण मालकीची उपकंपनी, एरोस्पेस आणि संरक्षण, दळणवळण, डेटा सेंटर आणि औद्योगिक बाजारपेठांसाठी सेमीकंडक्टर आणि सिस्टम सोल्यूशन्सचा सर्वसमावेशक पोर्टफोलिओ ऑफर करते.
उत्पादनांमध्ये उच्च-कार्यक्षमता आणि रेडिएशन-कडक अॅनालॉग मिश्रित-सिग्नल इंटिग्रेटेड सर्किट्स, FPGAs, SoCs आणि ASICs समाविष्ट आहेत; ऊर्जा व्यवस्थापन उत्पादने; वेळ आणि समक्रमण साधने आणि अचूक वेळ उपाय, वेळेसाठी जागतिक मानक सेट करणे; व्हॉइस प्रोसेसिंग उपकरणे; आरएफ उपाय; स्वतंत्र घटक; एंटरप्राइझ स्टोरेज आणि कम्युनिकेशन सोल्यूशन्स, सुरक्षा तंत्रज्ञान आणि स्केलेबल अँटी-टीamper उत्पादने; इथरनेट सोल्यूशन्स; पॉवर-ओव्हर-इथरनेट आयसी आणि मिडस्पॅन्स; तसेच सानुकूल डिझाइन क्षमता आणि सेवा. येथे अधिक जाणून घ्या www.microsemi.com.
मायक्रोसेमी मुख्यालय One Enterprise, Aliso Viejo, CA 92656 USA
- यूएसए मध्ये: +1 ५७४-५३७-८९००
- यूएसए बाहेर: +1 ५७४-५३७-८९००
- विक्री: +1 ५७४-५३७-८९००
- फॅक्स: +1 ५७४-५३७-८९००
- ईमेल: sales.support@microsemi.com www.microsemi.com
©2020 Microsemi, Microchip Technology Inc ची पूर्ण मालकीची उपकंपनी. सर्व हक्क राखीव. मायक्रोसेमी आणि मायक्रोसेमी लोगो हे मायक्रोसेमी कॉर्पोरेशनचे नोंदणीकृत ट्रेडमार्क आहेत. इतर सर्व ट्रेडमार्क आणि सेवा चिन्ह त्यांच्या संबंधित मालकांची मालमत्ता आहेत
५. ८ १/२
मायक्रोसेमी प्रोप्रायटरी UG0943 पुनरावृत्ती 1.0
कागदपत्रे / संसाधने
![]() |
PolarFire FPGA साठी मायक्रोसेमी UG0943 CNN प्रवेगक [pdf] वापरकर्ता मार्गदर्शक PolarFire FPGA साठी UG0943 CNN प्रवेगक, UG0943, PolarFire FPGA साठी CNN प्रवेगक, CNN प्रवेगक, प्रवेगक |