OpInterface সংজ্ঞা

CollectiveOpInterface ( Sdy_CollectiveOpInterface )

সমস্ত যৌথ অপারেশনের জন্য ইন্টারফেস। OutSharding অ্যাট্রিবিউটের জন্য সাধারণ get/set encapsulates.

সীমাবদ্ধতা:

  • অপারেন্ডে অবশ্যই একটি শার্ডিং থাকতে হবে বা allowMissingInputSharding() সত্য রিটার্ন করবে।
  • out_sharding সংশ্লিষ্ট প্রকারের জন্য বৈধ।
  • যদি allowDifferentMeshes() মিথ্যা রিটার্ন করে তাহলে অপারেন্ড এবং ফলাফল শার্ডিং একই জাল থাকতে হবে।
  • অপারেন্ড এবং ফলাফল শার্ডিংয়ের জন্য একই র‌্যাঙ্ক।

পদ্ধতি:

getOutSharding

::mlir::sdy::TensorShardingAttr getOutSharding();

যৌথ অপের আউটপুট টেনসর শার্ডিং প্রদান করে।

setOutShardingAttr

void setOutShardingAttr(::mlir::sdy::TensorShardingAttr sharding);

যৌথ অপের আউটপুট টেনসর শার্ডিং সেট করে।

getTensor

::mlir::TypedValue<::mlir::TensorType> getTensor();

যৌথ অপের টেনসর অপারেন্ড পান।

getType

::mlir::Type getType();

সমষ্টিগত অপ ফলাফলের ধরন পান।

allowDifferentMeshes

bool allowDifferentMeshes();

সমষ্টিগত অপ ইনপুট এবং আউটপুট শার্ডিংকে বিভিন্ন মেশ থাকতে দেয় কিনা তা নির্দেশিত৷

allowMissingInputSharding

bool allowMissingInputSharding();

সমষ্টিগত অপ ইনপুটকে কোন শার্ডিং না করার অনুমতি দেয় কিনা তা নির্দেশিত, অর্থাৎ, সম্পূর্ণরূপে প্রতিলিপি করা।

ShardableDataFlowOpInterface ( Sdy_ShardableDataFlowOpInterface )

একটি অপ ইন্টারফেস যা শার্ডিকে এই ইন্টারফেসটি প্রসারিত করে এমন অপসের ডেটা ফ্লো প্রান্তের মাধ্যমে শার্ডিংগুলি প্রচার করতে দেয়।

কিছু অপ X-এর একটি ডেটা ফ্লো প্রান্ত উৎসগুলির একটি সেটের মধ্যে একটি সেতু সংজ্ঞায়িত করে (প্রত্যেকটি হয় X-এর অপারেন্ড বা X-এর ব্লক টার্মিনেটরের একটি অপারেন্ড) এবং লক্ষ্যগুলির একটি সেট (প্রত্যেকটি হয় X-এর ফলাফল বা X-এর একটি ব্লক যুক্তি), যাতে সমস্ত উত্স এবং লক্ষ্যগুলি একইভাবে শার্ড করা উচিত। একটি অপের একাধিক ডেটা প্রবাহ প্রান্ত থাকতে পারে যা একে অপরের সাথে অর্থোগোনাল।

একজন মালিক হল শার্ডির প্রচারের মাধ্যমে ব্যবহৃত ডেটা ফ্লো প্রান্তের ব্যবহারকারীর নির্দিষ্ট লক্ষ্য। ব্যবহারকারী এটি নির্বিচারে চয়ন করতে পারেন তবে এটি স্থির হওয়া দরকার।

যেমন:

  y_1, ..., y_n = custom_op (x_1, ..., x_n)
                  ((body_arg_1,..., body_arg_n) {
                    ...
                    return return_value_1, ..., return_value_n
                  })

এই কাস্টম_অপের ডেটা ফ্লো প্রান্তের জন্য দুটি প্রকার রয়েছে, n প্রান্তগুলি প্রতিটি return_value_i (উৎস) এবং y_i (লক্ষ্যগুলি) এবং n প্রান্তগুলি x_i (উত্স) এবং body_arg_i (লক্ষ্যগুলি) এর মধ্যে। এই ক্ষেত্রে প্রান্ত মালিকদের লক্ষ্য হিসাবে একই.

