অপারেশন
mpmd.assign (mpmd::AssignOp)
অপারেশন বরাদ্দ করুন
সিনট্যাক্স:
operation ::= `mpmd.assign` attr-dict $tensor `:` functional-type(operands, results)
একটি স্থানীয় টেনসরকে একটি জালের মধ্যে সম্পূর্ণরূপে প্রতিলিপিকৃত জালের জন্য বরাদ্দ করে৷
এটি একটি অস্থায়ী অপস যা jax ops কমানোর সময় প্রবর্তিত হয়, স্থানীয় প্রকার থেকে জাল প্রকারে যাওয়ার জন্য। এই অপ্সগুলি আমদানির সময় বাদ দেওয়া হবে, যখন ফাঙ্ক অপের ইনপুট এবং ফলাফলগুলি জাল টেনসর হয়ে যাবে৷
ফলাফলের প্রকারের জালের নাম টপোলজিতে একটি জালের সাথে মিলিত হওয়া উচিত এবং এর গ্লোবাল টাইপটি অপারেন্ড প্রকারের সাথে অভিন্ন হওয়া উচিত।
assign op এর উৎপত্তি হল জালের উৎপত্তি, যেমন name_computation, mesh inference, ইত্যাদি।
বৈশিষ্ট্য: 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 | যে কোনো ধরনের মান বা জাল টেনসর ধরনের টেনসরের বৈচিত্র্যময় |
ফলাফল:
| ফলাফল | বর্ণনা |
|---|---|
| "নামহীন" | যে কোনো ধরনের মান বা জাল টেনসর ধরনের টেনসরের বৈচিত্র্যময় |
mpmd.for (mpmd::ForOp)
অপারেটরের জন্য
একটি নির্দিষ্ট সংখ্যক পুনরাবৃত্তির জন্য একটি বডি ফাংশন কার্যকর করার ফলাফল প্রদান করে, যার সাথে বডিতে উপলব্ধ পুনরাবৃত্তি সূচক রয়েছে৷
একটি ঐচ্ছিক আনরোল ফ্যাক্টর, যা অবশ্যই পুনরাবৃত্তির সংখ্যাকে ভাগ করতে হবে, সেই ফ্যাক্টর দ্বারা অপের বডি আনরোল করার জন্য নির্দিষ্ট করা যেতে পারে, অর্থাৎ আনরোল ফ্যাক্টর N এর জন্য, বডিটি N কপি তৈরি করতে প্রতিলিপি করা হয় এবং পুনরাবৃত্তির সংখ্যা 1/N এর একটি ফ্যাক্টর দ্বারা হ্রাস করা হয়। প্রথমটি ব্যতীত প্রতিটি অনুলিপি ব্লক আর্গুমেন্টের পরিবর্তে পূর্ববর্তী অনুলিপির ফলাফল ব্যবহার করে এবং পুনরাবৃত্তি সূচকটি আনরোল ফ্যাক্টর দ্বারা গুণিত হয় এবং প্রতিটি অনুলিপির পরে বৃদ্ধি পায়।
A 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 প্রোগ্রাম খণ্ড হিসাবে কার্যকর করার উদ্দেশ্যে করা হয়।
খণ্ডটি কেবলমাত্র মেশ টেনসরগুলি গ্রহণ করে এবং ফেরত দেয় যা টুকরোটির মতো একই জালের সাথে নির্ধারিত হয়।
খণ্ডটির জাল নামটি টপোলজিতে একটি জালের সাথে সঙ্গতিপূর্ণ হওয়া উচিত।
এই খণ্ডটিতে উৎপত্তির একটি তালিকা রয়েছে, অর্থাত্, তথ্য সহ মেটাডেটা যা এই খণ্ডটি তৈরি করেছে, এবং একটি স্টেজ_আইডি সংজ্ঞায়িত করা হয়েছে যদি এটি একটি ব্যবহারকারীর সংজ্ঞায়িত খণ্ড, অর্থাৎ, এটির উত্সের একটি খালি তালিকা নেই। ঐচ্ছিক in_shardings একটি খণ্ডের ব্লক আর্গুমেন্টের শার্ডিং নির্দিষ্ট করে, যা অপারেন্ডের সাথে মিলে যায়। ঐচ্ছিক out_shardings ফলাফলের 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) :
(mesh_tensor<...>, mesh_tensor<...>) -> mesh_tensor<...>
বৈশিষ্ট্য: HasParent<::mlir::func::FuncOp> , MemRefsNormalizable
ইন্টারফেস: ArgAndResultAttrsOpInterface , CallOpInterface , SymbolUserOpInterface
গুণাবলী:
| বৈশিষ্ট্য | MLIR প্রকার | বর্ণনা |
|---|---|---|
origin | ::mlir::ArrayAttr | মূল তথ্যের অ্যারে |
mesh_name | ::mlir::StringAttr | স্ট্রিং বৈশিষ্ট্য |
callee | ::mlir::FlatSymbolRefAttr | সমতল প্রতীক রেফারেন্স বৈশিষ্ট্য |
অপারেন্ডস:
| অপারেন্ড | বর্ণনা |
|---|---|
tensors | জাল টেনসর প্রকারের বৈচিত্র্যময় |
ফলাফল:
| ফলাফল | বর্ণনা |
|---|---|
| "নামহীন" | জাল টেনসর প্রকারের বৈচিত্র্যময় |
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 ) এবং তাই MPMD IR স্ট্যাকের বিভিন্ন স্তরে পুনরায় ব্যবহার করা যেতে পারে।
সিনট্যাক্স:
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 ops কমানোর সময় প্রবর্তিত হয়, স্থানীয় প্রকার থেকে জাল প্রকারে যাওয়ার জন্য। এই অপ্সগুলি আমদানির সময় বাদ দেওয়া হবে, যখন ফাঙ্ক অপের ইনপুট এবং ফলাফলগুলি জাল টেনসর হয়ে যাবে৷
অপারেন্ড টাইপের জালের নাম টপোলজিতে একটি জালের সাথে মিলিত হওয়া উচিত এবং এর গ্লোবাল টাইপ ফলাফলের প্রকারের সাথে অভিন্ন হওয়া উচিত।
বৈশিষ্ট্য: 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++ প্রকার | বর্ণনা |
|---|---|---|
| জাল_নাম | ::llvm::StringRef | জাল_নাম |
| উৎপত্তি | ::llvm::ArrayRef<OriginAttr> | উৎপত্তি |
MeshesWithOriginsAttr
তাদের উত্স সহ meshes একটি তালিকা.
সিনট্যাক্স:
#mpmd.meshes_with_origins<
::llvm::ArrayRef<MeshWithOriginsAttr> # value
>
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| মান | ::llvm::ArrayRef<MeshWithOriginsAttr> |
নাম দেওয়া হয়েছেMeshAttr
একটি নাম এবং একটি জাল সহ একটি জোড়া।
সিনট্যাক্স:
#mpmd.named_mesh<
::llvm::StringRef, # name
sdy::MeshAttr # mesh
>
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| নাম | ::llvm::StringRef | নাম |
| জাল | sdy::MeshAttr | জাল |
OriginAttr
জাল নিয়োগের উত্স।
সিনট্যাক্স:
#mpmd.origin<
::llvm::StringRef # origin_label
>
একটি জাল নিয়োগের উত্স.
origin_label হল উৎপত্তির জন্য একটি মানব-পাঠযোগ্য লেবেল। এটি ডিবাগিং উদ্দেশ্যে ব্যবহার করার উদ্দেশ্যে করা হয়েছে৷
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| মূল_লেবেল | ::llvm::StringRef | মূল_লেবেল |
ReductionAttr
হ্রাস নির্দেশ করে।
সিনট্যাক্স:
#mpmd.reduction<
::mlir::mpmd::ReductionType # reduction_type
>
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| হ্রাস_প্রকার | ::mlir::mpmd::ReductionType | ReductionType ধরনের একটি enum |
টপোলজিএটিআর
নামযুক্ত মেশের টপোলজি।
সিনট্যাক্স:
#mpmd.topology<
::llvm::ArrayRef<NamedMeshAttr> # meshes
>
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| জাল | ::llvm::ArrayRef<NamedMeshAttr> | টপোলজি মেশ |
UserOriginAttr
ব্যবহারকারী-নির্দিষ্ট গণনার উত্স।
সিনট্যাক্স:
#mpmd.user_origin<
::mlir::StringAttr, # userName
int64_t # transposeCount
>
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| ব্যবহারকারীর নাম | ::mlir::StringAttr | |
| transposecount | int64_t |
প্রকারভেদ
মেশটেনসর টাইপ
জাল টেনসর প্রকার
প্রোগ্রামের MPMD টপোলজিতে একটি নির্দিষ্ট SPMD মেশে একটি RankedTensorType বরাদ্দ করে। টাইপ একটি ঐচ্ছিক শার্ডিং ধারণ করে যা নির্দিষ্ট করে যে কিভাবে টেনসরটি SPMD জালের সাথে শার্ড করা হয়। শর্ডিং উপস্থিত না থাকলে টেনসরটি সম্পূর্ণরূপে প্রতিলিপি করা হয়।
পরামিতি:
| প্যারামিটার | C++ প্রকার | বর্ণনা |
|---|---|---|
| জাল_নাম | ::llvm::StringRef | জাল নাম |
| ranked_tensor_type | ::mlir::RankedTensorType | র্যাঙ্ক করা টেনসরের ধরন |
| শার্ডিং | ::mlir::sdy::TensorShardingAttr | |
| স্মৃতি_প্রকার | ::mlir::StringAttr |
Enums
রিডাকশন টাইপ
রিডাকশন টাইপ অ্যাট্রিবিউট
মামলা:
| প্রতীক | মান | স্ট্রিং |
|---|---|---|
| কোনোটিই নয় | 0 | কোনটি |
| kAdd | 1 | যোগ করুন |
| kMax | 2 | সর্বোচ্চ |
| kMin | 3 | মিনিট |
| kMul | 4 | mul |
| kOr | 5 | বা |
| kAnd | 6 | এবং |
এজনোড টাইপ
এজ নোড টাইপ enum
মামলা:
| প্রতীক | মান | স্ট্রিং |
|---|---|---|
| OPERAND | 0 | অপারেন্ড |
| ফলাফল | 1 | ফলাফল |
প্রচারের দিকনির্দেশনা
প্রচার দিক enum
মামলা:
| প্রতীক | মান | স্ট্রিং |
|---|---|---|
| কোনটিই নয় | 0 | কোনটিই নয় |
| ফরওয়ার্ড | 1 | ফরওয়ার্ড |
| পিছনে | 2 | পিছনে |
| উভয় | 3 | উভয় |