TT-MLIR
program_generated.h
Go to the documentation of this file.
1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_TTNN_H_
5 #define FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_TTNN_H_
6 
7 #include "flatbuffers/flatbuffers.h"
8 
9 // Ensure the included flatbuffers.h is the same version as when this file was
10 // generated, otherwise it may not be compatible.
11 static_assert(FLATBUFFERS_VERSION_MAJOR == 24 &&
12  FLATBUFFERS_VERSION_MINOR == 3 &&
13  FLATBUFFERS_VERSION_REVISION == 25,
14  "Non-compatible flatbuffers version included");
15 
36 
37 namespace tt {
38 namespace target {
39 namespace ttnn {
40 
41 struct Operation;
42 struct OperationBuilder;
43 
44 struct Program;
45 struct ProgramBuilder;
46 
47 enum class OpType : uint8_t {
48  NONE = 0,
49  AllGatherOp = 1,
51  MeshShardOp = 3,
52  ReduceScatterOp = 4,
53  GetDeviceOp = 5,
55  Conv2dOp = 7,
57  CpuOp = 9,
58  ArangeOp = 10,
59  ConstantOp = 11,
60  EmptyOp = 12,
61  FullOp = 13,
62  NamedFullOp = 14,
63  ConcatOp = 15,
64  PadOp = 16,
65  PermuteOp = 17,
66  RepeatInterleaveOp = 18,
67  RepeatOp = 19,
68  ReshapeOp = 20,
69  SliceOp = 21,
70  TransposeOp = 22,
71  DeallocateOp = 23,
72  EltwiseBinaryOp = 24,
76  EltwiseUnaryOp = 28,
79  EmbeddingOp = 31,
80  FillCacheOp = 32,
81  UpdateCacheOp = 33,
82  FromDeviceOp = 34,
83  ToDeviceOp = 35,
84  ToDTypeOp = 36,
85  ToLayoutOp = 37,
86  ToMemoryConfigOp = 38,
87  TypecastOp = 39,
88  LinearOp = 40,
89  MatmulOp = 41,
90  MorehCumSumOp = 42,
91  SoftmaxOp = 43,
92  Pool2dOp = 44,
93  UpsampleOp = 45,
94  ReductionArgMaxOp = 46,
95  ReductionOp = 47,
96  ReductionProdOp = 48,
97  LoadCachedOp = 49,
98  MIN = NONE,
100 };
101 
102 inline const OpType (&EnumValuesOpType())[50] {
103  static const OpType values[] = {
104  OpType::NONE,
154  };
155  return values;
156 }
157 
158 inline const char * const *EnumNamesOpType() {
159  static const char * const names[51] = {
160  "NONE",
161  "AllGatherOp",
162  "CollectivePermuteOp",
163  "MeshShardOp",
164  "ReduceScatterOp",
165  "GetDeviceOp",
166  "PrepareConv2dWeightsOp",
167  "Conv2dOp",
168  "ConvTranspose2dOp",
169  "CpuOp",
170  "ArangeOp",
171  "ConstantOp",
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  "Pool2dOp",
205  "UpsampleOp",
206  "ReductionArgMaxOp",
207  "ReductionOp",
208  "ReductionProdOp",
209  "LoadCachedOp",
210  nullptr
211  };
212  return names;
213 }
214 
215 inline const char *EnumNameOpType(OpType e) {
216  if (::flatbuffers::IsOutRange(e, OpType::NONE, OpType::LoadCachedOp)) return "";
217  const size_t index = static_cast<size_t>(e);
218  return EnumNamesOpType()[index];
219 }
220 
221 template<typename T> struct OpTypeTraits {
223 };
224 
225 template<> struct OpTypeTraits<tt::target::ttnn::AllGatherOp> {
227 };
228 
229 template<> struct OpTypeTraits<tt::target::ttnn::CollectivePermuteOp> {
231 };
232 
233 template<> struct OpTypeTraits<tt::target::ttnn::MeshShardOp> {
235 };
236 
237 template<> struct OpTypeTraits<tt::target::ttnn::ReduceScatterOp> {
239 };
240 
241 template<> struct OpTypeTraits<tt::target::ttnn::GetDeviceOp> {
243 };
244 
245 template<> struct OpTypeTraits<tt::target::ttnn::PrepareConv2dWeightsOp> {
247 };
248 
249 template<> struct OpTypeTraits<tt::target::ttnn::Conv2dOp> {
251 };
252 
253 template<> struct OpTypeTraits<tt::target::ttnn::ConvTranspose2dOp> {
255 };
256 
257 template<> struct OpTypeTraits<tt::target::ttnn::CpuOp> {
259 };
260 
261 template<> struct OpTypeTraits<tt::target::ttnn::ArangeOp> {
263 };
264 
265 template<> struct OpTypeTraits<tt::target::ttnn::ConstantOp> {
267 };
268 
269 template<> struct OpTypeTraits<tt::target::ttnn::EmptyOp> {
271 };
272 
273 template<> struct OpTypeTraits<tt::target::ttnn::FullOp> {
275 };
276 
277 template<> struct OpTypeTraits<tt::target::ttnn::NamedFullOp> {
279 };
280 
281 template<> struct OpTypeTraits<tt::target::ttnn::ConcatOp> {
283 };
284 
285 template<> struct OpTypeTraits<tt::target::ttnn::PadOp> {
287 };
288 
289 template<> struct OpTypeTraits<tt::target::ttnn::PermuteOp> {
291 };
292 
293 template<> struct OpTypeTraits<tt::target::ttnn::RepeatInterleaveOp> {
295 };
296 
297 template<> struct OpTypeTraits<tt::target::ttnn::RepeatOp> {
299 };
300 
301 template<> struct OpTypeTraits<tt::target::ttnn::ReshapeOp> {
303 };
304 
305 template<> struct OpTypeTraits<tt::target::ttnn::SliceOp> {
307 };
308 
309 template<> struct OpTypeTraits<tt::target::ttnn::TransposeOp> {
311 };
312 
313 template<> struct OpTypeTraits<tt::target::ttnn::DeallocateOp> {
315 };
316 
317 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseBinaryOp> {
319 };
320 
321 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseBinaryCompositeOp> {
323 };
324 
325 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseTernaryWhereOp> {
327 };
328 
329 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseQuantizationOp> {
331 };
332 
333 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseUnaryOp> {
335 };
336 
337 template<> struct OpTypeTraits<tt::target::ttnn::EltwiseUnaryCompositeOp> {
339 };
340 
341 template<> struct OpTypeTraits<tt::target::ttnn::EmbeddingBackwardOp> {
343 };
344 
345 template<> struct OpTypeTraits<tt::target::ttnn::EmbeddingOp> {
347 };
348 
349 template<> struct OpTypeTraits<tt::target::ttnn::FillCacheOp> {
351 };
352 
353 template<> struct OpTypeTraits<tt::target::ttnn::UpdateCacheOp> {
355 };
356 
357 template<> struct OpTypeTraits<tt::target::ttnn::FromDeviceOp> {
359 };
360 
361 template<> struct OpTypeTraits<tt::target::ttnn::ToDeviceOp> {
363 };
364 
365 template<> struct OpTypeTraits<tt::target::ttnn::ToDTypeOp> {
367 };
368 
369 template<> struct OpTypeTraits<tt::target::ttnn::ToLayoutOp> {
371 };
372 
373 template<> struct OpTypeTraits<tt::target::ttnn::ToMemoryConfigOp> {
375 };
376 
377 template<> struct OpTypeTraits<tt::target::ttnn::TypecastOp> {
379 };
380 
381 template<> struct OpTypeTraits<tt::target::ttnn::LinearOp> {
383 };
384 
385 template<> struct OpTypeTraits<tt::target::ttnn::MatmulOp> {
387 };
388 
389 template<> struct OpTypeTraits<tt::target::ttnn::MorehCumSumOp> {
391 };
392 
393 template<> struct OpTypeTraits<tt::target::ttnn::SoftmaxOp> {
395 };
396 
397 template<> struct OpTypeTraits<tt::target::ttnn::Pool2dOp> {
399 };
400 
401 template<> struct OpTypeTraits<tt::target::ttnn::UpsampleOp> {
403 };
404 
405 template<> struct OpTypeTraits<tt::target::ttnn::ReductionArgMaxOp> {
407 };
408 
409 template<> struct OpTypeTraits<tt::target::ttnn::ReductionOp> {
411 };
412 
413 template<> struct OpTypeTraits<tt::target::ttnn::ReductionProdOp> {
415 };
416 
417 template<> struct OpTypeTraits<tt::target::ttnn::LoadCachedOp> {
419 };
420 
421 bool VerifyOpType(::flatbuffers::Verifier &verifier, const void *obj, OpType type);
422 bool VerifyOpTypeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<OpType> *types);
423 
424 struct Operation FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
426  struct Traits;
427  static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
428  return "tt.target.ttnn.Operation";
429  }
430  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
432  VT_TYPE = 6,
434  VT_LOC_INFO = 10
435  };
437  return static_cast<tt::target::ttnn::OpType>(GetField<uint8_t>(VT_TYPE_TYPE, 0));
438  }
439  const void *type() const {
440  return GetPointer<const void *>(VT_TYPE);
441  }
442  template<typename T> const T *type_as() const;
443  const tt::target::ttnn::AllGatherOp *type_as_AllGatherOp() const {
444  return type_type() == tt::target::ttnn::OpType::AllGatherOp ? static_cast<const tt::target::ttnn::AllGatherOp *>(type()) : nullptr;
445  }
446  const tt::target::ttnn::CollectivePermuteOp *type_as_CollectivePermuteOp() const {
447  return type_type() == tt::target::ttnn::OpType::CollectivePermuteOp ? static_cast<const tt::target::ttnn::CollectivePermuteOp *>(type()) : nullptr;
448  }
449  const tt::target::ttnn::MeshShardOp *type_as_MeshShardOp() const {
450  return type_type() == tt::target::ttnn::OpType::MeshShardOp ? static_cast<const tt::target::ttnn::MeshShardOp *>(type()) : nullptr;
451  }
452  const tt::target::ttnn::ReduceScatterOp *type_as_ReduceScatterOp() const {
453  return type_type() == tt::target::ttnn::OpType::ReduceScatterOp ? static_cast<const tt::target::ttnn::ReduceScatterOp *>(type()) : nullptr;
454  }
455  const tt::target::ttnn::GetDeviceOp *type_as_GetDeviceOp() const {
456  return type_type() == tt::target::ttnn::OpType::GetDeviceOp ? static_cast<const tt::target::ttnn::GetDeviceOp *>(type()) : nullptr;
457  }
458  const tt::target::ttnn::PrepareConv2dWeightsOp *type_as_PrepareConv2dWeightsOp() const {
459  return type_type() == tt::target::ttnn::OpType::PrepareConv2dWeightsOp ? static_cast<const tt::target::ttnn::PrepareConv2dWeightsOp *>(type()) : nullptr;
460  }
461  const tt::target::ttnn::Conv2dOp *type_as_Conv2dOp() const {
462  return type_type() == tt::target::ttnn::OpType::Conv2dOp ? static_cast<const tt::target::ttnn::Conv2dOp *>(type()) : nullptr;
463  }
464  const tt::target::ttnn::ConvTranspose2dOp *type_as_ConvTranspose2dOp() const {
465  return type_type() == tt::target::ttnn::OpType::ConvTranspose2dOp ? static_cast<const tt::target::ttnn::ConvTranspose2dOp *>(type()) : nullptr;
466  }
467  const tt::target::ttnn::CpuOp *type_as_CpuOp() const {
468  return type_type() == tt::target::ttnn::OpType::CpuOp ? static_cast<const tt::target::ttnn::CpuOp *>(type()) : nullptr;
469  }
470  const tt::target::ttnn::ArangeOp *type_as_ArangeOp() const {
471  return type_type() == tt::target::ttnn::OpType::ArangeOp ? static_cast<const tt::target::ttnn::ArangeOp *>(type()) : nullptr;
472  }
473  const tt::target::ttnn::ConstantOp *type_as_ConstantOp() const {
474  return type_type() == tt::target::ttnn::OpType::ConstantOp ? static_cast<const tt::target::ttnn::ConstantOp *>(type()) : nullptr;
475  }
476  const tt::target::ttnn::EmptyOp *type_as_EmptyOp() const {
477  return type_type() == tt::target::ttnn::OpType::EmptyOp ? static_cast<const tt::target::ttnn::EmptyOp *>(type()) : nullptr;
478  }
479  const tt::target::ttnn::FullOp *type_as_FullOp() const {
480  return type_type() == tt::target::ttnn::OpType::FullOp ? static_cast<const tt::target::ttnn::FullOp *>(type()) : nullptr;
481  }
482  const tt::target::ttnn::NamedFullOp *type_as_NamedFullOp() const {
483  return type_type() == tt::target::ttnn::OpType::NamedFullOp ? static_cast<const tt::target::ttnn::NamedFullOp *>(type()) : nullptr;
484  }
485  const tt::target::ttnn::ConcatOp *type_as_ConcatOp() const {
486  return type_type() == tt::target::ttnn::OpType::ConcatOp ? static_cast<const tt::target::ttnn::ConcatOp *>(type()) : nullptr;
487  }
488  const tt::target::ttnn::PadOp *type_as_PadOp() const {
489  return type_type() == tt::target::ttnn::OpType::PadOp ? static_cast<const tt::target::ttnn::PadOp *>(type()) : nullptr;
490  }
491  const tt::target::ttnn::PermuteOp *type_as_PermuteOp() const {
492  return type_type() == tt::target::ttnn::OpType::PermuteOp ? static_cast<const tt::target::ttnn::PermuteOp *>(type()) : nullptr;
493  }
494  const tt::target::ttnn::RepeatInterleaveOp *type_as_RepeatInterleaveOp() const {
495  return type_type() == tt::target::ttnn::OpType::RepeatInterleaveOp ? static_cast<const tt::target::ttnn::RepeatInterleaveOp *>(type()) : nullptr;
496  }
497  const tt::target::ttnn::RepeatOp *type_as_RepeatOp() const {
498  return type_type() == tt::target::ttnn::OpType::RepeatOp ? static_cast<const tt::target::ttnn::RepeatOp *>(type()) : nullptr;
499  }
500  const tt::target::ttnn::ReshapeOp *type_as_ReshapeOp() const {
501  return type_type() == tt::target::ttnn::OpType::ReshapeOp ? static_cast<const tt::target::ttnn::ReshapeOp *>(type()) : nullptr;
502  }
503  const tt::target::ttnn::SliceOp *type_as_SliceOp() const {
504  return type_type() == tt::target::ttnn::OpType::SliceOp ? static_cast<const tt::target::ttnn::SliceOp *>(type()) : nullptr;
505  }
506  const tt::target::ttnn::TransposeOp *type_as_TransposeOp() const {
507  return type_type() == tt::target::ttnn::OpType::TransposeOp ? static_cast<const tt::target::ttnn::TransposeOp *>(type()) : nullptr;
508  }
509  const tt::target::ttnn::DeallocateOp *type_as_DeallocateOp() const {
510  return type_type() == tt::target::ttnn::OpType::DeallocateOp ? static_cast<const tt::target::ttnn::DeallocateOp *>(type()) : nullptr;
511  }
512  const tt::target::ttnn::EltwiseBinaryOp *type_as_EltwiseBinaryOp() const {
513  return type_type() == tt::target::ttnn::OpType::EltwiseBinaryOp ? static_cast<const tt::target::ttnn::EltwiseBinaryOp *>(type()) : nullptr;
514  }
515  const tt::target::ttnn::EltwiseBinaryCompositeOp *type_as_EltwiseBinaryCompositeOp() const {
516  return type_type() == tt::target::ttnn::OpType::EltwiseBinaryCompositeOp ? static_cast<const tt::target::ttnn::EltwiseBinaryCompositeOp *>(type()) : nullptr;
517  }
518  const tt::target::ttnn::EltwiseTernaryWhereOp *type_as_EltwiseTernaryWhereOp() const {
519  return type_type() == tt::target::ttnn::OpType::EltwiseTernaryWhereOp ? static_cast<const tt::target::ttnn::EltwiseTernaryWhereOp *>(type()) : nullptr;
520  }
521  const tt::target::ttnn::EltwiseQuantizationOp *type_as_EltwiseQuantizationOp() const {
522  return type_type() == tt::target::ttnn::OpType::EltwiseQuantizationOp ? static_cast<const tt::target::ttnn::EltwiseQuantizationOp *>(type()) : nullptr;
523  }
524  const tt::target::ttnn::EltwiseUnaryOp *type_as_EltwiseUnaryOp() const {
525  return type_type() == tt::target::ttnn::OpType::EltwiseUnaryOp ? static_cast<const tt::target::ttnn::EltwiseUnaryOp *>(type()) : nullptr;
526  }
527  const tt::target::ttnn::EltwiseUnaryCompositeOp *type_as_EltwiseUnaryCompositeOp() const {
528  return type_type() == tt::target::ttnn::OpType::EltwiseUnaryCompositeOp ? static_cast<const tt::target::ttnn::EltwiseUnaryCompositeOp *>(type()) : nullptr;
529  }
530  const tt::target::ttnn::EmbeddingBackwardOp *type_as_EmbeddingBackwardOp() const {
531  return type_type() == tt::target::ttnn::OpType::EmbeddingBackwardOp ? static_cast<const tt::target::ttnn::EmbeddingBackwardOp *>(type()) : nullptr;
532  }
533  const tt::target::ttnn::EmbeddingOp *type_as_EmbeddingOp() const {
534  return type_type() == tt::target::ttnn::OpType::EmbeddingOp ? static_cast<const tt::target::ttnn::EmbeddingOp *>(type()) : nullptr;
535  }
536  const tt::target::ttnn::FillCacheOp *type_as_FillCacheOp() const {
537  return type_type() == tt::target::ttnn::OpType::FillCacheOp ? static_cast<const tt::target::ttnn::FillCacheOp *>(type()) : nullptr;
538  }
539  const tt::target::ttnn::UpdateCacheOp *type_as_UpdateCacheOp() const {
540  return type_type() == tt::target::ttnn::OpType::UpdateCacheOp ? static_cast<const tt::target::ttnn::UpdateCacheOp *>(type()) : nullptr;
541  }
542  const tt::target::ttnn::FromDeviceOp *type_as_FromDeviceOp() const {
543  return type_type() == tt::target::ttnn::OpType::FromDeviceOp ? static_cast<const tt::target::ttnn::FromDeviceOp *>(type()) : nullptr;
544  }
545  const tt::target::ttnn::ToDeviceOp *type_as_ToDeviceOp() const {
546  return type_type() == tt::target::ttnn::OpType::ToDeviceOp ? static_cast<const tt::target::ttnn::ToDeviceOp *>(type()) : nullptr;
547  }
548  const tt::target::ttnn::ToDTypeOp *type_as_ToDTypeOp() const {
549  return type_type() == tt::target::ttnn::OpType::ToDTypeOp ? static_cast<const tt::target::ttnn::ToDTypeOp *>(type()) : nullptr;
550  }
551  const tt::target::ttnn::ToLayoutOp *type_as_ToLayoutOp() const {
552  return type_type() == tt::target::ttnn::OpType::ToLayoutOp ? static_cast<const tt::target::ttnn::ToLayoutOp *>(type()) : nullptr;
553  }
554  const tt::target::ttnn::ToMemoryConfigOp *type_as_ToMemoryConfigOp() const {
555  return type_type() == tt::target::ttnn::OpType::ToMemoryConfigOp ? static_cast<const tt::target::ttnn::ToMemoryConfigOp *>(type()) : nullptr;
556  }
557  const tt::target::ttnn::TypecastOp *type_as_TypecastOp() const {
558  return type_type() == tt::target::ttnn::OpType::TypecastOp ? static_cast<const tt::target::ttnn::TypecastOp *>(type()) : nullptr;
559  }
560  const tt::target::ttnn::LinearOp *type_as_LinearOp() const {
561  return type_type() == tt::target::ttnn::OpType::LinearOp ? static_cast<const tt::target::ttnn::LinearOp *>(type()) : nullptr;
562  }
563  const tt::target::ttnn::MatmulOp *type_as_MatmulOp() const {
564  return type_type() == tt::target::ttnn::OpType::MatmulOp ? static_cast<const tt::target::ttnn::MatmulOp *>(type()) : nullptr;
565  }
566  const tt::target::ttnn::MorehCumSumOp *type_as_MorehCumSumOp() const {
567  return type_type() == tt::target::ttnn::OpType::MorehCumSumOp ? static_cast<const tt::target::ttnn::MorehCumSumOp *>(type()) : nullptr;
568  }
569  const tt::target::ttnn::SoftmaxOp *type_as_SoftmaxOp() const {
570  return type_type() == tt::target::ttnn::OpType::SoftmaxOp ? static_cast<const tt::target::ttnn::SoftmaxOp *>(type()) : nullptr;
571  }
572  const tt::target::ttnn::Pool2dOp *type_as_Pool2dOp() const {
573  return type_type() == tt::target::ttnn::OpType::Pool2dOp ? static_cast<const tt::target::ttnn::Pool2dOp *>(type()) : nullptr;
574  }
575  const tt::target::ttnn::UpsampleOp *type_as_UpsampleOp() const {
576  return type_type() == tt::target::ttnn::OpType::UpsampleOp ? static_cast<const tt::target::ttnn::UpsampleOp *>(type()) : nullptr;
577  }
578  const tt::target::ttnn::ReductionArgMaxOp *type_as_ReductionArgMaxOp() const {
579  return type_type() == tt::target::ttnn::OpType::ReductionArgMaxOp ? static_cast<const tt::target::ttnn::ReductionArgMaxOp *>(type()) : nullptr;
580  }
581  const tt::target::ttnn::ReductionOp *type_as_ReductionOp() const {
582  return type_type() == tt::target::ttnn::OpType::ReductionOp ? static_cast<const tt::target::ttnn::ReductionOp *>(type()) : nullptr;
583  }
584  const tt::target::ttnn::ReductionProdOp *type_as_ReductionProdOp() const {
585  return type_type() == tt::target::ttnn::OpType::ReductionProdOp ? static_cast<const tt::target::ttnn::ReductionProdOp *>(type()) : nullptr;
586  }
587  const tt::target::ttnn::LoadCachedOp *type_as_LoadCachedOp() const {
588  return type_type() == tt::target::ttnn::OpType::LoadCachedOp ? static_cast<const tt::target::ttnn::LoadCachedOp *>(type()) : nullptr;
589  }
590  const ::flatbuffers::String *debug_info() const {
591  return GetPointer<const ::flatbuffers::String *>(VT_DEBUG_INFO);
592  }
593  const ::flatbuffers::String *loc_info() const {
594  return GetPointer<const ::flatbuffers::String *>(VT_LOC_INFO);
595  }
596  bool Verify(::flatbuffers::Verifier &verifier) const {
597  return VerifyTableStart(verifier) &&
598  VerifyField<uint8_t>(verifier, VT_TYPE_TYPE, 1) &&
599  VerifyOffset(verifier, VT_TYPE) &&
600  VerifyOpType(verifier, type(), type_type()) &&
601  VerifyOffset(verifier, VT_DEBUG_INFO) &&
602  verifier.VerifyString(debug_info()) &&
603  VerifyOffset(verifier, VT_LOC_INFO) &&
604  verifier.VerifyString(loc_info()) &&
605  verifier.EndTable();
606  }
607 };
608 
609 template<> inline const tt::target::ttnn::AllGatherOp *Operation::type_as<tt::target::ttnn::AllGatherOp>() const {
610  return type_as_AllGatherOp();
611 }
612 
613 template<> inline const tt::target::ttnn::CollectivePermuteOp *Operation::type_as<tt::target::ttnn::CollectivePermuteOp>() const {
614  return type_as_CollectivePermuteOp();
615 }
616 
617 template<> inline const tt::target::ttnn::MeshShardOp *Operation::type_as<tt::target::ttnn::MeshShardOp>() const {
618  return type_as_MeshShardOp();
619 }
620 
621 template<> inline const tt::target::ttnn::ReduceScatterOp *Operation::type_as<tt::target::ttnn::ReduceScatterOp>() const {
622  return type_as_ReduceScatterOp();
623 }
624 
625 template<> inline const tt::target::ttnn::GetDeviceOp *Operation::type_as<tt::target::ttnn::GetDeviceOp>() const {
626  return type_as_GetDeviceOp();
627 }
628 
629 template<> inline const tt::target::ttnn::PrepareConv2dWeightsOp *Operation::type_as<tt::target::ttnn::PrepareConv2dWeightsOp>() const {
630  return type_as_PrepareConv2dWeightsOp();
631 }
632 
633 template<> inline const tt::target::ttnn::Conv2dOp *Operation::type_as<tt::target::ttnn::Conv2dOp>() const {
634  return type_as_Conv2dOp();
635 }
636 
637 template<> inline const tt::target::ttnn::ConvTranspose2dOp *Operation::type_as<tt::target::ttnn::ConvTranspose2dOp>() const {
638  return type_as_ConvTranspose2dOp();
639 }
640 
641 template<> inline const tt::target::ttnn::CpuOp *Operation::type_as<tt::target::ttnn::CpuOp>() const {
642  return type_as_CpuOp();
643 }
644 
645 template<> inline const tt::target::ttnn::ArangeOp *Operation::type_as<tt::target::ttnn::ArangeOp>() const {
646  return type_as_ArangeOp();
647 }
648 
649 template<> inline const tt::target::ttnn::ConstantOp *Operation::type_as<tt::target::ttnn::ConstantOp>() const {
650  return type_as_ConstantOp();
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::Pool2dOp *Operation::type_as<tt::target::ttnn::Pool2dOp>() const {
782  return type_as_Pool2dOp();
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 
801 template<> inline const tt::target::ttnn::LoadCachedOp *Operation::type_as<tt::target::ttnn::LoadCachedOp>() const {
802  return type_as_LoadCachedOp();
803 }
804 
806  typedef Operation Table;
807  ::flatbuffers::FlatBufferBuilder &fbb_;
808  ::flatbuffers::uoffset_t start_;
810  fbb_.AddElement<uint8_t>(Operation::VT_TYPE_TYPE, static_cast<uint8_t>(type_type), 0);
811  }
812  void add_type(::flatbuffers::Offset<void> type) {
813  fbb_.AddOffset(Operation::VT_TYPE, type);
814  }
815  void add_debug_info(::flatbuffers::Offset<::flatbuffers::String> debug_info) {
816  fbb_.AddOffset(Operation::VT_DEBUG_INFO, debug_info);
817  }
818  void add_loc_info(::flatbuffers::Offset<::flatbuffers::String> loc_info) {
819  fbb_.AddOffset(Operation::VT_LOC_INFO, loc_info);
820  }
821  explicit OperationBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
822  : fbb_(_fbb) {
823  start_ = fbb_.StartTable();
824  }
825  ::flatbuffers::Offset<Operation> Finish() {
826  const auto end = fbb_.EndTable(start_);
827  auto o = ::flatbuffers::Offset<Operation>(end);
828  return o;
829  }
830 };
831 
832 inline ::flatbuffers::Offset<Operation> CreateOperation(
833  ::flatbuffers::FlatBufferBuilder &_fbb,
835  ::flatbuffers::Offset<void> type = 0,
836  ::flatbuffers::Offset<::flatbuffers::String> debug_info = 0,
837  ::flatbuffers::Offset<::flatbuffers::String> loc_info = 0) {
838  OperationBuilder builder_(_fbb);
839  builder_.add_loc_info(loc_info);
840  builder_.add_debug_info(debug_info);
841  builder_.add_type(type);
842  builder_.add_type_type(type_type);
843  return builder_.Finish();
844 }
845 
847  using type = Operation;
848  static auto constexpr Create = CreateOperation;
849 };
850 
851 inline ::flatbuffers::Offset<Operation> CreateOperationDirect(
852  ::flatbuffers::FlatBufferBuilder &_fbb,
854  ::flatbuffers::Offset<void> type = 0,
855  const char *debug_info = nullptr,
856  const char *loc_info = nullptr) {
857  auto debug_info__ = debug_info ? _fbb.CreateString(debug_info) : 0;
858  auto loc_info__ = loc_info ? _fbb.CreateString(loc_info) : 0;
860  _fbb,
861  type_type,
862  type,
863  debug_info__,
864  loc_info__);
865 }
866 
867 struct Program FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
869  struct Traits;
870  static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
871  return "tt.target.ttnn.Program";
872  }
873  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
874  VT_NAME = 4,
878  VT_DYLIBS = 12,
879  VT_DEBUG_INFO = 14
880  };
881  const ::flatbuffers::String *name() const {
882  return GetPointer<const ::flatbuffers::String *>(VT_NAME);
883  }
884  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *inputs() const {
885  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *>(VT_INPUTS);
886  }
887  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *outputs() const {
888  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *>(VT_OUTPUTS);
889  }
890  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>> *operations() const {
891  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>> *>(VT_OPERATIONS);
892  }
893  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>> *dylibs() const {
894  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>> *>(VT_DYLIBS);
895  }
896  const tt::target::DebugInfo *debug_info() const {
897  return GetPointer<const tt::target::DebugInfo *>(VT_DEBUG_INFO);
898  }
899  bool Verify(::flatbuffers::Verifier &verifier) const {
900  return VerifyTableStart(verifier) &&
901  VerifyOffset(verifier, VT_NAME) &&
902  verifier.VerifyString(name()) &&
903  VerifyOffset(verifier, VT_INPUTS) &&
904  verifier.VerifyVector(inputs()) &&
905  verifier.VerifyVectorOfTables(inputs()) &&
906  VerifyOffset(verifier, VT_OUTPUTS) &&
907  verifier.VerifyVector(outputs()) &&
908  verifier.VerifyVectorOfTables(outputs()) &&
909  VerifyOffset(verifier, VT_OPERATIONS) &&
910  verifier.VerifyVector(operations()) &&
911  verifier.VerifyVectorOfTables(operations()) &&
912  VerifyOffset(verifier, VT_DYLIBS) &&
913  verifier.VerifyVector(dylibs()) &&
914  verifier.VerifyVectorOfTables(dylibs()) &&
915  VerifyOffset(verifier, VT_DEBUG_INFO) &&
916  verifier.VerifyTable(debug_info()) &&
917  verifier.EndTable();
918  }
919 };
920 
922  typedef Program Table;
923  ::flatbuffers::FlatBufferBuilder &fbb_;
924  ::flatbuffers::uoffset_t start_;
925  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
926  fbb_.AddOffset(Program::VT_NAME, name);
927  }
928  void add_inputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> inputs) {
929  fbb_.AddOffset(Program::VT_INPUTS, inputs);
930  }
931  void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> outputs) {
932  fbb_.AddOffset(Program::VT_OUTPUTS, outputs);
933  }
934  void add_operations(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>>> operations) {
935  fbb_.AddOffset(Program::VT_OPERATIONS, operations);
936  }
937  void add_dylibs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>>> dylibs) {
938  fbb_.AddOffset(Program::VT_DYLIBS, dylibs);
939  }
940  void add_debug_info(::flatbuffers::Offset<tt::target::DebugInfo> debug_info) {
941  fbb_.AddOffset(Program::VT_DEBUG_INFO, debug_info);
942  }
943  explicit ProgramBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
944  : fbb_(_fbb) {
945  start_ = fbb_.StartTable();
946  }
947  ::flatbuffers::Offset<Program> Finish() {
948  const auto end = fbb_.EndTable(start_);
949  auto o = ::flatbuffers::Offset<Program>(end);
950  return o;
951  }
952 };
953 
954 inline ::flatbuffers::Offset<Program> CreateProgram(
955  ::flatbuffers::FlatBufferBuilder &_fbb,
956  ::flatbuffers::Offset<::flatbuffers::String> name = 0,
957  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> inputs = 0,
958  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>> outputs = 0,
959  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::ttnn::Operation>>> operations = 0,
960  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::DynamicLib>>> dylibs = 0,
961  ::flatbuffers::Offset<tt::target::DebugInfo> debug_info = 0) {
962  ProgramBuilder builder_(_fbb);
963  builder_.add_debug_info(debug_info);
964  builder_.add_dylibs(dylibs);
965  builder_.add_operations(operations);
966  builder_.add_outputs(outputs);
967  builder_.add_inputs(inputs);
968  builder_.add_name(name);
969  return builder_.Finish();
970 }
971 
973  using type = Program;
974  static auto constexpr Create = CreateProgram;
975 };
976 
977 inline ::flatbuffers::Offset<Program> CreateProgramDirect(
978  ::flatbuffers::FlatBufferBuilder &_fbb,
979  const char *name = nullptr,
980  const std::vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *inputs = nullptr,
981  const std::vector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>> *outputs = nullptr,
982  const std::vector<::flatbuffers::Offset<tt::target::ttnn::Operation>> *operations = nullptr,
983  const std::vector<::flatbuffers::Offset<tt::target::DynamicLib>> *dylibs = nullptr,
984  ::flatbuffers::Offset<tt::target::DebugInfo> debug_info = 0) {
985  auto name__ = name ? _fbb.CreateString(name) : 0;
986  auto inputs__ = inputs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>(*inputs) : 0;
987  auto outputs__ = outputs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::ttnn::TensorRef>>(*outputs) : 0;
988  auto operations__ = operations ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::ttnn::Operation>>(*operations) : 0;
989  auto dylibs__ = dylibs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::DynamicLib>>(*dylibs) : 0;
991  _fbb,
992  name__,
993  inputs__,
994  outputs__,
995  operations__,
996  dylibs__,
997  debug_info);
998 }
999 
1000 inline bool VerifyOpType(::flatbuffers::Verifier &verifier, const void *obj, OpType type) {
1001  switch (type) {
1002  case OpType::NONE: {
1003  return true;
1004  }
1005  case OpType::AllGatherOp: {
1006  auto ptr = reinterpret_cast<const tt::target::ttnn::AllGatherOp *>(obj);
1007  return verifier.VerifyTable(ptr);
1008  }
1010  auto ptr = reinterpret_cast<const tt::target::ttnn::CollectivePermuteOp *>(obj);
1011  return verifier.VerifyTable(ptr);
1012  }
1013  case OpType::MeshShardOp: {
1014  auto ptr = reinterpret_cast<const tt::target::ttnn::MeshShardOp *>(obj);
1015  return verifier.VerifyTable(ptr);
1016  }
1017  case OpType::ReduceScatterOp: {
1018  auto ptr = reinterpret_cast<const tt::target::ttnn::ReduceScatterOp *>(obj);
1019  return verifier.VerifyTable(ptr);
1020  }
1021  case OpType::GetDeviceOp: {
1022  auto ptr = reinterpret_cast<const tt::target::ttnn::GetDeviceOp *>(obj);
1023  return verifier.VerifyTable(ptr);
1024  }
1026  auto ptr = reinterpret_cast<const tt::target::ttnn::PrepareConv2dWeightsOp *>(obj);
1027  return verifier.VerifyTable(ptr);
1028  }
1029  case OpType::Conv2dOp: {
1030  auto ptr = reinterpret_cast<const tt::target::ttnn::Conv2dOp *>(obj);
1031  return verifier.VerifyTable(ptr);
1032  }
1034  auto ptr = reinterpret_cast<const tt::target::ttnn::ConvTranspose2dOp *>(obj);
1035  return verifier.VerifyTable(ptr);
1036  }
1037  case OpType::CpuOp: {
1038  auto ptr = reinterpret_cast<const tt::target::ttnn::CpuOp *>(obj);
1039  return verifier.VerifyTable(ptr);
1040  }
1041  case OpType::ArangeOp: {
1042  auto ptr = reinterpret_cast<const tt::target::ttnn::ArangeOp *>(obj);
1043  return verifier.VerifyTable(ptr);
1044  }
1045  case OpType::ConstantOp: {
1046  auto ptr = reinterpret_cast<const tt::target::ttnn::ConstantOp *>(obj);
1047  return verifier.VerifyTable(ptr);
1048  }
1049  case OpType::EmptyOp: {
1050  auto ptr = reinterpret_cast<const tt::target::ttnn::EmptyOp *>(obj);
1051  return verifier.VerifyTable(ptr);
1052  }
1053  case OpType::FullOp: {
1054  auto ptr = reinterpret_cast<const tt::target::ttnn::FullOp *>(obj);
1055  return verifier.VerifyTable(ptr);
1056  }
1057  case OpType::NamedFullOp: {
1058  auto ptr = reinterpret_cast<const tt::target::ttnn::NamedFullOp *>(obj);
1059  return verifier.VerifyTable(ptr);
1060  }
1061  case OpType::ConcatOp: {
1062  auto ptr = reinterpret_cast<const tt::target::ttnn::ConcatOp *>(obj);
1063  return verifier.VerifyTable(ptr);
1064  }
1065  case OpType::PadOp: {
1066  auto ptr = reinterpret_cast<const tt::target::ttnn::PadOp *>(obj);
1067  return verifier.VerifyTable(ptr);
1068  }
1069  case OpType::PermuteOp: {
1070  auto ptr = reinterpret_cast<const tt::target::ttnn::PermuteOp *>(obj);
1071  return verifier.VerifyTable(ptr);
1072  }
1074  auto ptr = reinterpret_cast<const tt::target::ttnn::RepeatInterleaveOp *>(obj);
1075  return verifier.VerifyTable(ptr);
1076  }
1077  case OpType::RepeatOp: {
1078  auto ptr = reinterpret_cast<const tt::target::ttnn::RepeatOp *>(obj);
1079  return verifier.VerifyTable(ptr);
1080  }
1081  case OpType::ReshapeOp: {
1082  auto ptr = reinterpret_cast<const tt::target::ttnn::ReshapeOp *>(obj);
1083  return verifier.VerifyTable(ptr);
1084  }
1085  case OpType::SliceOp: {
1086  auto ptr = reinterpret_cast<const tt::target::ttnn::SliceOp *>(obj);
1087  return verifier.VerifyTable(ptr);
1088  }
1089  case OpType::TransposeOp: {
1090  auto ptr = reinterpret_cast<const tt::target::ttnn::TransposeOp *>(obj);
1091  return verifier.VerifyTable(ptr);
1092  }
1093  case OpType::DeallocateOp: {
1094  auto ptr = reinterpret_cast<const tt::target::ttnn::DeallocateOp *>(obj);
1095  return verifier.VerifyTable(ptr);
1096  }
1097  case OpType::EltwiseBinaryOp: {
1098  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseBinaryOp *>(obj);
1099  return verifier.VerifyTable(ptr);
1100  }
1102  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseBinaryCompositeOp *>(obj);
1103  return verifier.VerifyTable(ptr);
1104  }
1106  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseTernaryWhereOp *>(obj);
1107  return verifier.VerifyTable(ptr);
1108  }
1110  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseQuantizationOp *>(obj);
1111  return verifier.VerifyTable(ptr);
1112  }
1113  case OpType::EltwiseUnaryOp: {
1114  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseUnaryOp *>(obj);
1115  return verifier.VerifyTable(ptr);
1116  }
1118  auto ptr = reinterpret_cast<const tt::target::ttnn::EltwiseUnaryCompositeOp *>(obj);
1119  return verifier.VerifyTable(ptr);
1120  }
1122  auto ptr = reinterpret_cast<const tt::target::ttnn::EmbeddingBackwardOp *>(obj);
1123  return verifier.VerifyTable(ptr);
1124  }
1125  case OpType::EmbeddingOp: {
1126  auto ptr = reinterpret_cast<const tt::target::ttnn::EmbeddingOp *>(obj);
1127  return verifier.VerifyTable(ptr);
1128  }
1129  case OpType::FillCacheOp: {
1130  auto ptr = reinterpret_cast<const tt::target::ttnn::FillCacheOp *>(obj);
1131  return verifier.VerifyTable(ptr);
1132  }
1133  case OpType::UpdateCacheOp: {
1134  auto ptr = reinterpret_cast<const tt::target::ttnn::UpdateCacheOp *>(obj);
1135  return verifier.VerifyTable(ptr);
1136  }
1137  case OpType::FromDeviceOp: {
1138  auto ptr = reinterpret_cast<const tt::target::ttnn::FromDeviceOp *>(obj);
1139  return verifier.VerifyTable(ptr);
1140  }
1141  case OpType::ToDeviceOp: {
1142  auto ptr = reinterpret_cast<const tt::target::ttnn::ToDeviceOp *>(obj);
1143  return verifier.VerifyTable(ptr);
1144  }
1145  case OpType::ToDTypeOp: {
1146  auto ptr = reinterpret_cast<const tt::target::ttnn::ToDTypeOp *>(obj);
1147  return verifier.VerifyTable(ptr);
1148  }
1149  case OpType::ToLayoutOp: {
1150  auto ptr = reinterpret_cast<const tt::target::ttnn::ToLayoutOp *>(obj);
1151  return verifier.VerifyTable(ptr);
1152  }
1153  case OpType::ToMemoryConfigOp: {
1154  auto ptr = reinterpret_cast<const tt::target::ttnn::ToMemoryConfigOp *>(obj);
1155  return verifier.VerifyTable(ptr);
1156  }
1157  case OpType::TypecastOp: {
1158  auto ptr = reinterpret_cast<const tt::target::ttnn::TypecastOp *>(obj);
1159  return verifier.VerifyTable(ptr);
1160  }
1161  case OpType::LinearOp: {
1162  auto ptr = reinterpret_cast<const tt::target::ttnn::LinearOp *>(obj);
1163  return verifier.VerifyTable(ptr);
1164  }
1165  case OpType::MatmulOp: {
1166  auto ptr = reinterpret_cast<const tt::target::ttnn::MatmulOp *>(obj);
1167  return verifier.VerifyTable(ptr);
1168  }
1169  case OpType::MorehCumSumOp: {
1170  auto ptr = reinterpret_cast<const tt::target::ttnn::MorehCumSumOp *>(obj);
1171  return verifier.VerifyTable(ptr);
1172  }
1173  case OpType::SoftmaxOp: {
1174  auto ptr = reinterpret_cast<const tt::target::ttnn::SoftmaxOp *>(obj);
1175  return verifier.VerifyTable(ptr);
1176  }
1177  case OpType::Pool2dOp: {
1178  auto ptr = reinterpret_cast<const tt::target::ttnn::Pool2dOp *>(obj);
1179  return verifier.VerifyTable(ptr);
1180  }
1181  case OpType::UpsampleOp: {
1182  auto ptr = reinterpret_cast<const tt::target::ttnn::UpsampleOp *>(obj);
1183  return verifier.VerifyTable(ptr);
1184  }
1186  auto ptr = reinterpret_cast<const tt::target::ttnn::ReductionArgMaxOp *>(obj);
1187  return verifier.VerifyTable(ptr);
1188  }
1189  case OpType::ReductionOp: {
1190  auto ptr = reinterpret_cast<const tt::target::ttnn::ReductionOp *>(obj);
1191  return verifier.VerifyTable(ptr);
1192  }
1193  case OpType::ReductionProdOp: {
1194  auto ptr = reinterpret_cast<const tt::target::ttnn::ReductionProdOp *>(obj);
1195  return verifier.VerifyTable(ptr);
1196  }
1197  case OpType::LoadCachedOp: {
1198  auto ptr = reinterpret_cast<const tt::target::ttnn::LoadCachedOp *>(obj);
1199  return verifier.VerifyTable(ptr);
1200  }
1201  default: return true;
1202  }
1203 }
1204 
1205 inline bool VerifyOpTypeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<OpType> *types) {
1206  if (!values || !types) return !values && !types;
1207  if (values->size() != types->size()) return false;
1208  for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
1209  if (!VerifyOpType(
1210  verifier, values->Get(i), types->GetEnum<OpType>(i))) {
1211  return false;
1212  }
1213  }
1214  return true;
1215 }
1216 
1217 } // namespace ttnn
1218 } // namespace target
1219 } // namespace tt
1220 
1221 #endif // FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_TTNN_H_
VT_TYPE_TYPE
Definition: program_generated.h:1061
VT_TYPE
Definition: program_generated.h:1062
VT_DYLIBS
Definition: program_generated.h:878
VT_DEBUG_INFO
Definition: program_generated.h:433
VT_INPUTS
Definition: program_generated.h:875
VT_OUTPUTS
Definition: program_generated.h:876
VT_NAME
Definition: program_generated.h:874
VT_OPERATIONS
Definition: program_generated.h:877
bool VerifyOpTypeVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset< void >> *values, const ::flatbuffers::Vector< OpType > *types)
Definition: program_generated.h:1205
OpType
Definition: program_generated.h:47
inline ::flatbuffers::Offset< Program > CreateProgram(::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String > name=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> inputs=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> outputs=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::Operation >>> operations=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::DynamicLib >>> dylibs=0, ::flatbuffers::Offset< tt::target::DebugInfo > debug_info=0)
Definition: program_generated.h:954
const char *const * EnumNamesOpType()
Definition: program_generated.h:158
const char * EnumNameOpType(OpType e)
Definition: program_generated.h:215
bool VerifyOpType(::flatbuffers::Verifier &verifier, const void *obj, OpType type)
Definition: program_generated.h:1000
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:832
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:977
const OpType(& EnumValuesOpType())[50]
Definition: program_generated.h:102
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:851
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:500
const ::flatbuffers::String * name() const
Definition: program_generated.h:881
const tt::target::ttnn::SoftmaxOp * type_as_SoftmaxOp() const
Definition: program_generated.h:569
const tt::target::ttnn::CpuOp * type_as_CpuOp() const
Definition: program_generated.h:467
const tt::target::ttnn::ReductionOp * type_as_ReductionOp() const
Definition: program_generated.h:581
const tt::target::ttnn::EmbeddingOp * type_as_EmbeddingOp() const
Definition: program_generated.h:533
const tt::target::ttnn::ConcatOp * type_as_ConcatOp() const
Definition: program_generated.h:485
const void * type() const
Definition: program_generated.h:439
ProgramBuilder Builder
Definition: program_generated.h:868
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::DynamicLib > > * dylibs() const
Definition: program_generated.h:893
const tt::target::ttnn::EmptyOp * type_as_EmptyOp() const
Definition: program_generated.h:476
const tt::target::ttnn::PrepareConv2dWeightsOp * type_as_PrepareConv2dWeightsOp() const
Definition: program_generated.h:458
const ::flatbuffers::String * debug_info() const
Definition: program_generated.h:590
const tt::target::ttnn::SliceOp * type_as_SliceOp() const
Definition: program_generated.h:503
const tt::target::ttnn::DeallocateOp * type_as_DeallocateOp() const
Definition: program_generated.h:509
const tt::target::ttnn::Pool2dOp * type_as_Pool2dOp() const
Definition: program_generated.h:572
const tt::target::ttnn::RepeatOp * type_as_RepeatOp() const
Definition: program_generated.h:497
const tt::target::ttnn::PadOp * type_as_PadOp() const
Definition: program_generated.h:488
const tt::target::ttnn::MeshShardOp * type_as_MeshShardOp() const
Definition: program_generated.h:449
const tt::target::ttnn::ToMemoryConfigOp * type_as_ToMemoryConfigOp() const
Definition: program_generated.h:554
const tt::target::ttnn::CollectivePermuteOp * type_as_CollectivePermuteOp() const
Definition: program_generated.h:446
const tt::target::ttnn::EmbeddingBackwardOp * type_as_EmbeddingBackwardOp() const
Definition: program_generated.h:530
const tt::target::ttnn::ToLayoutOp * type_as_ToLayoutOp() const
Definition: program_generated.h:551
const tt::target::ttnn::ArangeOp * type_as_ArangeOp() const
Definition: program_generated.h:470
const tt::target::ttnn::UpsampleOp * type_as_UpsampleOp() const
Definition: program_generated.h:575
const tt::target::ttnn::FromDeviceOp * type_as_FromDeviceOp() const
Definition: program_generated.h:542
const ::flatbuffers::String * loc_info() const
Definition: program_generated.h:593
const tt::target::ttnn::TransposeOp * type_as_TransposeOp() const
Definition: program_generated.h:506
const tt::target::ttnn::FullOp * type_as_FullOp() const
Definition: program_generated.h:479
const tt::target::ttnn::RepeatInterleaveOp * type_as_RepeatInterleaveOp() const
Definition: program_generated.h:494
const tt::target::ttnn::EltwiseUnaryCompositeOp * type_as_EltwiseUnaryCompositeOp() const
Definition: program_generated.h:527
const tt::target::ttnn::LinearOp * type_as_LinearOp() const
Definition: program_generated.h:560
const tt::target::ttnn::TypecastOp * type_as_TypecastOp() const
Definition: program_generated.h:557
tt::target::ttnn::OpType type_type() const
Definition: program_generated.h:436
const tt::target::ttnn::MatmulOp * type_as_MatmulOp() const
Definition: program_generated.h:563
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::Operation > > * operations() const
Definition: program_generated.h:890
bool Verify(::flatbuffers::Verifier &verifier) const
Definition: program_generated.h:596
const tt::target::ttnn::LoadCachedOp * type_as_LoadCachedOp() const
Definition: program_generated.h:587
const tt::target::ttnn::AllGatherOp * type_as_AllGatherOp() const
Definition: program_generated.h:443
const tt::target::ttnn::Conv2dOp * type_as_Conv2dOp() const
Definition: program_generated.h:461
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef > > * outputs() const
Definition: program_generated.h:887
const tt::target::ttnn::PermuteOp * type_as_PermuteOp() const
Definition: program_generated.h:491
const tt::target::ttnn::ToDTypeOp * type_as_ToDTypeOp() const
Definition: program_generated.h:548
OperationBuilder Builder
Definition: program_generated.h:425
const tt::target::ttnn::FillCacheOp * type_as_FillCacheOp() const
Definition: program_generated.h:536
const tt::target::ttnn::NamedFullOp * type_as_NamedFullOp() const
Definition: program_generated.h:482
const tt::target::ttnn::EltwiseBinaryCompositeOp * type_as_EltwiseBinaryCompositeOp() const
Definition: program_generated.h:515
const tt::target::ttnn::EltwiseQuantizationOp * type_as_EltwiseQuantizationOp() const
Definition: program_generated.h:521
const tt::target::ttnn::EltwiseTernaryWhereOp * type_as_EltwiseTernaryWhereOp() const
Definition: program_generated.h:518
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef > > * inputs() const
Definition: program_generated.h:884
const tt::target::ttnn::MorehCumSumOp * type_as_MorehCumSumOp() const
Definition: program_generated.h:566
const tt::target::DebugInfo * debug_info() const
Definition: program_generated.h:896
const tt::target::ttnn::ReductionProdOp * type_as_ReductionProdOp() const
Definition: program_generated.h:584
const tt::target::ttnn::EltwiseBinaryOp * type_as_EltwiseBinaryOp() const
Definition: program_generated.h:512
const tt::target::ttnn::ReductionArgMaxOp * type_as_ReductionArgMaxOp() const
Definition: program_generated.h:578
const tt::target::ttnn::ConvTranspose2dOp * type_as_ConvTranspose2dOp() const
Definition: program_generated.h:464
static FLATBUFFERS_CONSTEXPR_CPP11 const char * GetFullyQualifiedName()
Definition: program_generated.h:427
const tt::target::ttnn::EltwiseUnaryOp * type_as_EltwiseUnaryOp() const
Definition: program_generated.h:524
const tt::target::ttnn::ConstantOp * type_as_ConstantOp() const
Definition: program_generated.h:473
const tt::target::ttnn::ToDeviceOp * type_as_ToDeviceOp() const
Definition: program_generated.h:545
const tt::target::ttnn::ReduceScatterOp * type_as_ReduceScatterOp() const
Definition: program_generated.h:452
const tt::target::ttnn::UpdateCacheOp * type_as_UpdateCacheOp() const
Definition: program_generated.h:539
const tt::target::ttnn::GetDeviceOp * type_as_GetDeviceOp() const
Definition: program_generated.h:455
Definition: program_generated.h:221
static const OpType enum_value
Definition: program_generated.h:222
Definition: program_generated.h:805
void add_type(::flatbuffers::Offset< void > type)
Definition: program_generated.h:812
OperationBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:821
::flatbuffers::Offset< Operation > Finish()
Definition: program_generated.h:825
Operation Table
Definition: program_generated.h:806
void add_debug_info(::flatbuffers::Offset<::flatbuffers::String > debug_info)
Definition: program_generated.h:815
void add_loc_info(::flatbuffers::Offset<::flatbuffers::String > loc_info)
Definition: program_generated.h:818
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:807
::flatbuffers::uoffset_t start_
Definition: program_generated.h:808
void add_type_type(tt::target::ttnn::OpType type_type)
Definition: program_generated.h:809
Definition: program_generated.h:846
static constexpr auto Create
Definition: program_generated.h:848
Operation type
Definition: program_generated.h:847
Definition: program_generated.h:921
Program Table
Definition: program_generated.h:922
::flatbuffers::uoffset_t start_
Definition: program_generated.h:924
void add_name(::flatbuffers::Offset<::flatbuffers::String > name)
Definition: program_generated.h:925
void add_debug_info(::flatbuffers::Offset< tt::target::DebugInfo > debug_info)
Definition: program_generated.h:940
void add_dylibs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::DynamicLib >>> dylibs)
Definition: program_generated.h:937
void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> outputs)
Definition: program_generated.h:931
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:923
void add_inputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::TensorRef >>> inputs)
Definition: program_generated.h:928
::flatbuffers::Offset< Program > Finish()
Definition: program_generated.h:947
ProgramBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:943
void add_operations(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::ttnn::Operation >>> operations)
Definition: program_generated.h:934
Definition: program_generated.h:972
static constexpr auto Create
Definition: program_generated.h:974
Program type
Definition: program_generated.h:973