এখানে একাধিক লক্ষ্য সহ একটি অপের উদাহরণ রয়েছে:

  y_0, ..., y_n = while (x_0, ..., x_n)
                  ((pred_arg_0,... , pred_arg_n) { ... })
                  ((body_arg_0,..., body_arg_n) {
                    ...
                    return return_value_0, ..., return_value_n
                  })

যখন op-এর n ডেটা ফ্লো প্রান্ত রয়েছে, i-th ডেটা প্রবাহ প্রান্তগুলি উত্স x_i , return_value_i এবং লক্ষ্য y_i , pred_arg_i , body_arg_i মধ্যে রয়েছে।

পদ্ধতি:

getBlockArgumentEdgeOwnerShardings

mlir::SmallVector<mlir::sdy::TensorShardingAttr> getBlockArgumentEdgeOwnerShardings();

সমস্ত ব্লক আর্গুমেন্ট ডেটা ফ্লো এজ মালিকদের শার্ডিং প্রদান করে।

setBlockArgumentEdgeOwnerShardings

void setBlockArgumentEdgeOwnerShardings(mlir::ArrayRef<mlir::sdy::TensorShardingAttr> shardings);

সমস্ত ব্লক আর্গুমেন্ট এজ মালিকদের shardings সেট করে।

getOpResultEdgeOwnerShardings

mlir::SmallVector<mlir::sdy::TensorShardingAttr> getOpResultEdgeOwnerShardings();

সমস্ত অপ ফলাফল ডেটা ফ্লো প্রান্ত মালিকদের শার্ডিং প্রদান করে।

setOpResultEdgeOwnerShardings

void setOpResultEdgeOwnerShardings(mlir::ArrayRef<mlir::sdy::TensorShardingAttr> shardings);

সমস্ত অপ ফলাফল প্রান্ত মালিকদের shardings সেট করে.

transformTargetSharding

mlir::sdy::TensorShardingAttr transformTargetSharding(mlir::Value target, mlir::sdy::TensorShardingAttr sharding, mlir::sdy::DataFlowShardingTransformType transformType);

transformType উপর নির্ভর করে লক্ষ্যের sharding রূপান্তরিত করে

আরও তথ্যের জন্য DataFlowShardingTransformType দেখুন।

getBlockArgumentEdgeOwners

mlir::ArrayRef<mlir::BlockArgument> getBlockArgumentEdgeOwners();

সমস্ত ব্লক আর্গুমেন্ট প্রান্ত মালিকদের পায়.

getOpResultEdgeOwners

mlir::ResultRange getOpResultEdgeOwners();

সমস্ত অপ ফলাফল প্রান্ত মালিকদের পায়.

getEdgeSources

mlir::SmallVector<mlir::OpOperand*> getEdgeSources(mlir::Value owner);

প্রান্তের owner দেওয়া ডেটা ফ্লো প্রান্তের উৎসগুলি পায়৷

getEdgeOwnerFromTarget

mlir::Value getEdgeOwnerFromTarget(mlir::Value target);

একটি target দেওয়া একটি ডেটা ফ্লো প্রান্তের মালিক target পায় যা মালিক হতে পারে বা নাও হতে পারে৷

getEdgeOwnerFromSource

mlir::Value getEdgeOwnerFromSource(mlir::OpOperand&source);

একটি source দেওয়া ডেটা প্রবাহ প্রান্তের মালিক লক্ষ্য পায়।

getNonEdgeOwnerTargets

mlir::SmallVector<mlir::Value> getNonEdgeOwnerTargets(mlir::Value owner);

প্রান্তের owner দেওয়া ডেটা ফ্লো প্রান্তের অ-মালিক লক্ষ্যগুলি পায়৷

ShardingRuleOpInterface ( Sdy_ShardingRuleOpInterface )

একটি অপ ইন্টারফেস যা অপকে তার নিজস্ব শার্ডিং নিয়ম সংজ্ঞায়িত করতে দেয়। একটি শার্ডিং নিয়ম নির্দিষ্ট করে যে কিভাবে অপারেশনের বিভিন্ন বৈশিষ্ট্য অনুযায়ী বিভাজন করা যেতে পারে - যেকোনো বৈশিষ্ট্য, অপারেন্ডের আকৃতি, ফলাফলের আকৃতি ইত্যাদি। আরও বিস্তারিত জানার জন্য OpShardingRuleAttr দেখুন।

পদ্ধতি:

getShardingRule

mlir::sdy::OpShardingRuleAttr getShardingRule();

অপের শার্ডিং নিয়ম ফেরত দেয়।

