Altifigence Academy

13 / 20 · अवधारणा

टाइलिंग और सीमा पैडिंग

बड़ी मैट्रिक्स छोटे ग्रिड पर मैप करें और शून्य पैडिंग तथा आउटपुट मास्क संभालें।

पहले आउटपुट क्षेत्र की टाइल बनाएँ

N×N ग्रिड बड़े M×P परिणाम के लिए ceil(M/N)×ceil(P/N) स्थानिक टाइल लेता है। आधार मॉडल हर टाइल में पूरा रिडक्शन K रखता है और आउटपुट टाइलों के बीच clear करता है। रैपर टाइल मूल r0,c0 रखता है; स्थानीय PE(i,j), वैश्विक C(r0+i,c0+j) से मैप है। समय विस्थापन स्थानीय निर्देशांक पर निर्भर है।

N=2 और M=P=K=3 लें। A=[[1,2,3],[4,5,6],[7,8,9]] और B=[[1,0,2],[0,1,0],[2,0,1]] हों। गुणनफल [[7,2,5],[16,5,14],[25,8,23]] है। चार टाइल मूल (0,0), (0,2), (2,0) और (2,2) हैं।

ऑपरैंड पैड करें, लेखन मास्क करें

सीमा-बाहर A पंक्ति और B स्तंभ वैध शून्य टोकन से दें। हर PE फिर भी K पद उपयोग करता है और सरल पूर्णता अनुबंध बना रहता है। पैड किए पद अवैध बनाने पर कुछ count सदा K से नीचे रह सकते हैं। वास्तविक मैट्रिक्स के बाहर लेखन रोकने के लिए परिणाम लेखन अलग मास्क करें।

अंतिम टाइल A=[[7,8,9],[0,0,0]] और B=[[2,0],[0,0],[1,0]] लेती है। स्थानीय परिणाम [[23,0],[0,0]] है, लेकिन केवल ऊपर-बाएँ मान C(2,2) में लिख सकते हैं। संख्यात्मक शून्य सीमा-बाहर पता सुरक्षित नहीं करता।

हर टाइल पाँच advance किनारे लेती है; चार क्रमिक टाइल में कुल बीस हैं, clear, लोड और आउटपुट स्थानांतरण छोड़कर। ग्रिड अड़तालीस पैड किए MAC करता है; केवल सत्ताईस वास्तविक 3×3 गुणन के हैं।

रिडक्शन टाइलिंग में योग सुरक्षित रखना चाहिए

K बाँटने पर समान आउटपुट के आंशिक योग जोड़ने पड़ते हैं। C(0,0)=1×1+2×0+3×2=7 को K=2+1 में बाँटने से आंशिक एक और छह हैं। इन रिडक्शन के बीच अंतिम संचायक साफ़ करने से केवल छह बचता है। संचायक रखें या चौड़े आंशिक योग कहीं और जोड़ें। जोड़ने से पहले हर आंशिक योग क्वांटाइज़ करने का परिणाम पूरे योग को एक बार क्वांटाइज़ करने से अलग हो सकता है।

समापन परियोजना स्थानिक टाइलिंग और पूरे K से शुरू होती है। एक-तत्व सीमाएँ, N से विभाजित आयाम, अंतिम टाइल में एक वास्तविक आउटपुट, वैध पैड किए शून्य और आउटपुट मास्क परखें। संदर्भ स्कोरबोर्ड को वैश्विक निर्देशांक से कुंजी दें ताकि टाइल क्रम बदलने से अपेक्षित परिणाम न बदले।

खुद आज़माएँ

3×3 उदाहरण की (0,2) टाइल के लिए आउटपुट मास्क और स्थानीय परिणाम दें। K को 2+1 में बाँटने पर C(0,2) के आंशिक योग क्या हैं?

व्याख्या पढ़ें

स्थानीय परिणाम [[5,0],[14,0]] और मास्क [[1,0],[1,0]] है। C(0,2)=1×2+2×0+3×1 के आंशिक योग दो और तीन हैं, कुल पाँच।

आपका चयन इस ब्राउज़र पर लागू होता है। फ़ुटर से कभी भी बदलें।