इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

टाइल वाला लेआउट

आकृति 1

चित्र 1 से पता चलता है कि कैसे 2x2 टाइलिंग के साथ स्मृति में एक सरणी F32 [3,5] रखी गई है। इस लेआउट के साथ एक आकृति F32 [3,5] {1,0: T (2,2)} के रूप में लिखी गई है, जहां 1,0 आयामों के भौतिक क्रम से संबंधित है (लेआउट में मामूली_तो_मेजर क्षेत्र) जबकि (2,2) बृहदान्त्र के बाद 2x2 टाइल द्वारा भौतिक आयामों के टाइलिंग को इंगित करता है।

सहज रूप से टाइलों को आकार को ढंकने के लिए बिछाया जाता है और फिर प्रत्येक टाइल के भीतर, तत्वों को टाइलिंग के बिना बिछाया जाता है, जैसा कि ऊपर दिए गए उदाहरण में है, जहां उदाहरण के दाहिने हिस्से को स्मृति में लेआउट दिखाया गया है, जिसमें शामिल होने वाले सफेद पैडिंग तत्व शामिल हैं भले ही मूल सरणी सीमाएँ न हों, फिर भी पूरी 2x2 टाइलें हों।

पैडिंग में अतिरिक्त तत्वों को किसी विशेष मूल्य को शामिल करने की आवश्यकता नहीं है।

एक आकार और एक टाइल दिए गए टाइलिंग के लिए रैखिक सूचकांक सूत्र

टिले के बिना, एक तत्व e = (e n , e n-1 , ..., e 1 ) एक सरणी में सरणी बाउंड्स d = (d n , d n-1 , ..., d 1 ) (d1) सबसे मामूली आयाम) स्थिति में प्रमुख से मामूली आदेश द्वारा निर्धारित किया जाता है:

रैखिक_इंडेक्स (ई, डी)
= linear_index ((e n , e n-1 , ..., e 1 ), (d n , d n-1 , ..., d 1 ))
= e n d n n-1 ... d 1 + e n-1 d n-2 ... d 1 + ... + e 1

इस दस्तावेज़ में अंकन की सादगी के लिए हम मानते हैं कि एक टाइल में सरणी के समान आयाम हैं। एक्सएलए के टाइलिंग के कार्यान्वयन में, यह प्रारंभिक आयामों को अपरिवर्तित छोड़ कर सबसे कम आयामों के साथ झुकाव को सामान्यीकृत करता है और टाइलिंग को केवल सबसे मामूली आयामों पर लागू करता है, ताकि निर्दिष्ट किए गए टाइलिंग में भौतिक आयामों के एक प्रत्यय का उल्लेख हो। आकार टाइल किया जा रहा है।

जब आकार का tiling (t n , t n-1 , ..., t 1 ) का उपयोग किया जाता है, तो सूचक के साथ सरणी में एक तत्व (e n , e n-1 , ..., e 1 ) को मैप किया जाता है अंतिम लेआउट में स्थिति:

लीनियर_इंडेक्स_विथ_टाइल (ई, डी, टी)
= linear_index ((⌊e / t e, e mod t), (indd / t⌉, t)) (अंकगणित तत्ववाचक है, (a, b) संघात है)
= linear_index ((⌊e n / t n ..., ..., inde 1 / t 1 mod, e n mod t n , ..., e 1 mod t 1 ), (nd n / t n ⌉,) ..., ,d 1 / t 1 ⌉, t n , t n-1 , ..., t 1 ))
= linear_index ((⌊e n / t n ..., ..., inde 1 / t 1 ⌈), ((d n / t n ⌉, ..., /d 1 / t 1 ⌉)) n n n t n-1 ... t 1 + रैखिक_index ((e n mod t n , ..., e 1 mod t 1 ), (t n , t n-1 , ..., t 1 ))

लेआउट को दो भागों के रूप में माना जा सकता है: (te n / t n ..., ..., ⌋e 1 / t 1 /), जो आकार की टाइलों की एक सरणी में एक टाइल सूचकांक से मेल खाती है (nd n) / t n ⌉, ..., nd 1 / t 1 ,), और (e n mod t n , ..., e 1 mod t 1 ), जो एक भीतर के टाइल सूचकांक से मेल खाता है। छत का कार्य id i / t i ⌉ में दिखाई देता है क्योंकि यदि टाइलें बड़े सरणी की सीमा को पार कर जाती हैं, तो चित्र 1 के अनुसार पैडिंग डाली जाती है। टाइल के भीतर टाइल और तत्व दोनों को टाइलिंग के बिना पुनरावर्ती रूप से बिछाया जाता है।

चित्र 1 में उदाहरण के लिए, तत्व (2,3) में टाइल इंडेक्स (1,1), और भीतर-टाइल सूचकांक (0,1) है, (1, 1, 0, 1) के संयुक्त समन्वय वेक्टर के लिए। टाइल सूचकांकों की सीमाएं (2, 3) हैं और टाइल स्वयं (2, 2) के संयुक्त वेक्टर (2, 3, 2, 2) के लिए है। तार्किक आकार में सूचकांक (2, 3) वाले तत्व के लिए टाइल के साथ रैखिक सूचकांक तब है