,

CollectiveOpInterface ( Sdy_CollectiveOpInterface )

সমস্ত যৌথ অপারেশনের জন্য ইন্টারফেস। OutSharding অ্যাট্রিবিউটের জন্য সাধারণ get/set encapsulates.

সীমাবদ্ধতা:

  • অপারেন্ডে অবশ্যই একটি শার্ডিং থাকতে হবে বা allowMissingInputSharding() সত্য রিটার্ন করবে।
  • out_sharding সংশ্লিষ্ট প্রকারের জন্য বৈধ।
  • যদি allowDifferentMeshes() মিথ্যা রিটার্ন করে তাহলে অপারেন্ড এবং ফলাফল শার্ডিং একই জাল থাকতে হবে।
  • অপারেন্ড এবং ফলাফল শার্ডিংয়ের জন্য একই র‌্যাঙ্ক।

পদ্ধতি:

getOutSharding

::mlir::sdy::TensorShardingAttr getOutSharding();

যৌথ অপের আউটপুট টেনসর শার্ডিং প্রদান করে।

setOutShardingAttr

void setOutShardingAttr(::mlir::sdy::TensorShardingAttr sharding);

যৌথ অপের আউটপুট টেনসর শার্ডিং সেট করে।

getTensor

::mlir::TypedValue<::mlir::TensorType> getTensor();

যৌথ অপের টেনসর অপারেন্ড পান।

getType

::mlir::Type getType();

সমষ্টিগত অপ ফলাফলের ধরন পান।

allowDifferentMeshes

bool allowDifferentMeshes();

সমষ্টিগত অপ ইনপুট এবং আউটপুট শার্ডিংকে বিভিন্ন মেশ থাকতে দেয় কিনা তা নির্দেশিত৷

allowMissingInputSharding

bool allowMissingInputSharding();

সমষ্টিগত অপ ইনপুটকে কোন শার্ডিং না করার অনুমতি দেয় কিনা তা নির্দেশিত, অর্থাৎ, সম্পূর্ণরূপে প্রতিলিপি করা।

ShardableDataFlowOpInterface ( Sdy_ShardableDataFlowOpInterface )

একটি অপ ইন্টারফেস যা শার্ডিকে এই ইন্টারফেসটি প্রসারিত করে এমন অপসের ডেটা ফ্লো প্রান্তের মাধ্যমে শার্ডিংগুলি প্রচার করতে দেয়।

কিছু অপ X-এর একটি ডেটা ফ্লো প্রান্ত উৎসগুলির একটি সেটের মধ্যে একটি সেতু সংজ্ঞায়িত করে (প্রত্যেকটি হয় X-এর অপারেন্ড বা X-এর ব্লক টার্মিনেটরের একটি অপারেন্ড) এবং লক্ষ্যগুলির একটি সেট (প্রত্যেকটি হয় X-এর ফলাফল বা X-এর একটি ব্লক যুক্তি), যাতে সমস্ত উত্স এবং লক্ষ্যগুলি একইভাবে শার্ড করা উচিত। একটি অপের একাধিক ডেটা প্রবাহ প্রান্ত থাকতে পারে যা একে অপরের সাথে অর্থোগোনাল।

একজন মালিক হল শার্ডির প্রচারের মাধ্যমে ব্যবহৃত ডেটা ফ্লো প্রান্তের ব্যবহারকারীর নির্দিষ্ট লক্ষ্য। ব্যবহারকারী এটি নির্বিচারে চয়ন করতে পারেন তবে এটি স্থির হওয়া দরকার।

যেমন:

  y_1, ..., y_n = custom_op (x_1, ..., x_n)
                  ((body_arg_1,..., body_arg_n) {
                    ...
                    return return_value_1, ..., return_value_n
                  })

এই কাস্টম_অপের ডেটা ফ্লো প্রান্তের জন্য দুটি প্রকার রয়েছে, n প্রান্তগুলি প্রতিটি return_value_i (উৎস) এবং y_i (লক্ষ্যগুলি) এবং n প্রান্তগুলি x_i (উত্স) এবং body_arg_i (লক্ষ্যগুলি) এর মধ্যে। এই ক্ষেত্রে প্রান্ত মালিকদের লক্ষ্য হিসাবে একই.

