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