
NVIDIA SASS निर्देश शब्दकोश का रिवर्स इंजीनियरिंग, कर्नेल ऑडिट और GPU आर्किटेक्चर में पैटर्न पहचान।
नियंत्रित कर्नेल से लेकर प्रोडक्शन ऑडिट तक NVIDIA SASS का रिवर्स इंजीनियरिंग।
लेख 1 · लेख 2 · ज्ञानकोष · पैटर्न लाइब्रेरी · SM120 निर्देश शब्दकोश · एन्कोडिंग नोट्स · यहाँ से शुरू करें · प्रोजेक्ट संरचना · टेंसर-कोर अध्याय · योगदान
SASS किंग NVIDIA SASS का एक व्यवस्थित रिवर्स-इंजीनियरिंग प्रोजेक्ट है, जो संकलित CUDA बाइनरी के अंदर उत्सर्जित मूल GPU निर्देश सेट है। यह प्रोजेक्ट SM120 / SM120a उपभोक्ता Blackwell हार्डवेयर से शुरू होता है और समय के साथ एक पूर्ण क्रॉस-आर्किटेक्चर ISA और पैटर्न लाइब्रेरी की ओर बढ़ता है।
लक्ष्य व्यावहारिक है: एक कर्नेल इंजीनियर को SASS डंप खोलने, कंपाइलर पैटर्न पहचानने, प्रदर्शन-प्रासंगिक संरचनाओं की पहचान करने, और बाइनरी को स्रोत-स्तरीय अनुकूलन निर्णयों से जोड़ने में मदद करना।
प्रोजेक्ट ने अपनी प्रारंभिक चरण 3 पैटर्न लाइब्रेरी पूरी कर ली है: 29 पुन: प्रयोज्य SASS हस्ताक्षर अब patterns/ के अंतर्गत औपचारिक रूप में हैं, knowledge/FINDINGS.md को पूर्ण साक्ष्य श्रृंखला के रूप में रखा गया है। अगला बड़ा कदम चरण 4 है: वास्तविक प्रोडक्शन कर्नेल पर उन पैटर्न को लागू करना।
| यदि आप चाहते हैं... | यहाँ से शुरू करें | फिर पढ़ें |
|---|---|---|
| 10 मिनट में प्रोजेक्ट समझें | docs/README.md | docs/START_HERE.md, फिर docs/PROJECT_STRUCTURE.md |
| साक्ष्य को पुन: उत्पन्न करें | corpus/README.md | एक अध्याय conclusion*.md, फिर इसका .sass डंप |
| सत्य का स्रोत खोजें | knowledge/FINDINGS.md | knowledge/SASS_INSTRUCTIONS_SM120.md, knowledge/encoding/README.md |
| किसी नए डंप में एक पैटर्न पहचानें | patterns/README.md | संबंधित patterns/NN-*.md पृष्ठ |
| प्रोडक्शन ऑडिट शुरू करें | production/README.md | संबंधित PATTERN-NN पृष्ठ और स्रोत साक्ष्य |
| कोई सुधार या डंप योगदान करें | CONTRIBUTING.md | docs/START_HERE.md |
रिपॉजिटरी एक साक्ष्य पाइपलाइन के रूप में व्यवस्थित है:
corpus/ नियंत्रित कर्नेल और रॉ SASS साक्ष्य
knowledge/ प्रोजेक्ट-व्यापी निष्कर्ष, निर्देश नोट्स और एन्कोडिंग नोट्स
patterns/ पुन: प्रयोज्य चरण 3 ऑडिट हस्ताक्षर
production/ चरण 4 वास्तविक-कर्नेल ऑडिट
भावना में समान अंतिम व्यापक सार्वजनिक SASS रिवर्स-इंजीनियरिंग कार्य 2018 में वोल्टा और ट्यूरिंग पर जिया एट अल. का था। एम्पीयर, हॉपर और ब्लैकवेल ने निर्देश मिश्रण को काफी हद तक बदल दिया है: एसिंक कॉपी पथ, टेंसर-कोर परिवार, मैट्रिक्स लोड/स्टोर निर्देश, स्पार्स और स्केल्ड MMA रूप, और नए यूनिफ़ॉर्म-रजिस्टर प्रवाह।
SASS किंग नियंत्रित माइक्रो-कर्नेल, रॉ SASS पढ़ना, रनटाइम प्रोब और प्रोडक्शन-कर्नेल ऑडिट को मिलाकर उस अंतर को भरता है।
| क्षेत्र | स्थिति | कहाँ |
|---|---|---|
| SM120 शिक्षण कर्नेल | कर्नेल 01-12 के माध्यम से पूर्ण | corpus/basics/01_vector_add/ से corpus/math_and_spills/12_register_spill/ तक |
| टेंसर-कोर अध्ययन | कर्नेल 25 के माध्यम से पूर्ण | corpus/tensor_cores/ |
| वैश्विक निष्कर्ष | सक्रिय सत्य स्रोत | knowledge/FINDINGS.md |
| SM120 निर्देश शब्दकोश | सक्रिय, साक्ष्य-समर्थित | knowledge/SASS_INSTRUCTIONS_SM120.md |
| एन्कोडिंग पायलट | LDSM, STSM, QMMA से शुरू | knowledge/encoding/ |
| denvdis क्रॉस-सत्यापन | प्रारंभिक पास पूर्ण; गहरा नियंत्रण-कोड अंतर शेष | knowledge/DENVDIS_INTEGRATION.md |
| पैटर्न लाइब्रेरी | प्रारंभिक चरण 3 लाइब्रेरी पूर्ण | patterns/ |
| प्रोडक्शन ऑडिट | अगला चरण | production/ |
औपचारिक पैटर्न लाइब्रेरी चरण 3 का मुख्य आउटपुट है। यह अध्याय-स्थानीय साक्ष्य को पुन: प्रयोज्य ऑडिट हस्ताक्षर में बदलता है, ताकि एक ऑडिट हर बार पूर्ण शोध श्रृंखला को फिर से लिखने के बजाय एक नामित पैटर्न का हवाला दे सके।
चरण 3 को पूर्ण माना जाता है क्योंकि:
knowledge/FINDINGS.md में स्रोत साक्ष्य से बंधे रहते हैं;patterns/README.md से शुरू होता है;| पैटर्न परिवार | उदाहरण | कहाँ |
|---|---|---|
| टेंसर-कोर गणना | HMMA, QMMA, OMMA संचायक श्रृंखलाएँ; स्पार्स मेटाडेटा; संकीर्ण खंड | patterns/02-* से patterns/04-*, patterns/10-*, patterns/21-* |
| मैट्रिक्स मेमोरी और एपिलॉग | LDSM, STSM, एसिंक कॉपी पाइपलाइन, REDG कमी एपिलॉग | patterns/05-*, patterns/06-*, patterns/07-*, patterns/28-* |
| नियंत्रण प्रवाह | विचलन/पुनर्मिलन, लूप बैक-एज, प्रेडिकेटेड एग्जिट, कोल्ड ट्रैप, स्थानीय CALLs | patterns/08-*, patterns/14-*, patterns/16-*, patterns/26-*, patterns/29-* |
| मेमोरी और रजिस्टर | वेक्टराइज्ड ग्लोबल मेमोरी, स्पिल, शेयर्ड-मेमोरी स्टेजिंग, डिस्क्रिप्टर, यूनिफ़ॉर्म-रजिस्टर प्रवाह | patterns/09-*, patterns/11-*, patterns/17-*, patterns/19-*, patterns/20-* |
| अंकगणित और शेड्यूलिंग | FFMA फ्यूजन, स्थिरांक, MUFU स्लो-पथ, स्कोरबोर्ड, लाइफटाइम रिसाइक्लिंग | patterns/12-*, patterns/18-*, patterns/22-*, patterns/23-*, patterns/24-* |
| वार्प सामूहिक | वार्प कमी, शफल/वोट/मैच/सिंक प्राइमिटिव | patterns/01-*, patterns/25-* |
प्रत्येक पैटर्न पृष्ठ में शामिल हैं:
ऑडिट-सामने सूचकांक के रूप में patterns/README.md का उपयोग करें। जब आपको किसी पैटर्न के पीछे लंबे शोध संदर्भ की आवश्यकता हो, तो knowledge/FINDINGS.md का उपयोग करें।
चरण 3 यह दावा नहीं करता कि प्रत्येक NVIDIA SASS व्यवहार डीकोड किया गया है। यह एक पुन: प्रयोज्य SM120 / SM120a पैटर्न परत स्थापित करता है जो मैन्युअल प्रोडक्शन ऑडिट शुरू करने के लिए पर्याप्त है। रनटाइम लेआउट डीकोड, पूर्ण नियंत्रण-कोड बिट प्लेसमेंट, स्वचालित क्यूबिन रिपोर्टिंग और क्रॉस-आर्किटेक्चर रीप्ले भविष्य के कार्य बने हुए हैं।