এখানে একাধিক লক্ষ্য সহ একটি অপের উদাহরণ রয়েছে:

  y_0, ..., y_n = while (x_0, ..., x_n)
                  ((pred_arg_0,... , pred_arg_n) { ... })
                  ((body_arg_0,..., body_arg_n) {
                    ...
                    return return_value_0, ..., return_value_n
                  })

যখন op-এর n ডেটা ফ্লো প্রান্ত রয়েছে, i-th ডেটা প্রবাহ প্রান্তগুলি উত্স x_i , return_value_i এবং লক্ষ্য y_i , pred_arg_i , body_arg_i মধ্যে রয়েছে।

পদ্ধতি:

getBlockArgumentEdgeOwnerShardings

mlir::SmallVector<mlir::sdy::TensorShardingAttr> getBlockArgumentEdgeOwnerShardings();

সমস্ত ব্লক আর্গুমেন্ট ডেটা ফ্লো এজ মালিকদের শার্ডিং প্রদান করে।

setBlockArgumentEdgeOwnerShardings

void setBlockArgumentEdgeOwnerShardings(mlir::ArrayRef<mlir::sdy::TensorShardingAttr> shardings);

সমস্ত ব্লক আর্গুমেন্ট এজ মালিকদের shardings সেট করে।

getOpResultEdgeOwnerShardings

mlir::SmallVector<mlir::sdy::TensorShardingAttr> getOpResultEdgeOwnerShardings();

সমস্ত অপ ফলাফল ডেটা ফ্লো প্রান্ত মালিকদের শার্ডিং প্রদান করে।

setOpResultEdgeOwnerShardings

void setOpResultEdgeOwnerShardings(mlir::ArrayRef<mlir::sdy::TensorShardingAttr> shardings);

সমস্ত অপ ফলাফল প্রান্ত মালিকদের shardings সেট করে.

transformTargetSharding

mlir::sdy::TensorShardingAttr transformTargetSharding(mlir::Value target, mlir::sdy::TensorShardingAttr sharding, mlir::sdy::DataFlowShardingTransformType transformType);

transformType উপর নির্ভর করে লক্ষ্যের sharding রূপান্তরিত করে

আরও তথ্যের জন্য DataFlowShardingTransformType দেখুন।

getBlockArgumentEdgeOwners

mlir::ArrayRef<mlir::BlockArgument> getBlockArgumentEdgeOwners();

সমস্ত ব্লক আর্গুমেন্ট প্রান্ত মালিকদের পায়.

getOpResultEdgeOwners

mlir::ResultRange getOpResultEdgeOwners();

সমস্ত অপ ফলাফল প্রান্ত মালিকদের পায়.

getEdgeSources

mlir::SmallVector<mlir::OpOperand*> getEdgeSources(mlir::Value owner);

প্রান্তের owner দেওয়া ডেটা ফ্লো প্রান্তের উৎসগুলি পায়৷

getEdgeOwnerFromTarget

mlir::Value getEdgeOwnerFromTarget(mlir::Value target);

একটি target দেওয়া একটি ডেটা ফ্লো প্রান্তের মালিক target পায় যা মালিক হতে পারে বা নাও হতে পারে৷

getEdgeOwnerFromSource

mlir::Value getEdgeOwnerFromSource(mlir::OpOperand&source);

একটি source দেওয়া ডেটা প্রবাহ প্রান্তের মালিক লক্ষ্য পায়।

getNonEdgeOwnerTargets

mlir::SmallVector<mlir::Value> getNonEdgeOwnerTargets(mlir::Value owner);

প্রান্তের owner দেওয়া ডেটা ফ্লো প্রান্তের অ-মালিক লক্ষ্যগুলি পায়৷

ShardingRuleOpInterface ( Sdy_ShardingRuleOpInterface )

একটি অপ ইন্টারফেস যা অপকে তার নিজস্ব শার্ডিং নিয়ম সংজ্ঞায়িত করতে দেয়। একটি শার্ডিং নিয়ম নির্দিষ্ট করে যে কিভাবে অপারেশনের বিভিন্ন বৈশিষ্ট্য অনুযায়ী বিভাজন করা যেতে পারে - যেকোনো বৈশিষ্ট্য, অপারেন্ডের আকৃতি, ফলাফলের আকৃতি ইত্যাদি। আরও বিস্তারিত জানার জন্য OpShardingRuleAttr দেখুন।

পদ্ধতি:

getShardingRule

mlir::sdy::OpShardingRuleAttr getShardingRule();

অপের শার্ডিং নিয়ম ফেরত দেয়।

