कार्रवाइयां
mpmd.assign (mpmd::AssignOp)
असाइन ऑपरेशन
सिंटैक्स:
operation ::= `mpmd.assign` attr-dict $tensor `:` functional-type(operands, results)
यह फ़ंक्शन, किसी मेश में पूरी तरह से रेप्लिकेट किए गए लोकल टेंसर को असाइन करता है.
यह एक अस्थायी ऑप है. इसे तब लागू किया जाता है, जब jax ऑप को कम किया जाता है, ताकि लोकल टाइप से मेश टाइप पर स्विच किया जा सके. जब फ़ंक्शनल ऑप के इनपुट और नतीजे मेश टेंसर बन जाते हैं, तब इंपोर्ट के दौरान इन ऑप को हटा दिया जाएगा.
नतीजे के टाइप का मेश नाम, टोपोलॉजी में मौजूद मेश से मेल खाना चाहिए. साथ ही, इसका ग्लोबल टाइप, ऑपरेंड टाइप के जैसा होना चाहिए.
असाइन किए गए ऑप का ऑरिजिन, मेश का ऑरिजिन होता है. जैसे, named_computation, मेश इन्फ़रेंस वगैरह.
विशेषताएं: AlwaysSpeculatableImplTrait, HasParent<::mlir::func::FuncOp, ForOp>
इंटरफ़ेस: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
असर: MemoryEffects::Effect{}
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
origin | ::mlir::StringAttr | स्ट्रिंग एट्रिब्यूट |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensor |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
result |
मेश टेंसर टाइप |
mpmd.broadcast (mpmd::BroadcastOp)
ब्रॉडकास्ट ऑपरेशन
सिंटैक्स:
operation ::= `mpmd.broadcast` attr-dict $tensor `:` type($tensor)
इस विकल्प की मदद से, किसी भी मेश में इस्तेमाल किए गए टेंसर को ट्रांसफ़र (या कॉपी) किया जा सकता है. ट्रांसफ़र किए जाने पर, ट्रांसफ़र का ऑरिजिन, ऑपरेंड की मौजूदा जगह होती है.
विशेषताएं: AlwaysSpeculatableImplTrait, SameOperandsAndResultType
इंटरफ़ेस: ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
असर: MemoryEffects::Effect{}
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensor |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
result |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
mpmd.call (mpmd::CallOp)
एमपीएमडी के हिसाब से कॉल फ़ंक्शन
सिंटैक्स:
operation ::= `mpmd.call` $callee `(` $tensors `)` attr-dict `:` functional-type(operands, results)
फ़ंक्शन कॉल करने की कार्रवाई. यह फ़ंक्शन, लूप के मुख्य हिस्से को फ़ंक्शन के एलान में रैप करने के लिए उपयोगी है, ताकि कोड का साइज़ कम किया जा सके. उदाहरण के लिए.
इंटरफ़ेस: ArgAndResultAttrsOpInterface, CallOpInterface, SymbolUserOpInterface
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
callee | ::mlir::FlatSymbolRefAttr | फ़्लैट सिंबल का रेफ़रंस एट्रिब्यूट |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensors |
किसी भी नॉन-टोकन टाइप की वैल्यू या मेश टेंसर टाइप का वैरिएडिक |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
| «unnamed» | किसी भी नॉन-टोकन टाइप की वैल्यू या मेश टेंसर टाइप का वैरिएडिक |
mpmd.for (mpmd::ForOp)
ऑपरेटर के लिए
यह फ़ंक्शन, तय की गई संख्या में दोहराव के लिए बॉडी फ़ंक्शन को लागू करने का नतीजा दिखाता है. साथ ही, बॉडी में दोहराव का इंडेक्स उपलब्ध होता है.
अनरोल फ़ैक्टर एक वैकल्पिक फ़ैक्टर है. यह फ़ैक्टर, पुनरावृति की संख्या को विभाजित करता है. इसका इस्तेमाल, अनरोल फ़ैक्टर के हिसाब से ऑप के मुख्य हिस्से को अनरोल करने के लिए किया जा सकता है. उदाहरण के लिए, अनरोल फ़ैक्टर N के लिए, मुख्य हिस्से को N कॉपी बनाने के लिए दोहराया जाता है. साथ ही, पुनरावृति की संख्या को 1/N के फ़ैक्टर से कम किया जाता है. पहली कॉपी को छोड़कर, हर कॉपी में ब्लॉक आर्ग्युमेंट के बजाय पिछली कॉपी के नतीजों का इस्तेमाल किया जाता है. साथ ही, हर कॉपी के बाद, इटरेशन इंडेक्स को अनरोल फ़ैक्टर से गुणा किया जाता है और उसमें एक की बढ़ोतरी की जाती है.
for ऑपरेटर, किसी भी टाइप को स्वीकार और वापस कर सकता है. हालांकि, इन सभी का TypeID एक जैसा होना चाहिए. उदाहरण के लिए, सभी टेंसर टाइप या सभी MPMD मेश टाइप वगैरह. इससे हमें अलग-अलग लेवल पर ऑपरेटर का इस्तेमाल करने की अनुमति मिलती है. साथ ही, हम ऑपरेटर के लागू करने और ट्रांसफ़ॉर्मेशन को शेयर कर सकते हैं.
ट्रेट: HLO_PairwiseSameOperandAndResultType, RecursiveMemoryEffects, RecursivelySpeculatableImplTrait, SingleBlockImplicitTerminator<ReturnOp>, SingleBlock
इंटरफ़ेस: ConditionallySpeculatable, LoopLikeOpInterface, OpAsmOpInterface, ShardableDataFlowOpInterface
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
iterations | ::mlir::IntegerAttr | बिना हस्ताक्षर वाला 32-बिट पूर्णांक एट्रिब्यूट |
unroll_factor | ::mlir::IntegerAttr | बिना हस्ताक्षर वाला 32-बिट पूर्णांक एट्रिब्यूट |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensors |
किसी भी नॉन-टोकन टाइप का वैरिएडिक |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
results |
किसी भी नॉन-टोकन टाइप का वैरिएडिक |
mpmd.fragment (mpmd::FragmentOp)
फ़्रैगमेंट ऑपरेशन
यह फ़ंक्शन, किसी कंप्यूटेशन यानी ऑपरेशनों के ब्लॉक को MPMD टोपोलॉजी में मौजूद किसी खास मेश को असाइन करता है. इस मेश को SPMD प्रोग्राम के अलग-अलग फ़्रैगमेंट के तौर पर एक्ज़ीक्यूट किया जाता है.
फ़्रैगमेंट सिर्फ़ उन मेश टेंसर को लेता और दिखाता है जिन्हें फ़्रैगमेंट के तौर पर एक ही मेश असाइन किया गया है.
फ़्रैगमेंट के मेश का नाम, टोपोलॉजी में मौजूद मेश से मेल खाना चाहिए.
फ़्रैगमेंट में ऑरिजिन की सूची शामिल होती है.इसका मतलब है कि इसमें ओरिजनल named_computations के बारे में जानकारी देने वाला मेटाडेटा होता है. साथ ही, इसमें staged_id होता है.इसे iff तब तय किया जाता है, जब यह उपयोगकर्ता के तय किए गए फ़्रैगमेंट के तौर पर होता है. इसका मतलब है कि इसमें ऑरिजिन की सूची खाली नहीं होती. वैकल्पिक in_shardings, फ़्रैगमेंट के ब्लॉक आर्ग्युमेंट की शार्डिंग के बारे में बताता है. ये ब्लॉक आर्ग्युमेंट, ऑपरेंड से मेल खाते हैं. ज़रूरी नहीं है कि out_shardings में नतीजों के शार्डिंग की जानकारी दी जाए.
फ़्रैगमेंट के क्षेत्र में कोई भी फ़्री वैरिएबल नहीं होना चाहिए. साथ ही, क्षेत्र में मौजूद हर ब्लॉक आर्ग्युमेंट और दिखाई गई वैल्यू का टाइप, संबंधित मेश टेंसर का ग्लोबल टेंसर टाइप होता है.
ट्रेट: HasParent<::mlir::func::FuncOp, ForOp>, IsolatedFromAbove, RecursiveMemoryEffects, RecursivelySpeculatableImplTrait, SingleBlockImplicitTerminator<ReturnOp>, SingleBlock
इंटरफ़ेस: ConditionallySpeculatable, ShardableDataFlowOpInterface
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
origin | ::mlir::ArrayAttr | शुरुआत की जगह की जानकारी का कलेक्शन |
mesh_name | ::mlir::StringAttr | स्ट्रिंग एट्रिब्यूट |
stage_id | ::mlir::IntegerAttr | 64-बिट का बिना साइन वाला पूर्णांक एट्रिब्यूट |
in_shardings | ::mlir::sdy::TensorShardingPerValueAttr | किसी ऑप के हर ऑपरेंड/नतीजे के हिसाब से टेंसर शार्डिंग |
out_shardings | ::mlir::sdy::TensorShardingPerValueAttr | किसी ऑप के हर ऑपरेंड/नतीजे के हिसाब से टेंसर शार्डिंग |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
inputs |
मेश टेंसर टाइप या टोकन का वैरिएडिक |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
results |
मेश टेंसर टाइप या टोकन का वैरिएडिक |
mpmd.fragment_call (mpmd::FragmentCallOp)
फ़्रैगमेंट कॉल ऑपरेशन
यह फ़ंक्शन को कॉल करने के बारे में बताता है. इस फ़ंक्शन में, MPMD फ़्रैगमेंट बॉडी होती है. इसका मतलब है कि MPMD टोपोलॉजी में किसी खास मेश को असाइन किया गया कंप्यूटेशन. इसे अलग-अलग SPMD प्रोग्राम फ़्रैगमेंट के तौर पर एक्ज़ीक्यूट किया जाता है.
फ़्रैगमेंट के मेश का नाम, फ़ंक्शन को शामिल करने वाले फ़ंक्शन की टोपोलॉजी में मौजूद मेश से मेल खाना चाहिए. साथ ही, मेश का आकार, कॉल किए गए फ़ंक्शन के मेश के आकार से मेल खाना चाहिए.
ऑरिजिन, उपयोगकर्ता के नाम वाली उन कंप्यूटेशन के बारे में बताता है जिन्होंने इस फ़्रैगमेंट कॉल में योगदान दिया है. उदाहरण के लिए, मर्ज करने के ज़रिए.
कॉल किए गए फ़ंक्शन के इनपुट और नतीजे के टाइप, इस ऑप के ऑपरेंड और नतीजों के संबंधित मेश टेंसर के लोकल टेंसर टाइप होने चाहिए.
उदाहरण:
%2 = mpmd.fragment_call<mesh="m1",> origin=[] @my_fragment(%0, %1) :
(m<esh>_tensor..., m<esh>_te>nsor...) - m<esh>_tensor...
विशेषताएं: HasParent<::mlir::func::FuncOp>, MemRefsNormalizable
इंटरफ़ेस: ArgAndResultAttrsOpInterface, CallOpInterface, SymbolUserOpInterface
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
origin | ::mlir::ArrayAttr | शुरुआत की जगह की जानकारी का कलेक्शन |
mesh_name | ::mlir::StringAttr | स्ट्रिंग एट्रिब्यूट |
callee | ::mlir::FlatSymbolRefAttr | फ़्लैट सिंबल का रेफ़रंस एट्रिब्यूट |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensors |
मेश टेंसर टाइप का वैरिएडिक |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
| «unnamed» | मेश टेंसर टाइप का वैरिएडिक |
mpmd.named_computation (mpmd::NamedComputationOp)
नाम वाले स्कोप का ऑपरेशन
यह एट्रिब्यूट, कंप्यूटेशन यानी कि ऑपरेशनों के ब्लॉक को ग्रुप करता है. साथ ही, इसे नाम देता है और UserOrigin एट्रिब्यूट के ज़रिए ट्रांसपोज़ की संख्या देता है. इस NamedComputation का इस्तेमाल, MPMD में कंप्यूटेशन को मेश असाइन करने या ऑप्टिमाइज़ेशन के लिए किया जा सकता है.
ट्रांसपोज़ काउंट (डिफ़ॉल्ट=0) से पता चलता है कि नाम वाली कंप्यूटेशन को JAX AD ट्रांसपोज़ ट्रांसफ़ॉर्मेशन की किसी संख्या से बनाया गया है या नहीं.
ऑपरेशन के क्षेत्र में कोई भी फ़्री वैरिएबल नहीं होना चाहिए. साथ ही, क्षेत्र में हर ब्लॉक आर्ग्युमेंट और दिखाई गई वैल्यू का टाइप, ऑपरेशन के इनपुट और रिटर्न टाइप के टाइप जैसा ही होना चाहिए.
ट्रेट: IsolatedFromAbove, RecursiveMemoryEffects, RecursivelySpeculatableImplTrait, SingleBlockImplicitTerminator<ReturnOp>, SingleBlock
इंटरफ़ेस: ConditionallySpeculatable
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
origin | ::mlir::mpmd::UserOriginAttr | उपयोगकर्ता के तय किए गए कंप्यूटेशन का ओरिजन. |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensors |
4/6/8/16/32/64-बिट फ़्लोट या बूल या 2/4/8/16/32/64-बिट पूर्णांक या 32/64-बिट फ़्लोट एलिमेंट या हर-टेंसर पूर्णांक क्वांटीकृत वैल्यू या टोकन के साथ रैंक किए गए टेंसर का वैरिएडिक |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
results |
4/6/8/16/32/64-बिट फ़्लोट या बूलियन या 2/4/8/16/32/64-बिट पूर्णांक या 32/64-बिट फ़्लोट एलिमेंट या हर-टेंसर पूर्णांक क्वांटीकृत वैल्यू या टोकन वाले कॉम्प्लेक्स टाइप के रैंक किए गए टेंसर का वैरिएडिक |
mpmd.named_tensor (mpmd::NamedTensorOp)
किसी मेश को कोई टेंसर असाइन करना
सिंटैक्स:
operation ::= `mpmd.named_tensor` $tensor `name````=```$name attr-dict `:` type($result)
यह एक आइडेंटिटी ऑप है, जो किसी टेंसर के नतीजे को दिए गए नाम से जोड़ता है. इस NamedTensor का इस्तेमाल, MPMD में किसी टेंसर को मेश असाइन करने के लिए किया जा सकता है.
विशेषताएं: AlwaysSpeculatableImplTrait, SameOperandsAndResultType
इंटरफ़ेस: ConditionallySpeculatable, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
असर: MemoryEffects::Effect{}
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
name | ::mlir::StringAttr | स्ट्रिंग एट्रिब्यूट |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensor |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
result |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
mpmd.reduce (mpmd::ReduceOp)
क्रॉस-मेश रिड्यूस ऑपरेशन
सिंटैक्स:
operation ::= `mpmd.reduce` `` $reduction attr-dict $tensors `:` functional-type(operands, results)
इस सुविधा की मदद से, अलग-अलग मेश में किसी टेंसर को कम किया जा सकता है. इसके बाद, इसे उस जगह पर ब्रॉडकास्ट किया जा सकता है जहां इसका इस्तेमाल करना है.
विशेषताएं: AlwaysSpeculatableImplTrait, SameOperandsAndResultType
इंटरफ़ेस: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
असर: MemoryEffects::Effect{}
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
reduction | ::mlir::mpmd::ReductionAttr | इससे कमी का पता चलता है. |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensors |
किसी भी नॉन-टोकन टाइप की वैल्यू के टेंसर का वैरिएडिक |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
result |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
mpmd.return (mpmd::ReturnOp)
mpmd.return ऑपरेशन, mpmd से जुड़े उन क्षेत्रों को खत्म कर देता है जो क्षेत्र के हिसाब से काम करते हैं. यह वैरिएडिक है: यह वैल्यू की एक सूची को आर्ग्युमेंट के तौर पर लेता है.AnyTensor
सिंटैक्स:
operation ::= `mpmd.return` attr-dict $results (`:` type($results)^)?
विशेषताएं: AlwaysSpeculatableImplTrait, Terminator
इंटरफ़ेस: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
असर: MemoryEffects::Effect{}
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
results |
किसी भी नॉन-टोकन टाइप का वैरिएडिक |
mpmd.transfer (mpmd::TransferOp)
ट्रांसफ़र ऑपरेशन
सिंटैक्स:
operation ::= `mpmd.transfer` attr-dict $tensor `:` functional-type(operands, results)
यह फ़ंक्शन, डिस्ट्रिब्यूट किए गए किसी टेंसर को एक मेश से दूसरे मेश में ट्रांसफ़र करता है.
ऑपरेंड और नतीजे के टाइप के मेश के नाम, टोपोलॉजी में मौजूद मेश से मेल खाने चाहिए. साथ ही, उनके ग्लोबल टाइप एक जैसे होने चाहिए.
विशेषताएं: AlwaysSpeculatableImplTrait, HasParent<::mlir::func::FuncOp>
इंटरफ़ेस: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), ShardingRuleOpInterface
असर: MemoryEffects::Effect{}
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensor |
मेश टेंसर टाइप |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
result |
मेश टेंसर टाइप |
mpmd.unassign (mpmd::UnassignOp)
अनअसाइन करने की कार्रवाई
सिंटैक्स:
operation ::= `mpmd.unassign` attr-dict $tensor `:` functional-type(operands, results)
यह फ़ंक्शन, किसी मेश से पूरी तरह से रेप्लिकेट किए गए टेंसर को अनअसाइन करता है.
यह एक अस्थायी ऑप है. इसे तब लागू किया जाता है, जब jax ऑप को कम किया जाता है, ताकि लोकल टाइप से मेश टाइप पर स्विच किया जा सके. जब फ़ंक्शनल ऑप के इनपुट और नतीजे मेश टेंसर बन जाते हैं, तब इंपोर्ट के दौरान इन ऑप को हटा दिया जाएगा.
ऑपरेंड टाइप के मेश का नाम, टोपोलॉजी में मौजूद मेश से मेल खाना चाहिए. साथ ही, इसका ग्लोबल टाइप, नतीजे के टाइप के जैसा होना चाहिए.
विशेषताएं: AlwaysSpeculatableImplTrait, HasParent<::mlir::func::FuncOp, ForOp>, InferTensorType
इंटरफ़ेस: ConditionallySpeculatable, InferShapedTypeOpInterface, InferTypeOpInterface, NoMemoryEffect (MemoryEffectOpInterface)
असर: MemoryEffects::Effect{}
विशेषताएं:
| एट्रिब्यूट | MLIR टाइप | ब्यौरा |
|---|---|---|
origin | ::mlir::StringAttr | स्ट्रिंग एट्रिब्यूट |
ऑपरेंड:
| ओपेरैंड | ब्यौरा |
|---|---|
tensor |
मेश टेंसर टाइप |
नतीजे:
| नतीजा | ब्यौरा |
|---|---|
result |
किसी भी नॉन-टोकन टाइप की वैल्यू का टेंसर |
विशेषताएं
MeshWithOriginsAttr
इसके मूल सिद्धांतों के साथ तालमेल बिठाना.
सिंटैक्स:
#mpmd.mesh_with_origins<
::llvm::StringRef, # mesh_name
::llvm::ArrayRef<OriginAttr> # origins
>
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| mesh_name | ::llvm::StringRef |
mesh_name |
| ओरिजन | ::llvm::ArrayRef<OriginAttr> |
ओरिजन |
MeshesWithOriginsAttr
ऑरिजिन के साथ मेश की सूची.
सिंटैक्स:
#mpmd.meshes_with_origins<
::llvm::ArrayRef<MeshWithOriginsAttr> # value
>
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| मान | ::llvm::ArrayRef<MeshWithOriginsAttr> |
NamedMeshAttr
नाम और मेश वाला एक पेयर.
सिंटैक्स:
#mpmd.named_mesh<
::llvm::StringRef, # name
sdy::MeshAttr # mesh
>
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| नाम | ::llvm::StringRef |
नाम |
| मेश | sdy::MeshAttr |
मेश |
OriginAttr
मेश असाइनमेंट का ऑरिजिन.
सिंटैक्स:
#mpmd.origin<
::llvm::StringRef # origin_label
>
मेश असाइनमेंट का ऑरिजिन.
origin_label, ऑरिजिन के लिए ऐसा लेबल है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है.
इसका इस्तेमाल डीबग करने के लिए किया जाता है.
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| origin_label | ::llvm::StringRef |
origin_label |
ReductionAttr
इससे कमी का पता चलता है.
सिंटैक्स:
#mpmd.reduction<
`none` | `add` | `max` | `min` | `mul` | `or` | `and` # reduction_type
>
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| reduction_type | ::mlir::mpmd::ReductionType |
ReductionType टाइप की सूची |
TopologyAttr
नाम वाली मेश की टोपोलॉजी.
सिंटैक्स:
#mpmd.topology<
::llvm::ArrayRef<NamedMeshAttr> # meshes
>
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| मेश | ::llvm::ArrayRef<NamedMeshAttr> |
टोपोलॉजी मेश |
UserOriginAttr
उपयोगकर्ता के तय किए गए कंप्यूटेशन का सोर्स.
सिंटैक्स:
#mpmd.user_origin<
::mlir::StringAttr, # userName
int64_t # transposeCount
>
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| userName | ::mlir::StringAttr |
|
| transposeCount | int64_t |
टाइप
MeshTensorType
मेश टेंसर टाइप
यह प्रोग्राम के एमपीएमडी टोपोलॉजी ऑफ़ मेश में, किसी खास एसपीएमडी मेश को RankedTensorType असाइन करता है. टाइप में एक वैकल्पिक शार्डिंग होती है. इससे यह तय होता है कि एसपीएमडी मेश के हिसाब से, टेंसर को कैसे शार्ड किया जाता है. अगर शार्डिंग मौजूद नहीं है, तो टेंसर को पूरी तरह से दोहराया जाता है.
पैरामीटर:
| पैरामीटर | C++ टाइप | ब्यौरा |
|---|---|---|
| mesh_name | ::llvm::StringRef |
मेश नेटवर्क का नाम |
| ranked_tensor_type | ::mlir::RankedTensorType |
रैंक किया गया टेंसर टाइप |
| शार्डिंग | ::mlir::sdy::TensorShardingAttr |
|
| memory_kind | ::mlir::StringAttr |
Enums
ReductionType
किराये में छूट का टाइप एट्रिब्यूट
केस:
| चिह्न | मान | स्ट्रिंग |
|---|---|---|
| kNone | 0 |
कोई नहीं |
| kAdd | 1 |
जोड़ें |
| kMax | 2 |
अधिकतम |
| kMin | 3 |
कम से कम |
| kMul | 4 |
mul |
| kOr | 5 |
या |
| kAnd | 6 |
और |
EdgeNodeType
Edge node type enum
केस:
| चिह्न | मान | स्ट्रिंग |
|---|---|---|
| OPERAND | 0 |
ऑपरेंड |
| RESULT | 1 |
नतीजा |
PropagationDirection
Propagation direction enum
केस:
| चिह्न | मान | स्ट्रिंग |
|---|---|---|
| कोई नहीं | 0 |
कोई नहीं |
| FORWARD | 1 |
FORWARD |
| BACKWARD | 2 |
BACKWARD |
| दोनों | 3 |
दोनों |
ReductionOp
Reduction op enum
केस:
| चिह्न | मान | स्ट्रिंग |
|---|---|---|
| SUM | 0 |
सम करें |
| MAX | 1 |
अधिकतम |
| MIN | 2 |
कम से कम |