TT-MLIR
program_generated.h
Go to the documentation of this file.
1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_TTNN_H_
5 #define FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_TTNN_H_
6 
7 #include "flatbuffers/flatbuffers.h"
8 
9 // Ensure the included flatbuffers.h is the same version as when this file was
10 // generated, otherwise it may not be compatible.
11 static_assert(FLATBUFFERS_VERSION_MAJOR == 24 &&
12  FLATBUFFERS_VERSION_MINOR == 3 &&
13  FLATBUFFERS_VERSION_REVISION == 25,
14  "Non-compatible flatbuffers version included");
15 
36 
37 namespace tt {
38 namespace target {
39 namespace ttnn {
40 
41 struct Operation;
42 struct OperationBuilder;
43 
44 struct Program;
45 struct ProgramBuilder;
46 
47 enum class OpType : uint8_t {
48  NONE = 0,
49  AllGatherOp = 1,
51  MeshShardOp = 3,
52  ReduceScatterOp = 4,
53  GetDeviceOp = 5,
55  Conv2dOp = 7,
57  CpuOp = 9,
58  ArangeOp = 10,
59  ConstantOp = 11,
60  EmptyOp = 12,
61  FullOp = 13,
62  NamedFullOp = 14,
63  ConcatOp = 15,
64  PadOp = 16,
65  PermuteOp = 17,
66  RepeatInterleaveOp = 18,
67  RepeatOp = 19,
68  ReshapeOp = 20,
69  SliceOp = 21,
70  TransposeOp = 22,
71  DeallocateOp = 23,
72  EltwiseBinaryOp = 24,
76  EltwiseUnaryOp = 28,
79  EmbeddingOp = 31,
80  FillCacheOp = 32,
81  UpdateCacheOp = 33,
82  FromDeviceOp = 34,
83  ToDeviceOp = 35,
84  ToDTypeOp = 36,
85  ToLayoutOp = 37,
86  ToMemoryConfigOp = 38,
87  TypecastOp = 39,
88  LinearOp = 40,
89  MatmulOp = 41,
90  MorehCumSumOp = 42,
91  SoftmaxOp = 43,
92  Pool2dOp = 44,
93  UpsampleOp = 45,
94  ReductionArgMaxOp = 46,
95  ReductionOp = 47,
96  ReductionProdOp = 48,
97  LoadCachedOp = 49,
98  BatchNormOp = 50,
99  MIN = NONE,
100  MAX = BatchNormOp
101 };
102 
103 inline const OpType (&EnumValuesOpType())[51] {
104  static const OpType values[] = {
105  OpType::NONE,
156  };
157  return values;
158 }
159 
160 inline const char * const *EnumNamesOpType() {
161  static const char * const names[52] = {
162  "NONE",
163  "AllGatherOp",
164  "CollectivePermuteOp",
165  "MeshShardOp",
166  "ReduceScatterOp",
167  "GetDeviceOp",
168  "PrepareConv2dWeightsOp",
169  "Conv2dOp",
170  "ConvTranspose2dOp",
171  "CpuOp",
172  "ArangeOp",
173  "ConstantOp",
174  "EmptyOp",
175  "FullOp",
176  "NamedFullOp",
177  "ConcatOp",
178  "PadOp",
179  "PermuteOp",
180  "RepeatInterleaveOp",
181  "RepeatOp",
182  "ReshapeOp",
183  "SliceOp",
184  "TransposeOp",
185  "DeallocateOp",
186  "EltwiseBinaryOp",
187  "EltwiseBinaryCompositeOp",
188  "EltwiseTernaryWhereOp",
189  "EltwiseQuantizationOp",
190  "EltwiseUnaryOp",
191  "EltwiseUnaryCompositeOp",
192  "EmbeddingBackwardOp",
193  "EmbeddingOp",
194  "FillCacheOp",
195  "UpdateCacheOp",
196  "FromDeviceOp",
197  "ToDeviceOp",
198  "ToDTypeOp",
199  "ToLayoutOp",
200  "ToMemoryConfigOp",
201  "TypecastOp",
202  "LinearOp",
203  "MatmulOp",
204  "MorehCumSumOp",
205  "SoftmaxOp",
206  "Pool2dOp",
207  "UpsampleOp",
208  "ReductionArgMaxOp",
209  "ReductionOp",
210  "ReductionProdOp",
211  "LoadCachedOp",
212  "BatchNormOp",
213  nullptr
214  };
215  return names;
216 }
217 
218 inline const char *EnumNameOpType(OpType e) {
219  if (::flatbuffers::IsOutRange(e, OpType::NONE, OpType::BatchNormOp)) return "";
220  const size_t index = static_cast<size_t>(e);
221  return EnumNamesOpType()[index];
222 }
223 
224 template<typename T> struct OpTypeTraits {
226 };
227 
228 template<> struct OpTypeTraits<tt::target::ttnn::AllGatherOp> {
230 };
231 
232 template<> struct OpTypeTraits<tt::target::ttnn::CollectivePermuteOp> {
234 };
235 
236 template<> struct OpTypeTraits<tt::target::ttnn::MeshShardOp> {
238 };
239 
240 template<> struct OpTypeTraits<tt::target::ttnn::ReduceScatterOp> {
242 };
243 
244 template<> struct OpTypeTraits<tt::target::ttnn::GetDeviceOp> {
246 };
247 
248 template<> struct OpTypeTraits<tt::target::ttnn::PrepareConv2dWeightsOp> {
250 };
251 
252 template<> struct OpTypeTraits<tt::target::ttnn::Conv2dOp> {
254 };
255 
256 template<> struct OpTypeTraits<tt::target::ttnn::ConvTranspose2dOp> {
258 };
259 
260 template<> struct OpTypeTraits<tt::target::ttnn::CpuOp> {
262 };
263 
264 template<> struct OpTypeTraits<tt::target::ttnn::ArangeOp> {
266 };
267 
268 template<> struct OpTypeTraits<tt::target::ttnn::ConstantOp> {
270 };
271 
272 template<> struct OpTypeTraits<tt::target::ttnn::EmptyOp> {
274 };
275 
276 template<> struct OpTypeTraits<tt::target::ttnn::FullOp> {
278 };
279 
280 template<> struct OpTypeTraits<tt::target::ttnn::NamedFullOp> {
282 };
283 
284 template<> struct OpTypeTraits<tt::target::ttnn::ConcatOp> {
286 };
287 
288 template<> struct OpTypeTraits<tt::target::ttnn::PadOp> {
290 };
291 
292 template<> struct OpTypeTraits<tt::target::ttnn::PermuteOp> {
294 };
295 
296 template<> struct OpTypeTraits<tt::target::ttnn::RepeatInterleaveOp> {
298 };
299 
300 template<> struct OpTypeTraits<tt::target::ttnn::RepeatOp> {
302 };
303 
304 template<> struct OpTypeTraits<tt::target::ttnn::ReshapeOp> {
306 };
307 
308 template<> struct OpTypeTraits<tt::target::ttnn::SliceOp> {
310 };
311 
312 template<> struct OpTypeTraits<tt::target::ttnn::TransposeOp> {
314 };
315 
316 template<> struct OpTypeTraits<tt::target::ttnn::DeallocateOp> {
318 };
319 
320 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseBinaryOp> {
322 };
323 
324 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseBinaryCompositeOp> {
326 };
327 
328 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseTernaryWhereOp> {
330 };
331 
332 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseQuantizationOp> {
334 };
335 
336 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseUnaryOp> {
338 };
339 
340 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseUnaryCompositeOp> {
342 };
343 
344 template<> struct OpTypeTraits<tt::target::ttnn::EmbeddingBackwardOp> {
346 };
347 
348 template<> struct OpTypeTraits<tt::target::ttnn::EmbeddingOp> {
350 };
351 
352 template<> struct OpTypeTraits<tt::target::ttnn::FillCacheOp> {
354 };
355 
356 template<> struct OpTypeTraits<tt::target::ttnn::UpdateCacheOp> {
358 };
359 
360 template<> struct OpTypeTraits<tt::target::ttnn::FromDeviceOp> {
362 };
363 
364 template<> struct OpTypeTraits<tt::target::ttnn::ToDeviceOp> {
366 };
367 
368 template<> struct OpTypeTraits<tt::target::ttnn::ToDTypeOp> {
370 };
371 
372 template<> struct OpTypeTraits<tt::target::ttnn::ToLayoutOp> {
374 };
375 
376 template<> struct OpTypeTraits<tt::target::ttnn::ToMemoryConfigOp> {
378 };
379 
380 template<> struct OpTypeTraits<tt::target::ttnn::TypecastOp> {
382 };
383 
384 template<> struct OpTypeTraits<tt::target::ttnn::LinearOp> {
386 };
387 
388 template<> struct OpTypeTraits<tt::target::ttnn::MatmulOp> {
390 };
391 
392 template<> struct OpTypeTraits<tt::target::ttnn::MorehCumSumOp> {
394 };
395 
396 template<> struct OpTypeTraits<tt::target::ttnn::SoftmaxOp> {
398 };
399 
400 template<> struct OpTypeTraits<tt::target::ttnn::Pool2dOp> {
402 };
403 
404 template<> struct OpTypeTraits<tt::target::ttnn::UpsampleOp> {
406 };
407 
408 template<> struct OpTypeTraits<tt::target::ttnn::ReductionArgMaxOp> {
410 };
411 
412 template<> struct OpTypeTraits<tt::target::ttnn::ReductionOp> {
414 };
415 
416 template<> struct OpTypeTraits<tt::target::ttnn::ReductionProdOp> {
418 };
419 
420 template<> struct OpTypeTraits<tt::target::ttnn::LoadCachedOp> {
422 };
423 
424 template<> struct OpTypeTraits<tt::target::ttnn::BatchNormOp> {
426 };
427 
428 bool VerifyOpType(::flatbuffers::Verifier &verifier, const void *obj, OpType type);
429 bool VerifyOpTypeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<OpType> *types);
430 
431 struct Operation FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
433  struct Traits;
434  static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
435  return "tt.target.ttnn.Operation";
436  }
437  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
439  VT_TYPE = 6,
441  VT_LOC_INFO = 10
442  };
444  return static_cast<tt::target::ttnn::OpType>(GetField<uint8_t>(VT_TYPE_TYPE, 0));
445  }
446  const void *type() const {
447  return GetPointer<const void *>(VT_TYPE);
448  }
449  template<typename T> const T *type_as() const;
450  const tt::target::ttnn::AllGatherOp *type_as_AllGatherOp() const {
451  return type_type() == tt::target::ttnn::OpType::AllGatherOp ? static_cast<const tt::target::ttnn::AllGatherOp *>(type()) : nullptr;
452  }
453  const tt::target::ttnn::CollectivePermuteOp *type_as_CollectivePermuteOp() const {
454  return type_type() == tt::target::ttnn::OpType::CollectivePermuteOp ? static_cast<const tt::target::ttnn::CollectivePermuteOp *>(type()) : nullptr;
455  }
456  const tt::target::ttnn::MeshShardOp *type_as_MeshShardOp() const {
457  return type_type() == tt::target::ttnn::OpType::MeshShardOp ? static_cast<const tt::target::ttnn::MeshShardOp *>(type()) : nullptr;
458  }
459  const tt::target::ttnn::ReduceScatterOp *type_as_ReduceScatterOp() const {
460  return type_type() == tt::target::ttnn::OpType::ReduceScatterOp ? static_cast<const tt::target::ttnn::ReduceScatterOp *>(type()) : nullptr;
461  }
462  const tt::target::ttnn::GetDeviceOp *type_as_GetDeviceOp() const {
463  return type_type() == tt::target::ttnn::OpType::GetDeviceOp ? static_cast<const tt::target::ttnn::GetDeviceOp *>(type()) : nullptr;
464  }
465  const tt::target::ttnn::PrepareConv2dWeightsOp *type_as_PrepareConv2dWeightsOp() const {
466  return type_type() == tt::target::ttnn::OpType::PrepareConv2dWeightsOp ? static_cast<const tt::target::ttnn::PrepareConv2dWeightsOp *>(type()) : nullptr;
467  }
468  const tt::target::ttnn::Conv2dOp *type_as_Conv2dOp() const {
469  return type_type() == tt::target::ttnn::OpType::Conv2dOp ? static_cast<const tt::target::ttnn::Conv2dOp *>(type()) : nullptr;
470  }
471  const tt::target::ttnn::ConvTranspose2dOp *type_as_ConvTranspose2dOp() const {
472  return type_type() == tt::target::ttnn::OpType::ConvTranspose2dOp ? static_cast<const tt::target::ttnn::ConvTranspose2dOp *>(type()) : nullptr;
473  }
474  const tt::target::ttnn::CpuOp *type_as_CpuOp() const {
475  return type_type() == tt::target::ttnn::OpType::CpuOp ? static_cast<const tt::target::ttnn::CpuOp *>(type()) : nullptr;
476  }
477  const tt::target::ttnn::ArangeOp *type_as_ArangeOp() const {
478  return type_type() == tt::target::ttnn::OpType::ArangeOp ? static_cast<const tt::target::ttnn::ArangeOp *>(type()) : nullptr;
479  }
480  const tt::target::ttnn::ConstantOp *type_as_ConstantOp() const {
481  return type_type() == tt::target::ttnn::OpType::ConstantOp ? static_cast<const tt::target::ttnn::ConstantOp *>(type()) : nullptr;
482  }
483  const tt::target::ttnn::EmptyOp *type_as_EmptyOp() const {
484  return type_type() == tt::target::ttnn::OpType::EmptyOp ? static_cast<const tt::target::ttnn::EmptyOp *>(type()) : nullptr;
485  }
486  const tt::target::ttnn::FullOp *type_as_FullOp() const {
487  return type_type() == tt::target::ttnn::OpType::FullOp ? static_cast<const tt::target::ttnn::FullOp *>(type()) : nullptr;
488  }
489  const tt::target::ttnn::NamedFullOp *type_as_NamedFullOp() const {
490  return type_type() == tt::target::ttnn::OpType::NamedFullOp ? static_cast<const tt::target::ttnn::NamedFullOp *>(type()) : nullptr;
491  }
492  const tt::target::ttnn::ConcatOp *type_as_ConcatOp() const {
493  return type_type() == tt::target::ttnn::OpType::ConcatOp ? static_cast<const tt::target::ttnn::ConcatOp *>(type()) : nullptr;
494  }
495  const tt::target::ttnn::PadOp *type_as_PadOp() const {
496  return type_type() == tt::target::ttnn::OpType::PadOp ? static_cast<const tt::target::ttnn::PadOp *>(type()) : nullptr;
497  }
498  const tt::target::ttnn::PermuteOp *type_as_PermuteOp() const {
499  return type_type() == tt::target::ttnn::OpType::PermuteOp ? static_cast<const tt::target::ttnn::PermuteOp *>(type()) : nullptr;
500  }
501  const tt::target::ttnn::RepeatInterleaveOp *type_as_RepeatInterleaveOp() const {
502  return type_type() == tt::target::ttnn::OpType::RepeatInterleaveOp ? static_cast<const tt::target::ttnn::RepeatInterleaveOp *>(type()) : nullptr;
503  }
504  const tt::target::ttnn::RepeatOp *type_as_RepeatOp() const {
505  return type_type() == tt::target::ttnn::OpType::RepeatOp ? static_cast<const tt::target::ttnn::RepeatOp *>(type()) : nullptr;
506  }
507  const tt::target::ttnn::ReshapeOp *type_as_ReshapeOp() const {
508  return type_type() == tt::target::ttnn::OpType::ReshapeOp ? static_cast<const tt::target::ttnn::ReshapeOp *>(type()) : nullptr;
509  }
510  const tt::target::ttnn::SliceOp *type_as_SliceOp() const {
511  return type_type() == tt::target::ttnn::OpType::SliceOp ? static_cast<const tt::target::ttnn::SliceOp *>(type()) : nullptr;
512  }
513  const tt::target::ttnn::TransposeOp *type_as_TransposeOp() const {
514  return type_type() == tt::target::ttnn::OpType::TransposeOp ? static_cast<const tt::target::ttnn::TransposeOp *>(type()) : nullptr;
515  }
516  const tt::target::ttnn::DeallocateOp *type_as_DeallocateOp() const {
517  return type_type() == tt::target::ttnn::OpType::DeallocateOp ? static_cast<const tt::target::ttnn::DeallocateOp *>(type()) : nullptr;
518  }
519  const tt::target::ttnn::EltwiseBinaryOp *type_as_EltwiseBinaryOp() const {
520  return type_type() == tt::target::ttnn::OpType::EltwiseBinaryOp ? static_cast<const tt::target::ttnn::EltwiseBinaryOp *>(type()) : nullptr;
521  }
522  const tt::target::ttnn::EltwiseBinaryCompositeOp *type_as_EltwiseBinaryCompositeOp() const {
523  return type_type() == tt::target::ttnn::OpType::EltwiseBinaryCompositeOp ? static_cast<const tt::target::ttnn::EltwiseBinaryCompositeOp *>(type()) : nullptr;
524  }
525  const tt::target::ttnn::EltwiseTernaryWhereOp *type_as_EltwiseTernaryWhereOp() const {
526  return type_type() == tt::target::ttnn::OpType::EltwiseTernaryWhereOp ? static_cast<const tt::target::ttnn::EltwiseTernaryWhereOp *>(type()) : nullptr;
527  }
528  const tt::target::ttnn::EltwiseQuantizationOp *type_as_EltwiseQuantizationOp() const {
529  return type_type() == tt::target::ttnn::OpType::EltwiseQuantizationOp ? static_cast<const tt::target::ttnn::EltwiseQuantizationOp *>(type()) : nullptr;
530  }
531  const tt::target::ttnn::EltwiseUnaryOp *type_as_EltwiseUnaryOp() const {
532  return type_type() == tt::target::ttnn::OpType::EltwiseUnaryOp ? static_cast<const tt::target::ttnn::EltwiseUnaryOp *>(type()) : nullptr;
533  }
534  const tt::target::ttnn::EltwiseUnaryCompositeOp *type_as_EltwiseUnaryCompositeOp() const {
535  return type_type() == tt::target::ttnn::OpType::EltwiseUnaryCompositeOp ? static_cast<const tt::target::ttnn::EltwiseUnaryCompositeOp *>(type()) : nullptr;
536  }
537  const tt::target::ttnn::EmbeddingBackwardOp *type_as_EmbeddingBackwardOp() const {
538  return type_type() == tt::target::ttnn::OpType::EmbeddingBackwardOp ? static_cast<const tt::target::ttnn::EmbeddingBackwardOp *>(type()) : nullptr;
539  }
540  const tt::target::ttnn::EmbeddingOp *type_as_EmbeddingOp() const {
541  return type_type() == tt::target::ttnn::OpType::EmbeddingOp ? static_cast<const tt::target::ttnn::EmbeddingOp *>(type()) : nullptr;
542  }
543  const tt::target::ttnn::FillCacheOp *type_as_FillCacheOp() const {
544  return type_type() == tt::target::ttnn::OpType::FillCacheOp ? static_cast<const tt::target::ttnn::FillCacheOp *>(type()) : nullptr;
545  }
546  const tt::target::ttnn::UpdateCacheOp *type_as_UpdateCacheOp() const {
547  return type_type() == tt::target::ttnn::OpType::UpdateCacheOp ? static_cast<const tt::target::ttnn::UpdateCacheOp *>(type()) : nullptr;
548  }
549  const tt::target::ttnn::FromDeviceOp *type_as_FromDeviceOp() const {
550  return type_type() == tt::target::ttnn::OpType::FromDeviceOp ? static_cast<const tt::target::ttnn::FromDeviceOp *>(type()) : nullptr;
551  }
552  const tt::target::ttnn::ToDeviceOp *type_as_ToDeviceOp() const {
553  return type_type() == tt::target::ttnn::OpType::ToDeviceOp ? static_cast<const tt::target::ttnn::ToDeviceOp *>(type()) : nullptr;
554  }
555  const tt::target::ttnn::ToDTypeOp *type_as_ToDTypeOp() const {
556  return type_type() == tt::target::ttnn::OpType::ToDTypeOp ? static_cast<const tt::target::ttnn::ToDTypeOp *>(type()) : nullptr;
557  }
558  const tt::target::ttnn::ToLayoutOp *type_as_ToLayoutOp() const {
559  return type_type() == tt::target::ttnn::OpType::ToLayoutOp ? static_cast<const tt::target::ttnn::ToLayoutOp *>(type()) : nullptr;
560  }
561  const tt::target::ttnn::ToMemoryConfigOp *type_as_ToMemoryConfigOp() const {
562  return type_type() == tt::target::ttnn::OpType::ToMemoryConfigOp ? static_cast<const tt::target::ttnn::ToMemoryConfigOp *>(type()) : nullptr;
563  }
564  const tt::target::ttnn::TypecastOp *type_as_TypecastOp() const {
565  return type_type() == tt::target::ttnn::OpType::TypecastOp ? static_cast<const tt::target::ttnn::TypecastOp *>(type()) : nullptr;
566  }
567  const tt::target::ttnn::LinearOp *type_as_LinearOp() const {
568  return type_type() == tt::target::ttnn::OpType::LinearOp ? static_cast<const tt::target::ttnn::LinearOp *>(type()) : nullptr;
569  }
570  const tt::target::ttnn::MatmulOp *type_as_MatmulOp() const {
571  return type_type() == tt::target::ttnn::OpType::MatmulOp ? static_cast<const tt::target::ttnn::MatmulOp *>(type()) : nullptr;
572  }
573  const tt::target::ttnn::MorehCumSumOp *type_as_MorehCumSumOp() const {
574  return type_type() == tt::target::ttnn::OpType::MorehCumSumOp ? static_cast<const tt::target::ttnn::MorehCumSumOp *>(type()) : nullptr;
575  }
576  const tt::target::ttnn::SoftmaxOp *type_as_SoftmaxOp() const {
577  return type_type() == tt::target::ttnn::OpType::SoftmaxOp ? static_cast<const tt::target::ttnn::SoftmaxOp *>(type()) : nullptr;
578  }
579  const tt::target::ttnn::Pool2dOp *type_as_Pool2dOp() const {
580  return type_type() == tt::target::ttnn::OpType::Pool2dOp ? static_cast<const tt::target::ttnn::Pool2dOp *>(type()) : nullptr;
581  }
582  const tt::target::ttnn::UpsampleOp *type_as_UpsampleOp() const {
583  return type_type() == tt::target::ttnn::OpType::UpsampleOp ? static_cast<const tt::target::ttnn::UpsampleOp *>(type()) : nullptr;
584  }
585  const tt::target::ttnn::ReductionArgMaxOp *type_as_ReductionArgMaxOp() const {
586  return type_type() == tt::target::ttnn::OpType::ReductionArgMaxOp ? static_cast<const tt::target::ttnn::ReductionArgMaxOp *>(type()) : nullptr;
587  }
588  const tt::target::ttnn::ReductionOp *type_as_ReductionOp() const {
589  return type_type() == tt::target::ttnn::OpType::ReductionOp ? static_cast<const tt::target::ttnn::ReductionOp *>(type()) : nullptr;
590  }
591  const tt::target::ttnn::ReductionProdOp *type_as_ReductionProdOp() const {
592  return type_type() == tt::target::ttnn::OpType::ReductionProdOp ? static_cast<const tt::target::ttnn::ReductionProdOp *>(type()) : nullptr;
593  }
594  const tt::target::ttnn::LoadCachedOp *type_as_LoadCachedOp() const {
595  return type_type() == tt::target::ttnn::OpType::LoadCachedOp ? static_cast<const tt::target::ttnn::LoadCachedOp *>(type()) : nullptr;
596  }
597  const tt::target::ttnn::BatchNormOp *type_as_BatchNormOp() const {
598  return type_type() == tt::target::ttnn::OpType::BatchNormOp ? static_cast<const tt::target::ttnn::BatchNormOp *>(type()) : nullptr;
599  }
600  const ::flatbuffers::String *debug_info() const {
601  return GetPointer<const ::flatbuffers::String *>(VT_DEBUG_INFO);
602  }
603  const ::flatbuffers::String *loc_info() const {
604  return GetPointer<const ::flatbuffers::String *>(VT_LOC_INFO);
605  }
606  bool Verify(::flatbuffers::Verifier &verifier) const {
607  return VerifyTableStart(verifier) &&
608  VerifyField<uint8_t>(verifier, VT_TYPE_TYPE, 1) &&
609  VerifyOffset(verifier, VT_TYPE) &&
610  VerifyOpType(verifier, type(), type_type()) &&
611  VerifyOffset(verifier, VT_DEBUG_INFO) &&
612  verifier.VerifyString(debug_info()) &&
613  VerifyOffset(verifier, VT_LOC_INFO) &&
614  verifier.VerifyString(loc_info()) &&
615  verifier.EndTable();
616  }
617 };
618 
619 template<> inline const tt::target::ttnn::AllGatherOp *Operation::type_as<tt::target::ttnn::AllGatherOp>() const {
620  return type_as_AllGatherOp();
621 }
622 
623 template<> inline const tt::target::ttnn::CollectivePermuteOp *Operation::type_as<tt::target::ttnn::CollectivePermuteOp>() const {
624  return type_as_CollectivePermuteOp();
625 }
626 
627 template<> inline const tt::target::ttnn::MeshShardOp *Operation::type_as<tt::target::ttnn::MeshShardOp>() const {
628  return type_as_MeshShardOp();
629 }
630 
631 template<> inline const tt::target::ttnn::ReduceScatterOp *Operation::type_as<tt::target::ttnn::ReduceScatterOp>() const {
632  return type_as_ReduceScatterOp();
633 }
634 
635 template<> inline const tt::target::ttnn::GetDeviceOp *Operation::type_as<tt::target::ttnn::GetDeviceOp>() const {
636  return type_as_GetDeviceOp();
637 }
638 
639 template<> inline const tt::target::ttnn::PrepareConv2dWeightsOp *Operation::type_as<tt::target::ttnn::PrepareConv2dWeightsOp>() const {
640  return type_as_PrepareConv2dWeightsOp();
641 }
642 
643 template<> inline const tt::target::ttnn::Conv2dOp *Operation::type_as<tt::target::ttnn::Conv2dOp>() const {
644  return type_as_Conv2dOp();
645 }
646 
647 template<> inline const tt::target::ttnn::ConvTranspose2dOp *Operation::type_as<tt::target::ttnn::ConvTranspose2dOp>() const {
648  return type_as_ConvTranspose2dOp();
649 }
650 
651 template<> inline const tt::target::ttnn::CpuOp *Operation::type_as<tt::target::ttnn::CpuOp>() const {
652  return type_as_CpuOp();
653 }
654 
655 template<> inline const tt::target::ttnn::ArangeOp *Operation::type_as<tt::target::ttnn::ArangeOp>() const {
656  return type_as_ArangeOp();
657 }
658 
659 template<> inline const tt::target::ttnn::ConstantOp *Operation::type_as<tt::target::ttnn::ConstantOp>() const {
660  return type_as_ConstantOp();
661 }
662 
663 template<> inline const tt::target::ttnn::EmptyOp *Operation::type_as<tt::target::ttnn::EmptyOp>() const {
664  return type_as_EmptyOp();
665 }
666 
667 template<> inline const tt::target::ttnn::FullOp *Operation::type_as<tt::target::ttnn::FullOp>() const {
668  return type_as_FullOp();
669 }
670 
671 template<> inline const tt::target::ttnn::NamedFullOp *Operation::type_as<tt::target::ttnn::NamedFullOp>() const {
672  return type_as_NamedFullOp();
673 }
674 
675 template<> inline const tt::target::ttnn::ConcatOp *Operation::type_as<tt::target::ttnn::ConcatOp>() const {
676  return type_as_ConcatOp();
677 }
678 
679 template<> inline const tt::target::ttnn::PadOp *Operation::type_as<tt::target::ttnn::PadOp>() const {
680  return type_as_PadOp();
681 }
682 
683 template<> inline const tt::target::ttnn::PermuteOp *Operation::type_as<tt::target::ttnn::PermuteOp>() const {
684  return type_as_PermuteOp();
685 }
686 
687 template<> inline const tt::target::ttnn::RepeatInterleaveOp *Operation::type_as<tt::target::ttnn::RepeatInterleaveOp>() const {
688  return type_as_RepeatInterleaveOp();
689 }
690 
691 template<> inline const tt::target::ttnn::RepeatOp *Operation::type_as<tt::target::ttnn::RepeatOp>() const {
692  return type_as_RepeatOp();
693 }
694 
695 template<> inline const tt::target::ttnn::ReshapeOp *Operation::type_as<tt::target::ttnn::ReshapeOp>() const {
696  return type_as_ReshapeOp();
697 }
698 
699 template<> inline const tt::target::ttnn::SliceOp *Operation::type_as<tt::target::ttnn::SliceOp>() const {
700  return type_as_SliceOp();
701 }
702 
703 template<> inline const tt::target::ttnn::TransposeOp *Operation::type_as<tt::target::ttnn::TransposeOp>() const {
704  return type_as_TransposeOp();
705 }
706 
707 template<> inline const tt::target::ttnn::DeallocateOp *Operation::type_as<tt::target::ttnn::DeallocateOp>() const {
708  return type_as_DeallocateOp();
709 }
710 
711 template<> inline const tt::target::ttnn::EltwiseBinaryOp *Operation::type_as<tt::target::ttnn::EltwiseBinaryOp>() const {
712  return type_as_EltwiseBinaryOp();
713 }
714 
715 template<> inline const tt::target::ttnn::EltwiseBinaryCompositeOp *Operation::type_as<tt::target::ttnn::EltwiseBinaryCompositeOp>() const {
716  return type_as_EltwiseBinaryCompositeOp();
717 }
718 
719 template<> inline const tt::target::ttnn::EltwiseTernaryWhereOp *Operation::type_as<tt::target::ttnn::EltwiseTernaryWhereOp>() const {
720  return type_as_EltwiseTernaryWhereOp();
721 }
722 
723 template<> inline const tt::target::ttnn::EltwiseQuantizationOp *Operation::type_as<tt::target::ttnn::EltwiseQuantizationOp>() const {
724  return type_as_EltwiseQuantizationOp();
725 }
726 
727 template<> inline const tt::target::ttnn::EltwiseUnaryOp *Operation::type_as<tt::target::ttnn::EltwiseUnaryOp>() const {
728  return type_as_EltwiseUnaryOp();
729 }
730 
731 template<> inline const tt::target::ttnn::EltwiseUnaryCompositeOp *Operation::type_as<tt::target::ttnn::EltwiseUnaryCompositeOp>() const {
732  return type_as_EltwiseUnaryCompositeOp();
733 }
734 
735 template<> inline const tt::target::ttnn::EmbeddingBackwardOp *Operation::type_as<tt::target::ttnn::EmbeddingBackwardOp>() const {
736  return type_as_EmbeddingBackwardOp();
737 }
738 
739 template<> inline const tt::target::ttnn::EmbeddingOp *Operation::type_as<tt::target::ttnn::EmbeddingOp>() const {
740  return type_as_EmbeddingOp();
741 }
742 
743 template<> inline const tt::target::ttnn::FillCacheOp *Operation::type_as<tt::target::ttnn::FillCacheOp>() const {
744  return type_as_FillCacheOp();
745 }
746 
747 template<> inline const tt::target::ttnn::UpdateCacheOp *Operation::type_as<tt::target::ttnn::UpdateCacheOp>() const {
748  return type_as_UpdateCacheOp();
749 }
750 
751 template<> inline const tt::target::ttnn::FromDeviceOp *Operation::type_as<tt::target::ttnn::FromDeviceOp>() const {
752  return type_as_FromDeviceOp();
753 }
754 
755 template<> inline const tt::target::ttnn::ToDeviceOp *Operation::type_as<tt::target::ttnn::ToDeviceOp>() const {
756  return type_as_ToDeviceOp();
757 }
758 
759 template<> inline const tt::target::ttnn::ToDTypeOp *Operation::type_as<tt::target::ttnn::ToDTypeOp>() const {
760  return type_as_ToDTypeOp();
761 }
762 
763 template<> inline const tt::target::ttnn::ToLayoutOp *Operation::type_as<tt::target::ttnn::ToLayoutOp>() const {
764  return type_as_ToLayoutOp();
765 }
766 
767 template<> inline const tt::target::ttnn::ToMemoryConfigOp *Operation::type_as<tt::target::ttnn::ToMemoryConfigOp>() const {
768  return type_as_ToMemoryConfigOp();
769 }
770 
771 template<> inline const tt::target::ttnn::TypecastOp *Operation::type_as<tt::target::ttnn::TypecastOp>() const {
772  return type_as_TypecastOp();
773 }
774 
775 template<> inline const tt::target::ttnn::LinearOp *Operation::type_as<tt::target::ttnn::LinearOp>() const {
776  return type_as_LinearOp();
777 }
778 
779 template<> inline const tt::target::ttnn::MatmulOp *Operation::type_as<tt::target::ttnn::MatmulOp>() const {
780  return type_as_MatmulOp();
781 }
782 
783 template<> inline const tt::target::ttnn::MorehCumSumOp *Operation::type_as<tt::target::ttnn::MorehCumSumOp>() const {
784  return type_as_MorehCumSumOp();
785 }
786 
787 template<> inline const tt::target::ttnn::SoftmaxOp *Operation::type_as<tt::target::ttnn::SoftmaxOp>() const {
788  return type_as_SoftmaxOp();
789 }
790 
791 template<> inline const tt::target::ttnn::Pool2dOp *Operation::type_as<tt::target::ttnn::Pool2dOp>() const {
792  return type_as_Pool2dOp();
793 }
794 
795 template<> inline const tt::target::ttnn::UpsampleOp *Operation::type_as<tt::target::ttnn::UpsampleOp>() const {
796  return type_as_UpsampleOp();
797 }
798 
799 template<> inline const tt::target::ttnn::ReductionArgMaxOp *Operation::type_as<tt::target::ttnn::ReductionArgMaxOp>() const {
800  return type_as_ReductionArgMaxOp();
801 }
802 
803 template<> inline const tt::target::ttnn::ReductionOp *Operation::type_as<tt::target::ttnn::ReductionOp>() const {
804  return type_as_ReductionOp();
805 }
806 
807 template<> inline const tt::target::ttnn::ReductionProdOp *Operation::type_as<tt::target::ttnn::ReductionProdOp>() const {
808  return type_as_ReductionProdOp();
809 }
810 
811 template<> inline const tt::target::ttnn::LoadCachedOp *Operation::type_as<tt::target::ttnn::LoadCachedOp>() const {
812  return type_as_LoadCachedOp();
813 }
814 
815 template<> inline const tt::target::ttnn::BatchNormOp *Operation::type_as<tt::target::ttnn::BatchNormOp>() const {
816  return type_as_BatchNormOp();
817 }
818 
820  typedef Operation Table;
821  ::flatbuffers::FlatBufferBuilder &fbb_;
822  ::flatbuffers::uoffset_t start_;
824  fbb_.AddElement<uint8_t>(Operation::VT_TYPE_TYPE, static_cast<uint8_t>(type_type), 0);
825  }
826  void add_type(::flatbuffers::Offset<void> type) {
827  fbb_.AddOffset(Operation::VT_TYPE, type);
828  }
829  void add_debug_info(::flatbuffers::Offset<::flatbuffers::String> debug_info) {
830  fbb_.AddOffset(Operation::VT_DEBUG_INFO, debug_info);
831  }
832  void add_loc_info(::flatbuffers::Offset<::flatbuffers::String> loc_info) {
833  fbb_.AddOffset(Operation::VT_LOC_INFO, loc_info);
834  }
835  explicit OperationBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
836  : fbb_(_fbb) {
837  start_ = fbb_.StartTable();
838  }
839  ::flatbuffers::Offset<Operation> Finish() {
840  const auto end = fbb_.EndTable(start_);
841  auto o = ::flatbuffers::Offset<Operation>(end);
842  return o;
843  }
844 };
845 
846 inline ::flatbuffers::Offset<Operation> CreateOperation(
847  ::flatbuffers::FlatBufferBuilder &_fbb,
849  ::flatbuffers::Offset<void> type = 0,
850  ::flatbuffers::Offset<::flatbuffers::String> debug_info = 0,
851  ::flatbuffers::Offset<::flatbuffers::String> loc_info = 0) {
852  OperationBuilder builder_(_fbb);
853  builder_.add_loc_info(loc_info);
854  builder_.add_debug_info(debug_info);
855  builder_.add_type(type);
856  builder_.add_type_type(type_type);
857  return builder_.Finish();
858 }
859 
861  using type = Operation;
862  static auto constexpr Create = CreateOperation;
863 };
864 
865 inline ::flatbuffers::Offset<Operation> CreateOperationDirect(
866  ::flatbuffers::FlatBufferBuilder &_fbb,
868  ::flatbuffers::Offset<void> type = 0,
869  const char *debug_info = nullptr,
870  const char *loc_info = nullptr) {
871  auto debug_info__ = debug_info ? _fbb.CreateString(debug_info) : 0;
872  auto loc_info__ = loc_info ? _fbb.CreateString(loc_info) : 0;
874  _fbb,
875  type_type,
876  type,
877  debug_info__,
878  loc_info__);
879 }
880 
881 struct Program FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
883  struct Traits;
884  static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
885  return "tt.target.ttnn.Program";
886  }
887  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
888  VT_NAME = 4,
892  VT_DYLIBS = 12,
893  VT_DEBUG_INFO = 14,
894  VT_PRIVATE_ = 16
895  };
896  const ::flatbuffers::String *name() const {
897  return GetPointer<const ::flatbuffers::String *>(VT_NAME);
898  }
899  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *inputs() const {
900  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *>(VT_INPUTS);
901  }
902  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *outputs() const {
903  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *>(VT_OUTPUTS);
904  }
905  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>> *operations() const {
906  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>> *>(VT_OPERATIONS);
907  }
908  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>> *dylibs() const {
909  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>> *>(VT_DYLIBS);
910  }
911  const tt::target::DebugInfo *debug_info() const {
912  return GetPointer<const tt::target::DebugInfo *>(VT_DEBUG_INFO);
913  }
914  bool private_() const {
915  return GetField<uint8_t>(VT_PRIVATE_, 0) != 0;
916  }
917  bool Verify(::flatbuffers::Verifier &verifier) const {
918  return VerifyTableStart(verifier) &&
919  VerifyOffset(verifier, VT_NAME) &&
920  verifier.VerifyString(name()) &&
921  VerifyOffset(verifier, VT_INPUTS) &&
922  verifier.VerifyVector(inputs()) &&
923  verifier.VerifyVectorOfTables(inputs()) &&
924  VerifyOffset(verifier, VT_OUTPUTS) &&
925  verifier.VerifyVector(outputs()) &&
926  verifier.VerifyVectorOfTables(outputs()) &&
927  VerifyOffset(verifier, VT_OPERATIONS) &&
928  verifier.VerifyVector(operations()) &&
929  verifier.VerifyVectorOfTables(operations()) &&
930  VerifyOffset(verifier, VT_DYLIBS) &&
931  verifier.VerifyVector(dylibs()) &&
932  verifier.VerifyVectorOfTables(dylibs()) &&
933  VerifyOffset(verifier, VT_DEBUG_INFO) &&
934  verifier.VerifyTable(debug_info()) &&
935  VerifyField<uint8_t>(verifier, VT_PRIVATE_, 1) &&
936  verifier.EndTable();
937  }
938 };
939 
941  typedef Program Table;
942  ::flatbuffers::FlatBufferBuilder &fbb_;
943  ::flatbuffers::uoffset_t start_;
944  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
945  fbb_.AddOffset(Program::VT_NAME, name);
946  }
947  void add_inputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> inputs) {
948  fbb_.AddOffset(Program::VT_INPUTS, inputs);
949  }
950  void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> outputs) {
951  fbb_.AddOffset(Program::VT_OUTPUTS, outputs);
952  }
953  void add_operations(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>>> operations) {
954  fbb_.AddOffset(Program::VT_OPERATIONS, operations);
955  }
956  void add_dylibs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>>> dylibs) {
957  fbb_.AddOffset(Program::VT_DYLIBS, dylibs);
958  }
959  void add_debug_info(::flatbuffers::Offset<tt::target::DebugInfo> debug_info) {
960  fbb_.AddOffset(Program::VT_DEBUG_INFO, debug_info);
961  }
962  void add_private_(bool private_) {
963  fbb_.AddElement<uint8_t>(Program::VT_PRIVATE_, static_cast<uint8_t>(private_), 0);
964  }
965  explicit ProgramBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
966  : fbb_(_fbb) {
967  start_ = fbb_.StartTable();
968  }
969  ::flatbuffers::Offset<Program> Finish() {
970  const auto end = fbb_.EndTable(start_);
971  auto o = ::flatbuffers::Offset<Program>(end);
972  return o;
973  }
974 };
975 
976 inline ::flatbuffers::Offset<Program> CreateProgram(
977  ::flatbuffers::FlatBufferBuilder &_fbb,
978  ::flatbuffers::Offset<::flatbuffers::String> name = 0,
979  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> inputs = 0,
980  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> outputs = 0,
981  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>>> operations = 0,
982  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>>> dylibs = 0,
983  ::flatbuffers::Offset<tt::target::DebugInfo> debug_info = 0,
984  bool private_ = false) {
985  ProgramBuilder builder_(_fbb);
986  builder_.add_debug_info(debug_info);
987  builder_.add_dylibs(dylibs);
988  builder_.add_operations(operations);
989  builder_.add_outputs(outputs);
990  builder_.add_inputs(inputs);
991  builder_.add_name(name);
992  builder_.add_private_(private_);
993  return builder_.Finish();
994 }
995 
997  using type = Program;
998  static auto constexpr Create = CreateProgram;
999 };
1000 
1001 inline ::flatbuffers::Offset<Program> CreateProgramDirect(
1002  ::flatbuffers::FlatBufferBuilder &_fbb,
1003  const char *name = nullptr,
1004  const std::vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *inputs = nullptr,
1005  const std::vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *outputs = nullptr,
1006  const std::vector<::flatbuffers::Offset<tt::target::ttnn::Operation>> *operations = nullptr,
1007  const std::vector<::flatbuffers::Offset<tt::target::DynamicLib>> *dylibs = nullptr,
1008  ::flatbuffers::Offset<tt::target::DebugInfo> debug_info = 0,
1009  bool private_ = false) {
1010  auto name__ = name ? _fbb.CreateString(name) : 0;
1011  auto inputs__ = inputs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>(*inputs) : 0;
1012  auto outputs__ = outputs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>(*outputs) : 0;
1013  auto operations__ = operations ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::ttnn::Operation>>(*operations) : 0;
1014  auto dylibs__ = dylibs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::DynamicLib>>(*dylibs) : 0;
1016  _fbb,
1017  name__,
1018  inputs__,
1019  outputs__,
1020  operations__,
1021  dylibs__,
1022  debug_info,
1023  private_);
1024 }
1025 
1026 inline bool VerifyOpType(::flatbuffers::Verifier &verifier, const void *obj, OpType type) {
1027  switch (type) {
1028  case OpType::NONE: {
1029  return true;
1030  }
1031  case OpType::AllGatherOp: {
1032  auto ptr = reinterpret_cast<const tt::target::ttnn::AllGatherOp *>(obj);
1033  return verifier.VerifyTable(ptr);
1034  }
1036  auto ptr = reinterpret_cast<const tt::target::ttnn::CollectivePermuteOp *>(obj);
1037  return verifier.VerifyTable(ptr);
1038  }
1039  case OpType::MeshShardOp: {
1040  auto ptr = reinterpret_cast<const tt::target::ttnn::MeshShardOp *>(obj);
1041  return verifier.VerifyTable(ptr);
1042  }
1043  case OpType::ReduceScatterOp: {
1044  auto ptr = reinterpret_cast<const tt::target::ttnn::ReduceScatterOp *>(obj);
1045  return verifier.VerifyTable(ptr);
1046  }
1047  case OpType::GetDeviceOp: {
1048  auto ptr = reinterpret_cast<const tt::target::ttnn::GetDeviceOp *>(obj);
1049  return verifier.VerifyTable(ptr);
1050  }
1052  auto ptr = reinterpret_cast<const tt::target::ttnn::PrepareConv2dWeightsOp *>(obj);
1053  return verifier.VerifyTable(ptr);
1054  }
1055  case OpType::Conv2dOp: {
1056  auto ptr = reinterpret_cast<const tt::target::ttnn::Conv2dOp *>(obj);
1057  return verifier.VerifyTable(ptr);
1058  }
1060  auto ptr = reinterpret_cast<const tt::target::ttnn::ConvTranspose2dOp *>(obj);
1061  return verifier.VerifyTable(ptr);
1062  }
1063  case OpType::CpuOp: {
1064  auto ptr = reinterpret_cast<const tt::target::ttnn::CpuOp *>(obj);
1065  return verifier.VerifyTable(ptr);
1066  }
1067  case OpType::ArangeOp: {
1068  auto ptr = reinterpret_cast<const tt::target::ttnn::ArangeOp *>(obj);
1069  return verifier.VerifyTable(ptr);
1070  }
1071  case OpType::ConstantOp: {
1072  auto ptr = reinterpret_cast<const tt::target::ttnn::ConstantOp *>(obj);
1073  return verifier.VerifyTable(ptr);
1074  }
1075  case OpType::EmptyOp: {
1076  auto ptr = reinterpret_cast<const tt::target::ttnn::EmptyOp *>(obj);
1077  return verifier.VerifyTable(ptr);
1078  }
1079  case OpType::FullOp: {
1080  auto ptr = reinterpret_cast<const tt::target::ttnn::FullOp *>(obj);
1081  return verifier.VerifyTable(ptr);
1082  }
1083  case OpType::NamedFullOp: {
1084  auto ptr = reinterpret_cast<const tt::target::ttnn::NamedFullOp *>(obj);
1085  return verifier.VerifyTable(ptr);
1086  }
1087  case OpType::ConcatOp: {
1088  auto ptr = reinterpret_cast<const tt::target::ttnn::ConcatOp *>(obj);
1089  return verifier.VerifyTable(ptr);
1090  }
1091  case OpType::PadOp: {
1092  auto ptr = reinterpret_cast<const tt::target::ttnn::PadOp *>(obj);
1093  return verifier.VerifyTable(ptr);
1094  }
1095  case OpType::PermuteOp: {
1096  auto ptr = reinterpret_cast<const tt::target::ttnn::PermuteOp *>(obj);
1097  return verifier.VerifyTable(ptr);
1098  }
1100  auto ptr = reinterpret_cast<const tt::target::ttnn::RepeatInterleaveOp *>(obj);
1101  return verifier.VerifyTable(ptr);
1102  }
1103  case OpType::RepeatOp: {
1104  auto ptr = reinterpret_cast<const tt::target::ttnn::RepeatOp *>(obj);
1105  return verifier.VerifyTable(ptr);
1106  }
1107  case OpType::ReshapeOp: {
1108  auto ptr = reinterpret_cast<const tt::target::ttnn::ReshapeOp *>(obj);
1109  return verifier.VerifyTable(ptr);
1110  }
1111  case OpType::SliceOp: {
1112  auto ptr = reinterpret_cast<const tt::target::ttnn::SliceOp *>(obj);
1113  return verifier.VerifyTable(ptr);
1114  }
1115  case OpType::TransposeOp: {
1116  auto ptr = reinterpret_cast<const tt::target::ttnn::TransposeOp *>(obj);
1117  return verifier.VerifyTable(ptr);
1118  }
1119  case OpType::DeallocateOp: {
1120  auto ptr = reinterpret_cast<const tt::target::ttnn::DeallocateOp *>(obj);
1121  return verifier.VerifyTable(ptr);
1122  }
1123  case OpType::EltwiseBinaryOp: {
1124  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseBinaryOp *>(obj);
1125  return verifier.VerifyTable(ptr);
1126  }
1128  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseBinaryCompositeOp *>(obj);
1129  return verifier.VerifyTable(ptr);
1130  }
1132  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseTernaryWhereOp *>(obj);
1133  return verifier.VerifyTable(ptr);
1134  }
1136  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseQuantizationOp *>(obj);
1137  return verifier.VerifyTable(ptr);
1138  }
1139  case OpType::EltwiseUnaryOp: {
1140  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseUnaryOp *>(obj);
1141  return verifier.VerifyTable(ptr);
1142  }
1144  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseUnaryCompositeOp *>(obj);
1145  return verifier.VerifyTable(ptr);
1146  }
1148  auto ptr = reinterpret_cast<const tt::target::ttnn::EmbeddingBackwardOp *>(obj);
1149  return verifier.VerifyTable(ptr);
1150  }
1151  case OpType::EmbeddingOp: {
1152  auto ptr = reinterpret_cast<const tt::target::ttnn::EmbeddingOp *>(obj);
1153  return verifier.VerifyTable(ptr);
1154  }
1155  case OpType::FillCacheOp: {
1156  auto ptr = reinterpret_cast<const tt::target::ttnn::FillCacheOp *>(obj);
1157  return verifier.VerifyTable(ptr);
1158  }
1159  case OpType::UpdateCacheOp: {
1160  auto ptr = reinterpret_cast<const tt::target::ttnn::UpdateCacheOp *>(obj);
1161  return verifier.VerifyTable(ptr);
1162  }
1163  case OpType::FromDeviceOp: {
1164  auto ptr = reinterpret_cast<const tt::target::ttnn::FromDeviceOp *>(obj);
1165  return verifier.VerifyTable(ptr);
1166  }
1167  case OpType::ToDeviceOp: {
1168  auto ptr = reinterpret_cast<const tt::target::ttnn::ToDeviceOp *>(obj);
1169  return verifier.VerifyTable(ptr);
1170  }
1171  case OpType::ToDTypeOp: {
1172  auto ptr = reinterpret_cast<const tt::target::ttnn::ToDTypeOp *>(obj);
1173  return verifier.VerifyTable(ptr);
1174  }
1175  case OpType::ToLayoutOp: {
1176  auto ptr = reinterpret_cast<const tt::target::ttnn::ToLayoutOp *>(obj);
1177  return verifier.VerifyTable(ptr);
1178  }
1179  case OpType::ToMemoryConfigOp: {
1180  auto ptr = reinterpret_cast<const tt::target::ttnn::ToMemoryConfigOp *>(obj);
1181  return verifier.VerifyTable(ptr);
1182  }
1183  case OpType::TypecastOp: {
1184  auto ptr = reinterpret_cast<const tt::target::ttnn::TypecastOp *>(obj);
1185  return verifier.VerifyTable(ptr);
1186  }
1187  case OpType::LinearOp: {
1188  auto ptr = reinterpret_cast<const tt::target::ttnn::LinearOp *>(obj);
1189  return verifier.VerifyTable(ptr);
1190  }
1191  case OpType::MatmulOp: {
1192  auto ptr = reinterpret_cast<const tt::target::ttnn::MatmulOp *>(obj);
1193  return verifier.VerifyTable(ptr);
1194  }
1195  case OpType::MorehCumSumOp: {
1196  auto ptr = reinterpret_cast<const tt::target::ttnn::MorehCumSumOp *>(obj);
1197  return verifier.VerifyTable(ptr);
1198  }
1199  case OpType::SoftmaxOp: {
1200  auto ptr = reinterpret_cast<const tt::target::ttnn::SoftmaxOp *>(obj);
1201  return verifier.VerifyTable(ptr);
1202  }
1203  case OpType::Pool2dOp: {
1204  auto ptr = reinterpret_cast<const tt::target::ttnn::Pool2dOp *>(obj);
1205  return verifier.VerifyTable(ptr);
1206  }
1207  case OpType::UpsampleOp: {
1208  auto ptr = reinterpret_cast<const tt::target::ttnn::UpsampleOp *>(obj);
1209  return verifier.VerifyTable(ptr);
1210  }
1212  auto ptr = reinterpret_cast<const tt::target::ttnn::ReductionArgMaxOp *>(obj);
1213  return verifier.VerifyTable(ptr);
1214  }
1215  case OpType::ReductionOp: {
1216  auto ptr = reinterpret_cast<const tt::target::ttnn::ReductionOp *>(obj);
1217  return verifier.VerifyTable(ptr);
1218  }
1219  case OpType::ReductionProdOp: {
1220  auto ptr = reinterpret_cast<const tt::target::ttnn::ReductionProdOp *>(obj);
1221  return verifier.VerifyTable(ptr);
1222  }
1223  case OpType::LoadCachedOp: {
1224  auto ptr = reinterpret_cast<const tt::target::ttnn::LoadCachedOp *>(obj);
1225  return verifier.VerifyTable(ptr);
1226  }
1227  case OpType::BatchNormOp: {
1228  auto ptr = reinterpret_cast<const tt::target::ttnn::BatchNormOp *>(obj);
1229  return verifier.VerifyTable(ptr);
1230  }
1231  default: return true;
1232  }
1233 }
1234 
1235 inline bool VerifyOpTypeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<OpType> *types) {
1236  if (!values || !types) return !values && !types;
1237  if (values->size() != types->size()) return false;
1238  for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
1239  if (!VerifyOpType(
1240  verifier, values->Get(i), types->GetEnum<OpType>(i))) {
1241  return false;
1242  }
1243  }
1244  return true;
1245 }
1246 
1247 } // namespace ttnn
1248 } // namespace target
1249 } // namespace tt
1250 
1251 #endif // FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_TTNN_H_
VT_TYPE_TYPE
Definition: program_generated.h:1061
VT_TYPE
Definition: program_generated.h:1062
VT_DYLIBS
Definition: program_generated.h:892
VT_DEBUG_INFO
Definition: program_generated.h:440
VT_INPUTS
Definition: program_generated.h:889
VT_OUTPUTS
Definition: program_generated.h:890
VT_NAME
Definition: program_generated.h:888
VT_OPERATIONS
Definition: program_generated.h:891
bool VerifyOpTypeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset< void >> *values, const ::flatbuffers::Vector< OpType > *types)
Definition: program_generated.h:1235
OpType
Definition: program_generated.h:47
inline ::flatbuffers::Offset< Program > CreateProgram(::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String > name=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> inputs=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> outputs=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::Operation >>> operations=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::DynamicLib >>> dylibs=0, ::flatbuffers::Offset< tt::target::DebugInfo > debug_info=0, bool private_=false)
Definition: program_generated.h:976
const char *const * EnumNamesOpType()
Definition: program_generated.h:160
const char * EnumNameOpType(OpType e)
Definition: program_generated.h:218
bool VerifyOpType(::flatbuffers::Verifier &verifier, const void *obj, OpType type)
Definition: program_generated.h:1026
inline ::flatbuffers::Offset< Operation > CreateOperation(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::ttnn::OpType type_type=tt::target::ttnn::OpType::NONE, ::flatbuffers::Offset< void > type=0, ::flatbuffers::Offset<::flatbuffers::String > debug_info=0, ::flatbuffers::Offset<::flatbuffers::String > loc_info=0)
Definition: program_generated.h:846
const OpType(& EnumValuesOpType())[51]
Definition: program_generated.h:103
inline ::flatbuffers::Offset< Program > CreateProgramDirect(::flatbuffers::FlatBufferBuilder &_fbb, const char *name=nullptr, const std::vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >> *inputs=nullptr, const std::vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >> *outputs=nullptr, const std::vector<::flatbuffers::Offset< tt::target::ttnn::Operation >> *operations=nullptr, const std::vector<::flatbuffers::Offset< tt::target::DynamicLib >> *dylibs=nullptr, ::flatbuffers::Offset< tt::target::DebugInfo > debug_info=0, bool private_=false)
Definition: program_generated.h:1001
inline ::flatbuffers::Offset< Operation > CreateOperationDirect(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::ttnn::OpType type_type=tt::target::ttnn::OpType::NONE, ::flatbuffers::Offset< void > type=0, const char *debug_info=nullptr, const char *loc_info=nullptr)
Definition: program_generated.h:865
Definition: debug_info_generated.h:18
Definition: debug_info_generated.h:36
Definition: binary_generated.h:31
const tt::target::ttnn::ReshapeOp * type_as_ReshapeOp() const
Definition: program_generated.h:507
const ::flatbuffers::String * name() const
Definition: program_generated.h:896
const tt::target::ttnn::SoftmaxOp * type_as_SoftmaxOp() const
Definition: program_generated.h:576
const tt::target::ttnn::CpuOp * type_as_CpuOp() const
Definition: program_generated.h:474
const tt::target::ttnn::ReductionOp * type_as_ReductionOp() const
Definition: program_generated.h:588
const tt::target::ttnn::EmbeddingOp * type_as_EmbeddingOp() const
Definition: program_generated.h:540
const tt::target::ttnn::ConcatOp * type_as_ConcatOp() const
Definition: program_generated.h:492
const void * type() const
Definition: program_generated.h:446
ProgramBuilder Builder
Definition: program_generated.h:882
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::DynamicLib > > * dylibs() const
Definition: program_generated.h:908
const tt::target::ttnn::EmptyOp * type_as_EmptyOp() const
Definition: program_generated.h:483
const tt::target::ttnn::PrepareConv2dWeightsOp * type_as_PrepareConv2dWeightsOp() const
Definition: program_generated.h:465
const ::flatbuffers::String * debug_info() const
Definition: program_generated.h:600
const tt::target::ttnn::SliceOp * type_as_SliceOp() const
Definition: program_generated.h:510
const tt::target::ttnn::DeallocateOp * type_as_DeallocateOp() const
Definition: program_generated.h:516
const tt::target::ttnn::Pool2dOp * type_as_Pool2dOp() const
Definition: program_generated.h:579
const tt::target::ttnn::RepeatOp * type_as_RepeatOp() const
Definition: program_generated.h:504
bool private_() const
Definition: program_generated.h:914
const tt::target::ttnn::PadOp * type_as_PadOp() const
Definition: program_generated.h:495
const tt::target::ttnn::MeshShardOp * type_as_MeshShardOp() const
Definition: program_generated.h:456
const tt::target::ttnn::ToMemoryConfigOp * type_as_ToMemoryConfigOp() const
Definition: program_generated.h:561
const tt::target::ttnn::CollectivePermuteOp * type_as_CollectivePermuteOp() const
Definition: program_generated.h:453
const tt::target::ttnn::EmbeddingBackwardOp * type_as_EmbeddingBackwardOp() const
Definition: program_generated.h:537
const tt::target::ttnn::ToLayoutOp * type_as_ToLayoutOp() const
Definition: program_generated.h:558
const tt::target::ttnn::ArangeOp * type_as_ArangeOp() const
Definition: program_generated.h:477
const tt::target::ttnn::UpsampleOp * type_as_UpsampleOp() const
Definition: program_generated.h:582
const tt::target::ttnn::FromDeviceOp * type_as_FromDeviceOp() const
Definition: program_generated.h:549
const ::flatbuffers::String * loc_info() const
Definition: program_generated.h:603
const tt::target::ttnn::TransposeOp * type_as_TransposeOp() const
Definition: program_generated.h:513
const tt::target::ttnn::FullOp * type_as_FullOp() const
Definition: program_generated.h:486
const tt::target::ttnn::RepeatInterleaveOp * type_as_RepeatInterleaveOp() const
Definition: program_generated.h:501
const tt::target::ttnn::EltwiseUnaryCompositeOp * type_as_EltwiseUnaryCompositeOp() const
Definition: program_generated.h:534
const tt::target::ttnn::LinearOp * type_as_LinearOp() const
Definition: program_generated.h:567
const tt::target::ttnn::TypecastOp * type_as_TypecastOp() const
Definition: program_generated.h:564
tt::target::ttnn::OpType type_type() const
Definition: program_generated.h:443
const tt::target::ttnn::MatmulOp * type_as_MatmulOp() const
Definition: program_generated.h:570
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::Operation > > * operations() const
Definition: program_generated.h:905
bool Verify(::flatbuffers::Verifier &verifier) const
Definition: program_generated.h:606
const tt::target::ttnn::LoadCachedOp * type_as_LoadCachedOp() const
Definition: program_generated.h:594
const tt::target::ttnn::AllGatherOp * type_as_AllGatherOp() const
Definition: program_generated.h:450
const tt::target::ttnn::Conv2dOp * type_as_Conv2dOp() const
Definition: program_generated.h:468
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef > > * outputs() const
Definition: program_generated.h:902
const tt::target::ttnn::PermuteOp * type_as_PermuteOp() const
Definition: program_generated.h:498
const tt::target::ttnn::ToDTypeOp * type_as_ToDTypeOp() const
Definition: program_generated.h:555
OperationBuilder Builder
Definition: program_generated.h:432
const tt::target::ttnn::FillCacheOp * type_as_FillCacheOp() const
Definition: program_generated.h:543
const tt::target::ttnn::NamedFullOp * type_as_NamedFullOp() const
Definition: program_generated.h:489
const tt::target::ttnn::EltwiseBinaryCompositeOp * type_as_EltwiseBinaryCompositeOp() const
Definition: program_generated.h:522
const tt::target::ttnn::EltwiseQuantizationOp * type_as_EltwiseQuantizationOp() const
Definition: program_generated.h:528
const tt::target::ttnn::EltwiseTernaryWhereOp * type_as_EltwiseTernaryWhereOp() const
Definition: program_generated.h:525
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef > > * inputs() const
Definition: program_generated.h:899
const tt::target::ttnn::MorehCumSumOp * type_as_MorehCumSumOp() const
Definition: program_generated.h:573
const tt::target::DebugInfo * debug_info() const
Definition: program_generated.h:911
const tt::target::ttnn::BatchNormOp * type_as_BatchNormOp() const
Definition: program_generated.h:597
const tt::target::ttnn::ReductionProdOp * type_as_ReductionProdOp() const
Definition: program_generated.h:591
const tt::target::ttnn::EltwiseBinaryOp * type_as_EltwiseBinaryOp() const
Definition: program_generated.h:519
const tt::target::ttnn::ReductionArgMaxOp * type_as_ReductionArgMaxOp() const
Definition: program_generated.h:585
const tt::target::ttnn::ConvTranspose2dOp * type_as_ConvTranspose2dOp() const
Definition: program_generated.h:471
static FLATBUFFERS_CONSTEXPR_CPP11 const char * GetFullyQualifiedName()
Definition: program_generated.h:434
const tt::target::ttnn::EltwiseUnaryOp * type_as_EltwiseUnaryOp() const
Definition: program_generated.h:531
const tt::target::ttnn::ConstantOp * type_as_ConstantOp() const
Definition: program_generated.h:480
const tt::target::ttnn::ToDeviceOp * type_as_ToDeviceOp() const
Definition: program_generated.h:552
const tt::target::ttnn::ReduceScatterOp * type_as_ReduceScatterOp() const
Definition: program_generated.h:459
const tt::target::ttnn::UpdateCacheOp * type_as_UpdateCacheOp() const
Definition: program_generated.h:546
const tt::target::ttnn::GetDeviceOp * type_as_GetDeviceOp() const
Definition: program_generated.h:462
Definition: program_generated.h:224
static const OpType enum_value
Definition: program_generated.h:225
Definition: program_generated.h:819
void add_type(::flatbuffers::Offset< void > type)
Definition: program_generated.h:826
OperationBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:835
::flatbuffers::Offset< Operation > Finish()
Definition: program_generated.h:839
Operation Table
Definition: program_generated.h:820
void add_debug_info(::flatbuffers::Offset<::flatbuffers::String > debug_info)
Definition: program_generated.h:829
void add_loc_info(::flatbuffers::Offset<::flatbuffers::String > loc_info)
Definition: program_generated.h:832
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:821
::flatbuffers::uoffset_t start_
Definition: program_generated.h:822
void add_type_type(tt::target::ttnn::OpType type_type)
Definition: program_generated.h:823
Definition: program_generated.h:860
static constexpr auto Create
Definition: program_generated.h:862
Operation type
Definition: program_generated.h:861
Definition: program_generated.h:940
Program Table
Definition: program_generated.h:941
::flatbuffers::uoffset_t start_
Definition: program_generated.h:943
void add_name(::flatbuffers::Offset<::flatbuffers::String > name)
Definition: program_generated.h:944
void add_debug_info(::flatbuffers::Offset< tt::target::DebugInfo > debug_info)
Definition: program_generated.h:959
void add_dylibs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::DynamicLib >>> dylibs)
Definition: program_generated.h:956
void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> outputs)
Definition: program_generated.h:950
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:942
void add_inputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> inputs)
Definition: program_generated.h:947
void add_private_(bool private_)
Definition: program_generated.h:962
::flatbuffers::Offset< Program > Finish()
Definition: program_generated.h:969
ProgramBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:965
void add_operations(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::Operation >>> operations)
Definition: program_generated.h:953
Definition: program_generated.h:996
static constexpr auto Create
Definition: program_generated.h:998
Program type
Definition: program_generated.h:997