,

CollectiveOpInterface ( Sdy_CollectiveOpInterface )

সমস্ত যৌথ অপারেশনের জন্য ইন্টারফেস। OutSharding অ্যাট্রিবিউটের জন্য সাধারণ get/set encapsulates.

সীমাবদ্ধতা:

  • অপারেন্ডে অবশ্যই একটি শার্ডিং থাকতে হবে বা allowMissingInputSharding() সত্য রিটার্ন করবে।
  • out_sharding সংশ্লিষ্ট প্রকারের জন্য বৈধ।
  • যদি allowDifferentMeshes() মিথ্যা রিটার্ন করে তাহলে অপারেন্ড এবং ফলাফল শার্ডিং একই জাল থাকতে হবে।
  • অপারেন্ড এবং ফলাফল শার্ডিংয়ের জন্য একই র‌্যাঙ্ক।

পদ্ধতি:

getOutSharding

::mlir::sdy::TensorShardingAttr getOutSharding();

যৌথ অপের আউটপুট টেনসর শার্ডিং প্রদান করে।

setOutShardingAttr

void setOutShardingAttr(::mlir::sdy::TensorShardingAttr sharding);

যৌথ অপের আউটপুট টেনসর শার্ডিং সেট করে।

getTensor

::mlir::TypedValue<::mlir::TensorType> getTensor();

যৌথ অপের টেনসর অপারেন্ড পান।

getType

::mlir::Type getType();

সমষ্টিগত অপ ফলাফলের ধরন পান।

allowDifferentMeshes

bool allowDifferentMeshes();

সমষ্টিগত অপ ইনপুট এবং আউটপুট শার্ডিংকে বিভিন্ন মেশ থাকতে দেয় কিনা তা নির্দেশিত৷

allowMissingInputSharding

bool allowMissingInputSharding();

সমষ্টিগত অপ ইনপুটকে কোন শার্ডিং না করার অনুমতি দেয় কিনা তা নির্দেশিত, অর্থাৎ, সম্পূর্ণরূপে প্রতিলিপি করা।

ShardableDataFlowOpInterface ( Sdy_ShardableDataFlowOpInterface )

একটি অপ ইন্টারফেস যা শার্ডিকে এই ইন্টারফেসটি প্রসারিত করে এমন অপসের ডেটা ফ্লো প্রান্তের মাধ্যমে শার্ডিংগুলি প্রচার করতে দেয়।

কিছু অপ X-এর একটি ডেটা ফ্লো প্রান্ত উৎসগুলির একটি সেটের মধ্যে একটি সেতু সংজ্ঞায়িত করে (প্রত্যেকটি হয় X-এর অপারেন্ড বা X-এর ব্লক টার্মিনেটরের একটি অপারেন্ড) এবং লক্ষ্যগুলির একটি সেট (প্রত্যেকটি হয় X-এর ফলাফল বা X-এর একটি ব্লক যুক্তি), যাতে সমস্ত উত্স এবং লক্ষ্যগুলি একইভাবে শার্ড করা উচিত। একটি অপের একাধিক ডেটা প্রবাহ প্রান্ত থাকতে পারে যা একে অপরের সাথে অর্থোগোনাল।

একজন মালিক হল শার্ডির প্রচারের মাধ্যমে ব্যবহৃত ডেটা ফ্লো প্রান্তের ব্যবহারকারীর নির্দিষ্ট লক্ষ্য। ব্যবহারকারী এটি নির্বিচারে চয়ন করতে পারেন তবে এটি স্থির হওয়া দরকার।

যেমন:

  y_1, ..., y_n = custom_op (x_1, ..., x_n)
                  ((body_arg_1,..., body_arg_n) {
                    ...
                    return return_value_1, ..., return_value_n
                  })

এই কাস্টম_অপের ডেটা ফ্লো প্রান্তের জন্য দুটি প্রকার রয়েছে, n প্রান্তগুলি প্রতিটি return_value_i (উৎস) এবং y_i (লক্ষ্যগুলি) এবং n প্রান্তগুলি x_i (উত্স) এবং body_arg_i (লক্ষ্যগুলি) এর মধ্যে। এই ক্ষেত্রে প্রান্ত মালিকদের লক্ষ্য হিসাবে একই.

