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