लीनियर_इंडेक्स_विथ_टाइल ((2,3), (3,5), (2,2))
= linear_index ((1,1,0,1), (2,3,2,2))
= linear_index ((1,1), (2,3)) ∙ 2 linear 2 + रैखिक_index ((0,1), (2,2))
= (1 (3 + 1) 1 2 (2 + (0 1 2 + 1)
= 17।

पैड-रेज़ैप-ट्रांज़ोज़ के रूप में टाइलिंग

टाइलिंग-आधारित लेआउट निम्नानुसार संचालित होता है:
आयामों की एक सरणी पर विचार करें (d n , d n-1 , ..., d1) (d1 सबसे छोटा आयाम है)। जब इसका आकार (t n , t n-1 , ..., t 1 ) (t 1 सबसे छोटा आयाम होता है) के साथ निर्धारित किया जाता है, तो उस टाइलिंग को निम्नलिखित में पैड-रेज़ैप-ट्रांज़ोज़ के रूप में वर्णित किया जा सकता है मार्ग।

  1. सरणी को (/d n / t n ∙, t n , ..., /d 1 / t 1 t ⌉ t 1 ) में गद्देदार किया जाता है।
  2. प्रत्येक आयाम को (id i / t i t, t i ) में विभाजित किया जाता है, अर्थात सरणी को फिर से आकार दिया जाता है
    (Nd n / t n ⌉, t n , ..., td 1 / t 1 ⌉, t 1 )।
    इस फेरबदल में अपने आप में कोई भौतिक लेआउट परिवर्तन नहीं है, इसलिए यह फेरबदल एक बिटकास्ट है। यदि कोई स्पष्ट रूप से एक टाइलिंग के बारे में नहीं सोच रहा है, तो यह आकार किसी भी आकृति को गद्देदार आकार के समान तत्वों के साथ व्यक्त कर सकता है - यहां उदाहरण इस तरह से टाइल व्यक्त करने का तरीका है।
  3. एक स्थानान्तरण t n , ..., t 1 को सबसे मामूली आयामों में स्थानांतरित करके होता है, जबकि उनके सापेक्ष क्रम को बनाए रखते हुए, ताकि अधिकांश प्रमुख से सबसे छोटे आयामों का क्रम बन जाए
    (,D n / t n ⌉, ..., td 1 / t 1 t, t n , ..., t 1 )।

अंतिम आकृति में उपसर्ग होता है
(,D n / t n ⌉, ..., td 1 / t 1 ,), जो प्रत्येक आयाम में टाइल्स की संख्या का वर्णन करता है। एरे में एक तत्व (e n , ..., e 1 ) इस तत्व को अंतिम आकार में मैप किया जाता है:
(,E n / t n ⌋, ..., te 0 / t 0 e, e n mod t n , ..., e 1 mod t 1 )। यह देखना आसान है कि तत्व का रैखिक सूचकांक अपेक्षित रूप से ऊपर सूत्र का अनुसरण करता है।

बार-बार टाइलिंग

बार-बार लगाने से XLA की टाइलिंग और भी लचीली हो जाती है।

चित्र 2

चित्र 2 से पता चलता है कि 4x8 के आकार की एक सरणी को टाइलिंग के दो स्तरों (पहले 2x4 और फिर 2x1) द्वारा टाइल किया गया है। हम (2,4) (2,1) के रूप में इस दोहराया टाइलिंग का प्रतिनिधित्व करते हैं। प्रत्येक रंग एक 2x4 टाइल इंगित करता है और प्रत्येक लाल बॉर्डर बॉक्स एक 2x1 टाइल है। संख्याएँ टाइल वाले प्रारूप में उस तत्व की स्मृति में रैखिक सूचकांक को इंगित करती हैं। यह प्रारूप TPU पर BF16 के लिए उपयोग किए गए प्रारूप से मेल खाता है, सिवाय इसके कि प्रारंभिक टाइल बड़ी है, अर्थात् टाइलिंग (8,128) (2,1) है, जहां 2x1 द्वारा दूसरी टाइलिंग का उद्देश्य दो 16 बिट मूल्यों को एक साथ इकट्ठा करना है एक टीपीयू के आर्किटेक्चर के साथ संरेखित करने के तरीके में एक 32 बिट मूल्य बनाते हैं।

ध्यान दें कि एक दूसरी या बाद की टाइल दोनों मामूली-टाइल आयामों को संदर्भित कर सकती है, जो टाइल के भीतर डेटा को फिर से व्यवस्थित करती है, जैसा कि इस उदाहरण में (8,128) (2,1) के साथ है, लेकिन प्रमुख क्रॉस-टाइल का भी उल्लेख कर सकते हैं पूर्व टाइलिंग से आयाम।

टाइल्स का उपयोग करके आयामों का संयोजन

XLA का टाइलिंग संयोजन आयामों का भी समर्थन करता है। उदाहरण के लिए, यह F32 में आयामों को संयोजित कर सकता है [2,7,8,11,10] {4,3,2,1,0} F32 में [112,110] {1,0} पहले इसे (2,3) के साथ टाइल करने से पहले )। प्रयुक्त टाइल (∗, ∗, 2, ∗, 3) है। यहाँ एक टाइल में एक तारांकन का तात्पर्य है उस आयाम को लेना और अगले अधिक छोटे आयाम के साथ संयोजन करना। कई आसन्न आयामों को एक आयाम में एक साथ रखा जा सकता है। टाइल के उस आयाम में -1 के टाइल मान द्वारा एक उप-आयाम का प्रतिनिधित्व किया जाता है, जो आयाम आकार के रूप में टाइल में अन्यथा मान्य नहीं है।

अधिक सटीक रूप से, यदि टाइल में तारांकन के माध्यम से आकार के आयाम I को समाप्त कर दिया जाता है, तो टाइलिंग की पूर्व परिभाषा लागू होने से पहले, उस आयाम को टाइल आकार और टाइल वेक्टर दोनों से हटा दिया जाता है, और आयाम I-1 क्या होता है i-1 डी करने के लिए मुझे लगता है मैं -1 डी का आकार अपने सरणी के लिए बाध्य घ से बढ़कर है। यह कदम टाइल वेक्टर में प्रत्येक तारांकन के लिए दोहराया जाता है।