এখানে একাধিক লক্ষ্য সহ একটি অপের উদাহরণ রয়েছে:

  y_0, ..., y_n = while (x_0, ..., x_n)
                  ((pred_arg_0,... , pred_arg_n) { ... })
                  ((body_arg_0,..., body_arg_n) {
                    ...
                    return return_value_0, ..., return_value_n
                  })

যখন op-এর n ডেটা ফ্লো প্রান্ত রয়েছে, i-th ডেটা প্রবাহ প্রান্তগুলি উত্স x_i , return_value_i এবং লক্ষ্য y_i , pred_arg_i , body_arg_i মধ্যে রয়েছে।

পদ্ধতি:

getBlockArgumentEdgeOwnerShardings

mlir::SmallVector<mlir::sdy::TensorShardingAttr> getBlockArgumentEdgeOwnerShardings();

সমস্ত ব্লক আর্গুমেন্ট ডেটা ফ্লো এজ মালিকদের শার্ডিং প্রদান করে।

setBlockArgumentEdgeOwnerShardings

void setBlockArgumentEdgeOwnerShardings(mlir::ArrayRef<mlir::sdy::TensorShardingAttr> shardings);

সমস্ত ব্লক আর্গুমেন্ট এজ মালিকদের shardings সেট করে।

getOpResultEdgeOwnerShardings

mlir::SmallVector<mlir::sdy::TensorShardingAttr> getOpResultEdgeOwnerShardings();

সমস্ত অপ ফলাফল ডেটা ফ্লো প্রান্ত মালিকদের শার্ডিং প্রদান করে।

setOpResultEdgeOwnerShardings

void setOpResultEdgeOwnerShardings(mlir::ArrayRef<mlir::sdy::TensorShardingAttr> shardings);

সমস্ত অপ ফলাফল প্রান্ত মালিকদের shardings সেট করে.

transformTargetSharding

mlir::sdy::TensorShardingAttr transformTargetSharding(mlir::Value target, mlir::sdy::TensorShardingAttr sharding, mlir::sdy::DataFlowShardingTransformType transformType);

transformType উপর নির্ভর করে লক্ষ্যের sharding রূপান্তরিত করে

আরও তথ্যের জন্য DataFlowShardingTransformType দেখুন।

getBlockArgumentEdgeOwners

mlir::ArrayRef<mlir::BlockArgument> getBlockArgumentEdgeOwners();

সমস্ত ব্লক আর্গুমেন্ট প্রান্ত মালিকদের পায়.

getOpResultEdgeOwners

mlir::ResultRange getOpResultEdgeOwners();

সমস্ত অপ ফলাফল প্রান্ত মালিকদের পায়.

getEdgeSources

mlir::SmallVector<mlir::OpOperand*> getEdgeSources(mlir::Value owner);

প্রান্তের owner দেওয়া ডেটা ফ্লো প্রান্তের উৎসগুলি পায়৷

getEdgeOwnerFromTarget

mlir::Value getEdgeOwnerFromTarget(mlir::Value target);

একটি target দেওয়া একটি ডেটা ফ্লো প্রান্তের মালিক target পায় যা মালিক হতে পারে বা নাও হতে পারে৷

getEdgeOwnerFromSource

mlir::Value getEdgeOwnerFromSource(mlir::OpOperand&source);

একটি source দেওয়া ডেটা প্রবাহ প্রান্তের মালিক লক্ষ্য পায়।

getNonEdgeOwnerTargets

mlir::SmallVector<mlir::Value> getNonEdgeOwnerTargets(mlir::Value owner);

প্রান্তের owner দেওয়া ডেটা ফ্লো প্রান্তের অ-মালিক লক্ষ্যগুলি পায়৷

ShardingRuleOpInterface ( Sdy_ShardingRuleOpInterface )

একটি অপ ইন্টারফেস যা অপকে তার নিজস্ব শার্ডিং নিয়ম সংজ্ঞায়িত করতে দেয়। একটি শার্ডিং নিয়ম নির্দিষ্ট করে যে কিভাবে অপারেশনের বিভিন্ন বৈশিষ্ট্য অনুযায়ী বিভাজন করা যেতে পারে - যেকোনো বৈশিষ্ট্য, অপারেন্ডের আকৃতি, ফলাফলের আকৃতি ইত্যাদি। আরও বিস্তারিত জানার জন্য OpShardingRuleAttr দেখুন।

পদ্ধতি:

getShardingRule

mlir::sdy::OpShardingRuleAttr getShardingRule();

অপের শার্ডিং নিয়ম ফেরত দেয়।