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_METAL_H_
5 #define FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_METAL_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 
16 #include "types_generated.h"
17 
18 namespace tt {
19 namespace target {
20 namespace metal {
21 
22 struct NocConfig;
23 struct NocConfigBuilder;
24 
25 struct TensixConfig;
26 struct TensixConfigBuilder;
27 
28 struct EthernetConfig;
29 struct EthernetConfigBuilder;
30 
31 struct KernelSource;
32 struct KernelSourceBuilder;
33 
34 struct KernelBinary;
35 struct KernelBinaryBuilder;
36 
38 struct RuntimeArgTensorAddressBuilder;
39 
41 struct RuntimeArgSemaphoreAddressBuilder;
42 
43 struct KernelDesc;
44 struct KernelDescBuilder;
45 
46 struct ProgramDesc;
47 struct ProgramDescBuilder;
48 
49 enum class NocIndex : uint16_t {
50  Noc0 = 0,
51  Noc1 = 1,
52  MIN = Noc0,
53  MAX = Noc1
54 };
55 
56 inline const NocIndex (&EnumValuesNocIndex())[2] {
57  static const NocIndex values[] = {
60  };
61  return values;
62 }
63 
64 inline const char * const *EnumNamesNocIndex() {
65  static const char * const names[3] = {
66  "Noc0",
67  "Noc1",
68  nullptr
69  };
70  return names;
71 }
72 
73 inline const char *EnumNameNocIndex(NocIndex e) {
74  if (::flatbuffers::IsOutRange(e, NocIndex::Noc0, NocIndex::Noc1)) return "";
75  const size_t index = static_cast<size_t>(e);
76  return EnumNamesNocIndex()[index];
77 }
78 
79 enum class EthType : uint16_t {
80  Sender = 0,
81  Receiver = 1,
82  MIN = Sender,
83  MAX = Receiver
84 };
85 
86 inline const EthType (&EnumValuesEthType())[2] {
87  static const EthType values[] = {
90  };
91  return values;
92 }
93 
94 inline const char * const *EnumNamesEthType() {
95  static const char * const names[3] = {
96  "Sender",
97  "Receiver",
98  nullptr
99  };
100  return names;
101 }
102 
103 inline const char *EnumNameEthType(EthType e) {
104  if (::flatbuffers::IsOutRange(e, EthType::Sender, EthType::Receiver)) return "";
105  const size_t index = static_cast<size_t>(e);
106  return EnumNamesEthType()[index];
107 }
108 
109 enum class KernelConfig : uint8_t {
110  NONE = 0,
111  NocConfig = 1,
112  TensixConfig = 2,
113  EthernetConfig = 3,
114  MIN = NONE,
116 };
117 
118 inline const KernelConfig (&EnumValuesKernelConfig())[4] {
119  static const KernelConfig values[] = {
124  };
125  return values;
126 }
127 
128 inline const char * const *EnumNamesKernelConfig() {
129  static const char * const names[5] = {
130  "NONE",
131  "NocConfig",
132  "TensixConfig",
133  "EthernetConfig",
134  nullptr
135  };
136  return names;
137 }
138 
139 inline const char *EnumNameKernelConfig(KernelConfig e) {
140  if (::flatbuffers::IsOutRange(e, KernelConfig::NONE, KernelConfig::EthernetConfig)) return "";
141  const size_t index = static_cast<size_t>(e);
142  return EnumNamesKernelConfig()[index];
143 }
144 
145 template<typename T> struct KernelConfigTraits {
147 };
148 
149 template<> struct KernelConfigTraits<tt::target::metal::NocConfig> {
151 };
152 
153 template<> struct KernelConfigTraits<tt::target::metal::TensixConfig> {
155 };
156 
157 template<> struct KernelConfigTraits<tt::target::metal::EthernetConfig> {
159 };
160 
161 bool VerifyKernelConfig(::flatbuffers::Verifier &verifier, const void *obj, KernelConfig type);
162 bool VerifyKernelConfigVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<KernelConfig> *types);
163 
164 enum class BinaryType : uint16_t {
165  BRISC = 0,
166  NCRISC = 1,
167  TRISC0 = 2,
168  TRISC1 = 3,
169  TRISC2 = 4,
170  ERISC = 5,
171  MIN = BRISC,
172  MAX = ERISC
173 };
174 
175 inline const BinaryType (&EnumValuesBinaryType())[6] {
176  static const BinaryType values[] = {
183  };
184  return values;
185 }
186 
187 inline const char * const *EnumNamesBinaryType() {
188  static const char * const names[7] = {
189  "BRISC",
190  "NCRISC",
191  "TRISC0",
192  "TRISC1",
193  "TRISC2",
194  "ERISC",
195  nullptr
196  };
197  return names;
198 }
199 
200 inline const char *EnumNameBinaryType(BinaryType e) {
201  if (::flatbuffers::IsOutRange(e, BinaryType::BRISC, BinaryType::ERISC)) return "";
202  const size_t index = static_cast<size_t>(e);
203  return EnumNamesBinaryType()[index];
204 }
205 
206 enum class CoreType : uint16_t {
207  WORKER = 0,
208  ETH = 1,
209  MIN = WORKER,
210  MAX = ETH
211 };
212 
213 inline const CoreType (&EnumValuesCoreType())[2] {
214  static const CoreType values[] = {
217  };
218  return values;
219 }
220 
221 inline const char * const *EnumNamesCoreType() {
222  static const char * const names[3] = {
223  "WORKER",
224  "ETH",
225  nullptr
226  };
227  return names;
228 }
229 
230 inline const char *EnumNameCoreType(CoreType e) {
231  if (::flatbuffers::IsOutRange(e, CoreType::WORKER, CoreType::ETH)) return "";
232  const size_t index = static_cast<size_t>(e);
233  return EnumNamesCoreType()[index];
234 }
235 
236 enum class Kernel : uint8_t {
237  NONE = 0,
238  KernelSource = 1,
239  KernelBinary = 2,
240  MIN = NONE,
241  MAX = KernelBinary
242 };
243 
244 inline const Kernel (&EnumValuesKernel())[3] {
245  static const Kernel values[] = {
246  Kernel::NONE,
249  };
250  return values;
251 }
252 
253 inline const char * const *EnumNamesKernel() {
254  static const char * const names[4] = {
255  "NONE",
256  "KernelSource",
257  "KernelBinary",
258  nullptr
259  };
260  return names;
261 }
262 
263 inline const char *EnumNameKernel(Kernel e) {
264  if (::flatbuffers::IsOutRange(e, Kernel::NONE, Kernel::KernelBinary)) return "";
265  const size_t index = static_cast<size_t>(e);
266  return EnumNamesKernel()[index];
267 }
268 
269 template<typename T> struct KernelTraits {
271 };
272 
273 template<> struct KernelTraits<tt::target::metal::KernelSource> {
275 };
276 
277 template<> struct KernelTraits<tt::target::metal::KernelBinary> {
279 };
280 
281 bool VerifyKernel(::flatbuffers::Verifier &verifier, const void *obj, Kernel type);
282 bool VerifyKernelVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<Kernel> *types);
283 
284 enum class RuntimeArg : uint8_t {
285  NONE = 0,
288  MIN = NONE,
290 };
291 
292 inline const RuntimeArg (&EnumValuesRuntimeArg())[3] {
293  static const RuntimeArg values[] = {
297  };
298  return values;
299 }
300 
301 inline const char * const *EnumNamesRuntimeArg() {
302  static const char * const names[4] = {
303  "NONE",
304  "RuntimeArgTensorAddress",
305  "RuntimeArgSemaphoreAddress",
306  nullptr
307  };
308  return names;
309 }
310 
311 inline const char *EnumNameRuntimeArg(RuntimeArg e) {
312  if (::flatbuffers::IsOutRange(e, RuntimeArg::NONE, RuntimeArg::RuntimeArgSemaphoreAddress)) return "";
313  const size_t index = static_cast<size_t>(e);
314  return EnumNamesRuntimeArg()[index];
315 }
316 
317 template<typename T> struct RuntimeArgTraits {
319 };
320 
321 template<> struct RuntimeArgTraits<tt::target::metal::RuntimeArgTensorAddress> {
323 };
324 
325 template<> struct RuntimeArgTraits<tt::target::metal::RuntimeArgSemaphoreAddress> {
327 };
328 
329 bool VerifyRuntimeArg(::flatbuffers::Verifier &verifier, const void *obj, RuntimeArg type);
330 bool VerifyRuntimeArgVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<RuntimeArg> *types);
331 
332 struct NocConfig FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
334  struct Traits;
335  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
336  VT_NOC_INDEX = 4
337  };
339  return static_cast<tt::target::metal::NocIndex>(GetField<uint16_t>(VT_NOC_INDEX, 0));
340  }
341  bool Verify(::flatbuffers::Verifier &verifier) const {
342  return VerifyTableStart(verifier) &&
343  VerifyField<uint16_t>(verifier, VT_NOC_INDEX, 2) &&
344  verifier.EndTable();
345  }
346 };
347 
349  typedef NocConfig Table;
350  ::flatbuffers::FlatBufferBuilder &fbb_;
351  ::flatbuffers::uoffset_t start_;
353  fbb_.AddElement<uint16_t>(NocConfig::VT_NOC_INDEX, static_cast<uint16_t>(noc_index), 0);
354  }
355  explicit NocConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
356  : fbb_(_fbb) {
357  start_ = fbb_.StartTable();
358  }
359  ::flatbuffers::Offset<NocConfig> Finish() {
360  const auto end = fbb_.EndTable(start_);
361  auto o = ::flatbuffers::Offset<NocConfig>(end);
362  return o;
363  }
364 };
365 
366 inline ::flatbuffers::Offset<NocConfig> CreateNocConfig(
367  ::flatbuffers::FlatBufferBuilder &_fbb,
369  NocConfigBuilder builder_(_fbb);
370  builder_.add_noc_index(noc_index);
371  return builder_.Finish();
372 }
373 
375  using type = NocConfig;
376  static auto constexpr Create = CreateNocConfig;
377 };
378 
379 struct TensixConfig FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
381  struct Traits;
382  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
386  VT_MATH_APPROX_MODE = 10
387  };
389  return static_cast<tt::target::MathFidelity>(GetField<uint8_t>(VT_MATH_FIDELITY, 0));
390  }
391  bool fp32_dest_acc_en() const {
392  return GetField<uint8_t>(VT_FP32_DEST_ACC_EN, 0) != 0;
393  }
394  bool preserve_fp32_precision() const {
395  return GetField<uint8_t>(VT_PRESERVE_FP32_PRECISION, 0) != 0;
396  }
397  bool math_approx_mode() const {
398  return GetField<uint8_t>(VT_MATH_APPROX_MODE, 0) != 0;
399  }
400  bool Verify(::flatbuffers::Verifier &verifier) const {
401  return VerifyTableStart(verifier) &&
402  VerifyField<uint8_t>(verifier, VT_MATH_FIDELITY, 1) &&
403  VerifyField<uint8_t>(verifier, VT_FP32_DEST_ACC_EN, 1) &&
404  VerifyField<uint8_t>(verifier, VT_PRESERVE_FP32_PRECISION, 1) &&
405  VerifyField<uint8_t>(verifier, VT_MATH_APPROX_MODE, 1) &&
406  verifier.EndTable();
407  }
408 };
409 
412  ::flatbuffers::FlatBufferBuilder &fbb_;
413  ::flatbuffers::uoffset_t start_;
415  fbb_.AddElement<uint8_t>(TensixConfig::VT_MATH_FIDELITY, static_cast<uint8_t>(math_fidelity), 0);
416  }
417  void add_fp32_dest_acc_en(bool fp32_dest_acc_en) {
418  fbb_.AddElement<uint8_t>(TensixConfig::VT_FP32_DEST_ACC_EN, static_cast<uint8_t>(fp32_dest_acc_en), 0);
419  }
420  void add_preserve_fp32_precision(bool preserve_fp32_precision) {
421  fbb_.AddElement<uint8_t>(TensixConfig::VT_PRESERVE_FP32_PRECISION, static_cast<uint8_t>(preserve_fp32_precision), 0);
422  }
423  void add_math_approx_mode(bool math_approx_mode) {
424  fbb_.AddElement<uint8_t>(TensixConfig::VT_MATH_APPROX_MODE, static_cast<uint8_t>(math_approx_mode), 0);
425  }
426  explicit TensixConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
427  : fbb_(_fbb) {
428  start_ = fbb_.StartTable();
429  }
430  ::flatbuffers::Offset<TensixConfig> Finish() {
431  const auto end = fbb_.EndTable(start_);
432  auto o = ::flatbuffers::Offset<TensixConfig>(end);
433  return o;
434  }
435 };
436 
437 inline ::flatbuffers::Offset<TensixConfig> CreateTensixConfig(
438  ::flatbuffers::FlatBufferBuilder &_fbb,
440  bool fp32_dest_acc_en = false,
441  bool preserve_fp32_precision = false,
442  bool math_approx_mode = false) {
443  TensixConfigBuilder builder_(_fbb);
444  builder_.add_math_approx_mode(math_approx_mode);
445  builder_.add_preserve_fp32_precision(preserve_fp32_precision);
446  builder_.add_fp32_dest_acc_en(fp32_dest_acc_en);
447  builder_.add_math_fidelity(math_fidelity);
448  return builder_.Finish();
449 }
450 
453  static auto constexpr Create = CreateTensixConfig;
454 };
455 
456 struct EthernetConfig FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
458  struct Traits;
459  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
461  VT_NOC_INDEX = 6
462  };
464  return static_cast<tt::target::metal::EthType>(GetField<uint16_t>(VT_ETH_TYPE, 0));
465  }
467  return static_cast<tt::target::metal::NocIndex>(GetField<uint16_t>(VT_NOC_INDEX, 0));
468  }
469  bool Verify(::flatbuffers::Verifier &verifier) const {
470  return VerifyTableStart(verifier) &&
471  VerifyField<uint16_t>(verifier, VT_ETH_TYPE, 2) &&
472  VerifyField<uint16_t>(verifier, VT_NOC_INDEX, 2) &&
473  verifier.EndTable();
474  }
475 };
476 
479  ::flatbuffers::FlatBufferBuilder &fbb_;
480  ::flatbuffers::uoffset_t start_;
482  fbb_.AddElement<uint16_t>(EthernetConfig::VT_ETH_TYPE, static_cast<uint16_t>(eth_type), 0);
483  }
485  fbb_.AddElement<uint16_t>(EthernetConfig::VT_NOC_INDEX, static_cast<uint16_t>(noc_index), 0);
486  }
487  explicit EthernetConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
488  : fbb_(_fbb) {
489  start_ = fbb_.StartTable();
490  }
491  ::flatbuffers::Offset<EthernetConfig> Finish() {
492  const auto end = fbb_.EndTable(start_);
493  auto o = ::flatbuffers::Offset<EthernetConfig>(end);
494  return o;
495  }
496 };
497 
498 inline ::flatbuffers::Offset<EthernetConfig> CreateEthernetConfig(
499  ::flatbuffers::FlatBufferBuilder &_fbb,
502  EthernetConfigBuilder builder_(_fbb);
503  builder_.add_noc_index(noc_index);
504  builder_.add_eth_type(eth_type);
505  return builder_.Finish();
506 }
507 
510  static auto constexpr Create = CreateEthernetConfig;
511 };
512 
513 struct KernelSource FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
515  struct Traits;
516  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
519  VT_CONFIG = 8
520  };
521  const ::flatbuffers::String *source() const {
522  return GetPointer<const ::flatbuffers::String *>(VT_SOURCE);
523  }
525  return static_cast<tt::target::metal::KernelConfig>(GetField<uint8_t>(VT_CONFIG_TYPE, 0));
526  }
527  const void *config() const {
528  return GetPointer<const void *>(VT_CONFIG);
529  }
530  template<typename T> const T *config_as() const;
531  const tt::target::metal::NocConfig *config_as_NocConfig() const {
532  return config_type() == tt::target::metal::KernelConfig::NocConfig ? static_cast<const tt::target::metal::NocConfig *>(config()) : nullptr;
533  }
534  const tt::target::metal::TensixConfig *config_as_TensixConfig() const {
535  return config_type() == tt::target::metal::KernelConfig::TensixConfig ? static_cast<const tt::target::metal::TensixConfig *>(config()) : nullptr;
536  }
537  const tt::target::metal::EthernetConfig *config_as_EthernetConfig() const {
538  return config_type() == tt::target::metal::KernelConfig::EthernetConfig ? static_cast<const tt::target::metal::EthernetConfig *>(config()) : nullptr;
539  }
540  bool Verify(::flatbuffers::Verifier &verifier) const {
541  return VerifyTableStart(verifier) &&
542  VerifyOffset(verifier, VT_SOURCE) &&
543  verifier.VerifyString(source()) &&
544  VerifyField<uint8_t>(verifier, VT_CONFIG_TYPE, 1) &&
545  VerifyOffset(verifier, VT_CONFIG) &&
546  VerifyKernelConfig(verifier, config(), config_type()) &&
547  verifier.EndTable();
548  }
549 };
550 
551 template<> inline const tt::target::metal::NocConfig *KernelSource::config_as<tt::target::metal::NocConfig>() const {
552  return config_as_NocConfig();
553 }
554 
555 template<> inline const tt::target::metal::TensixConfig *KernelSource::config_as<tt::target::metal::TensixConfig>() const {
556  return config_as_TensixConfig();
557 }
558 
559 template<> inline const tt::target::metal::EthernetConfig *KernelSource::config_as<tt::target::metal::EthernetConfig>() const {
560  return config_as_EthernetConfig();
561 }
562 
565  ::flatbuffers::FlatBufferBuilder &fbb_;
566  ::flatbuffers::uoffset_t start_;
567  void add_source(::flatbuffers::Offset<::flatbuffers::String> source) {
568  fbb_.AddOffset(KernelSource::VT_SOURCE, source);
569  }
571  fbb_.AddElement<uint8_t>(KernelSource::VT_CONFIG_TYPE, static_cast<uint8_t>(config_type), 0);
572  }
573  void add_config(::flatbuffers::Offset<void> config) {
574  fbb_.AddOffset(KernelSource::VT_CONFIG, config);
575  }
576  explicit KernelSourceBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
577  : fbb_(_fbb) {
578  start_ = fbb_.StartTable();
579  }
580  ::flatbuffers::Offset<KernelSource> Finish() {
581  const auto end = fbb_.EndTable(start_);
582  auto o = ::flatbuffers::Offset<KernelSource>(end);
583  return o;
584  }
585 };
586 
587 inline ::flatbuffers::Offset<KernelSource> CreateKernelSource(
588  ::flatbuffers::FlatBufferBuilder &_fbb,
589  ::flatbuffers::Offset<::flatbuffers::String> source = 0,
591  ::flatbuffers::Offset<void> config = 0) {
592  KernelSourceBuilder builder_(_fbb);
593  builder_.add_config(config);
594  builder_.add_source(source);
595  builder_.add_config_type(config_type);
596  return builder_.Finish();
597 }
598 
601  static auto constexpr Create = CreateKernelSource;
602 };
603 
604 inline ::flatbuffers::Offset<KernelSource> CreateKernelSourceDirect(
605  ::flatbuffers::FlatBufferBuilder &_fbb,
606  const char *source = nullptr,
608  ::flatbuffers::Offset<void> config = 0) {
609  auto source__ = source ? _fbb.CreateString(source) : 0;
611  _fbb,
612  source__,
613  config_type,
614  config);
615 }
616 
617 struct KernelBinary FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
619  struct Traits;
620  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
622  VT_DATA = 6,
623  VT_DEBUG_SOURCE = 8
624  };
626  return static_cast<tt::target::metal::BinaryType>(GetField<uint16_t>(VT_CORE_TYPE, 0));
627  }
628  const ::flatbuffers::Vector<uint8_t> *data() const {
629  return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_DATA);
630  }
631  const ::flatbuffers::String *debug_source() const {
632  return GetPointer<const ::flatbuffers::String *>(VT_DEBUG_SOURCE);
633  }
634  bool Verify(::flatbuffers::Verifier &verifier) const {
635  return VerifyTableStart(verifier) &&
636  VerifyField<uint16_t>(verifier, VT_CORE_TYPE, 2) &&
637  VerifyOffset(verifier, VT_DATA) &&
638  verifier.VerifyVector(data()) &&
639  VerifyOffset(verifier, VT_DEBUG_SOURCE) &&
640  verifier.VerifyString(debug_source()) &&
641  verifier.EndTable();
642  }
643 };
644 
647  ::flatbuffers::FlatBufferBuilder &fbb_;
648  ::flatbuffers::uoffset_t start_;
650  fbb_.AddElement<uint16_t>(KernelBinary::VT_CORE_TYPE, static_cast<uint16_t>(core_type), 0);
651  }
652  void add_data(::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> data) {
653  fbb_.AddOffset(KernelBinary::VT_DATA, data);
654  }
655  void add_debug_source(::flatbuffers::Offset<::flatbuffers::String> debug_source) {
656  fbb_.AddOffset(KernelBinary::VT_DEBUG_SOURCE, debug_source);
657  }
658  explicit KernelBinaryBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
659  : fbb_(_fbb) {
660  start_ = fbb_.StartTable();
661  }
662  ::flatbuffers::Offset<KernelBinary> Finish() {
663  const auto end = fbb_.EndTable(start_);
664  auto o = ::flatbuffers::Offset<KernelBinary>(end);
665  return o;
666  }
667 };
668 
669 inline ::flatbuffers::Offset<KernelBinary> CreateKernelBinary(
670  ::flatbuffers::FlatBufferBuilder &_fbb,
672  ::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> data = 0,
673  ::flatbuffers::Offset<::flatbuffers::String> debug_source = 0) {
674  KernelBinaryBuilder builder_(_fbb);
675  builder_.add_debug_source(debug_source);
676  builder_.add_data(data);
677  builder_.add_core_type(core_type);
678  return builder_.Finish();
679 }
680 
683  static auto constexpr Create = CreateKernelBinary;
684 };
685 
686 inline ::flatbuffers::Offset<KernelBinary> CreateKernelBinaryDirect(
687  ::flatbuffers::FlatBufferBuilder &_fbb,
689  const std::vector<uint8_t> *data = nullptr,
690  const char *debug_source = nullptr) {
691  auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
692  auto debug_source__ = debug_source ? _fbb.CreateString(debug_source) : 0;
694  _fbb,
695  core_type,
696  data__,
697  debug_source__);
698 }
699 
700 struct RuntimeArgTensorAddress FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
702  struct Traits;
703  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
704  VT_OPERAND_IDX = 4
705  };
706  uint32_t operand_idx() const {
707  return GetField<uint32_t>(VT_OPERAND_IDX, 0);
708  }
709  bool Verify(::flatbuffers::Verifier &verifier) const {
710  return VerifyTableStart(verifier) &&
711  VerifyField<uint32_t>(verifier, VT_OPERAND_IDX, 4) &&
712  verifier.EndTable();
713  }
714 };
715 
718  ::flatbuffers::FlatBufferBuilder &fbb_;
719  ::flatbuffers::uoffset_t start_;
720  void add_operand_idx(uint32_t operand_idx) {
721  fbb_.AddElement<uint32_t>(RuntimeArgTensorAddress::VT_OPERAND_IDX, operand_idx, 0);
722  }
723  explicit RuntimeArgTensorAddressBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
724  : fbb_(_fbb) {
725  start_ = fbb_.StartTable();
726  }
727  ::flatbuffers::Offset<RuntimeArgTensorAddress> Finish() {
728  const auto end = fbb_.EndTable(start_);
729  auto o = ::flatbuffers::Offset<RuntimeArgTensorAddress>(end);
730  return o;
731  }
732 };
733 
734 inline ::flatbuffers::Offset<RuntimeArgTensorAddress> CreateRuntimeArgTensorAddress(
735  ::flatbuffers::FlatBufferBuilder &_fbb,
736  uint32_t operand_idx = 0) {
737  RuntimeArgTensorAddressBuilder builder_(_fbb);
738  builder_.add_operand_idx(operand_idx);
739  return builder_.Finish();
740 }
741 
744  static auto constexpr Create = CreateRuntimeArgTensorAddress;
745 };
746 
747 struct RuntimeArgSemaphoreAddress FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
749  struct Traits;
750  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
752  VT_CORE_TYPE = 6
753  };
754  uint32_t initial_value() const {
755  return GetField<uint32_t>(VT_INITIAL_VALUE, 0);
756  }
758  return static_cast<tt::target::metal::CoreType>(GetField<uint16_t>(VT_CORE_TYPE, 0));
759  }
760  bool Verify(::flatbuffers::Verifier &verifier) const {
761  return VerifyTableStart(verifier) &&
762  VerifyField<uint32_t>(verifier, VT_INITIAL_VALUE, 4) &&
763  VerifyField<uint16_t>(verifier, VT_CORE_TYPE, 2) &&
764  verifier.EndTable();
765  }
766 };
767 
770  ::flatbuffers::FlatBufferBuilder &fbb_;
771  ::flatbuffers::uoffset_t start_;
772  void add_initial_value(uint32_t initial_value) {
773  fbb_.AddElement<uint32_t>(RuntimeArgSemaphoreAddress::VT_INITIAL_VALUE, initial_value, 0);
774  }
776  fbb_.AddElement<uint16_t>(RuntimeArgSemaphoreAddress::VT_CORE_TYPE, static_cast<uint16_t>(core_type), 0);
777  }
778  explicit RuntimeArgSemaphoreAddressBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
779  : fbb_(_fbb) {
780  start_ = fbb_.StartTable();
781  }
782  ::flatbuffers::Offset<RuntimeArgSemaphoreAddress> Finish() {
783  const auto end = fbb_.EndTable(start_);
784  auto o = ::flatbuffers::Offset<RuntimeArgSemaphoreAddress>(end);
785  return o;
786  }
787 };
788 
789 inline ::flatbuffers::Offset<RuntimeArgSemaphoreAddress> CreateRuntimeArgSemaphoreAddress(
790  ::flatbuffers::FlatBufferBuilder &_fbb,
791  uint32_t initial_value = 0,
793  RuntimeArgSemaphoreAddressBuilder builder_(_fbb);
794  builder_.add_initial_value(initial_value);
795  builder_.add_core_type(core_type);
796  return builder_.Finish();
797 }
798 
801  static auto constexpr Create = CreateRuntimeArgSemaphoreAddress;
802 };
803 
804 struct KernelDesc FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
806  struct Traits;
807  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
811  VT_CBS = 10,
814  VT_DEBUG_INFO = 16
815  };
817  return static_cast<tt::target::metal::Kernel>(GetField<uint8_t>(VT_KERNEL_TYPE, 0));
818  }
819  const void *kernel() const {
820  return GetPointer<const void *>(VT_KERNEL);
821  }
822  template<typename T> const T *kernel_as() const;
823  const tt::target::metal::KernelSource *kernel_as_KernelSource() const {
824  return kernel_type() == tt::target::metal::Kernel::KernelSource ? static_cast<const tt::target::metal::KernelSource *>(kernel()) : nullptr;
825  }
826  const tt::target::metal::KernelBinary *kernel_as_KernelBinary() const {
827  return kernel_type() == tt::target::metal::Kernel::KernelBinary ? static_cast<const tt::target::metal::KernelBinary *>(kernel()) : nullptr;
828  }
829  const ::flatbuffers::Vector<const tt::target::Dim2dRange *> *core_range_set() const {
830  return GetPointer<const ::flatbuffers::Vector<const tt::target::Dim2dRange *> *>(VT_CORE_RANGE_SET);
831  }
832  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::CBRef>> *cbs() const {
833  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::CBRef>> *>(VT_CBS);
834  }
835  const ::flatbuffers::Vector<tt::target::metal::RuntimeArg> *runtime_args_type() const {
836  return GetPointer<const ::flatbuffers::Vector<tt::target::metal::RuntimeArg> *>(VT_RUNTIME_ARGS_TYPE);
837  }
838  const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *runtime_args() const {
839  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *>(VT_RUNTIME_ARGS);
840  }
841  const ::flatbuffers::String *debug_info() const {
842  return GetPointer<const ::flatbuffers::String *>(VT_DEBUG_INFO);
843  }
844  bool Verify(::flatbuffers::Verifier &verifier) const {
845  return VerifyTableStart(verifier) &&
846  VerifyField<uint8_t>(verifier, VT_KERNEL_TYPE, 1) &&
847  VerifyOffset(verifier, VT_KERNEL) &&
848  VerifyKernel(verifier, kernel(), kernel_type()) &&
849  VerifyOffset(verifier, VT_CORE_RANGE_SET) &&
850  verifier.VerifyVector(core_range_set()) &&
851  VerifyOffset(verifier, VT_CBS) &&
852  verifier.VerifyVector(cbs()) &&
853  verifier.VerifyVectorOfTables(cbs()) &&
854  VerifyOffset(verifier, VT_RUNTIME_ARGS_TYPE) &&
855  verifier.VerifyVector(runtime_args_type()) &&
856  VerifyOffset(verifier, VT_RUNTIME_ARGS) &&
857  verifier.VerifyVector(runtime_args()) &&
858  VerifyRuntimeArgVector(verifier, runtime_args(), runtime_args_type()) &&
859  VerifyOffset(verifier, VT_DEBUG_INFO) &&
860  verifier.VerifyString(debug_info()) &&
861  verifier.EndTable();
862  }
863 };
864 
865 template<> inline const tt::target::metal::KernelSource *KernelDesc::kernel_as<tt::target::metal::KernelSource>() const {
866  return kernel_as_KernelSource();
867 }
868 
869 template<> inline const tt::target::metal::KernelBinary *KernelDesc::kernel_as<tt::target::metal::KernelBinary>() const {
870  return kernel_as_KernelBinary();
871 }
872 
874  typedef KernelDesc Table;
875  ::flatbuffers::FlatBufferBuilder &fbb_;
876  ::flatbuffers::uoffset_t start_;
878  fbb_.AddElement<uint8_t>(KernelDesc::VT_KERNEL_TYPE, static_cast<uint8_t>(kernel_type), 0);
879  }
880  void add_kernel(::flatbuffers::Offset<void> kernel) {
881  fbb_.AddOffset(KernelDesc::VT_KERNEL, kernel);
882  }
883  void add_core_range_set(::flatbuffers::Offset<::flatbuffers::Vector<const tt::target::Dim2dRange *>> core_range_set) {
884  fbb_.AddOffset(KernelDesc::VT_CORE_RANGE_SET, core_range_set);
885  }
886  void add_cbs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::CBRef>>> cbs) {
887  fbb_.AddOffset(KernelDesc::VT_CBS, cbs);
888  }
889  void add_runtime_args_type(::flatbuffers::Offset<::flatbuffers::Vector<tt::target::metal::RuntimeArg>> runtime_args_type) {
890  fbb_.AddOffset(KernelDesc::VT_RUNTIME_ARGS_TYPE, runtime_args_type);
891  }
892  void add_runtime_args(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<void>>> runtime_args) {
893  fbb_.AddOffset(KernelDesc::VT_RUNTIME_ARGS, runtime_args);
894  }
895  void add_debug_info(::flatbuffers::Offset<::flatbuffers::String> debug_info) {
896  fbb_.AddOffset(KernelDesc::VT_DEBUG_INFO, debug_info);
897  }
898  explicit KernelDescBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
899  : fbb_(_fbb) {
900  start_ = fbb_.StartTable();
901  }
902  ::flatbuffers::Offset<KernelDesc> Finish() {
903  const auto end = fbb_.EndTable(start_);
904  auto o = ::flatbuffers::Offset<KernelDesc>(end);
905  return o;
906  }
907 };
908 
909 inline ::flatbuffers::Offset<KernelDesc> CreateKernelDesc(
910  ::flatbuffers::FlatBufferBuilder &_fbb,
912  ::flatbuffers::Offset<void> kernel = 0,
913  ::flatbuffers::Offset<::flatbuffers::Vector<const tt::target::Dim2dRange *>> core_range_set = 0,
914  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::CBRef>>> cbs = 0,
915  ::flatbuffers::Offset<::flatbuffers::Vector<tt::target::metal::RuntimeArg>> runtime_args_type = 0,
916  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<void>>> runtime_args = 0,
917  ::flatbuffers::Offset<::flatbuffers::String> debug_info = 0) {
918  KernelDescBuilder builder_(_fbb);
919  builder_.add_debug_info(debug_info);
920  builder_.add_runtime_args(runtime_args);
921  builder_.add_runtime_args_type(runtime_args_type);
922  builder_.add_cbs(cbs);
923  builder_.add_core_range_set(core_range_set);
924  builder_.add_kernel(kernel);
925  builder_.add_kernel_type(kernel_type);
926  return builder_.Finish();
927 }
928 
930  using type = KernelDesc;
931  static auto constexpr Create = CreateKernelDesc;
932 };
933 
934 inline ::flatbuffers::Offset<KernelDesc> CreateKernelDescDirect(
935  ::flatbuffers::FlatBufferBuilder &_fbb,
937  ::flatbuffers::Offset<void> kernel = 0,
938  const std::vector<tt::target::Dim2dRange> *core_range_set = nullptr,
939  const std::vector<::flatbuffers::Offset<tt::target::CBRef>> *cbs = nullptr,
940  const std::vector<tt::target::metal::RuntimeArg> *runtime_args_type = nullptr,
941  const std::vector<::flatbuffers::Offset<void>> *runtime_args = nullptr,
942  const char *debug_info = nullptr) {
943  auto core_range_set__ = core_range_set ? _fbb.CreateVectorOfStructs<tt::target::Dim2dRange>(*core_range_set) : 0;
944  auto cbs__ = cbs ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::CBRef>>(*cbs) : 0;
945  auto runtime_args_type__ = runtime_args_type ? _fbb.CreateVector<tt::target::metal::RuntimeArg>(*runtime_args_type) : 0;
946  auto runtime_args__ = runtime_args ? _fbb.CreateVector<::flatbuffers::Offset<void>>(*runtime_args) : 0;
947  auto debug_info__ = debug_info ? _fbb.CreateString(debug_info) : 0;
949  _fbb,
950  kernel_type,
951  kernel,
952  core_range_set__,
953  cbs__,
954  runtime_args_type__,
955  runtime_args__,
956  debug_info__);
957 }
958 
959 struct ProgramDesc FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
961  struct Traits;
962  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
963  VT_KERNELS = 4
964  };
965  const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::metal::KernelDesc>> *kernels() const {
966  return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<tt::target::metal::KernelDesc>> *>(VT_KERNELS);
967  }
968  bool Verify(::flatbuffers::Verifier &verifier) const {
969  return VerifyTableStart(verifier) &&
970  VerifyOffset(verifier, VT_KERNELS) &&
971  verifier.VerifyVector(kernels()) &&
972  verifier.VerifyVectorOfTables(kernels()) &&
973  verifier.EndTable();
974  }
975 };
976 
978  typedef ProgramDesc Table;
979  ::flatbuffers::FlatBufferBuilder &fbb_;
980  ::flatbuffers::uoffset_t start_;
981  void add_kernels(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::metal::KernelDesc>>> kernels) {
982  fbb_.AddOffset(ProgramDesc::VT_KERNELS, kernels);
983  }
984  explicit ProgramDescBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
985  : fbb_(_fbb) {
986  start_ = fbb_.StartTable();
987  }
988  ::flatbuffers::Offset<ProgramDesc> Finish() {
989  const auto end = fbb_.EndTable(start_);
990  auto o = ::flatbuffers::Offset<ProgramDesc>(end);
991  return o;
992  }
993 };
994 
995 inline ::flatbuffers::Offset<ProgramDesc> CreateProgramDesc(
996  ::flatbuffers::FlatBufferBuilder &_fbb,
997  ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<tt::target::metal::KernelDesc>>> kernels = 0) {
998  ProgramDescBuilder builder_(_fbb);
999  builder_.add_kernels(kernels);
1000  return builder_.Finish();
1001 }
1002 
1004  using type = ProgramDesc;
1005  static auto constexpr Create = CreateProgramDesc;
1006 };
1007 
1008 inline ::flatbuffers::Offset<ProgramDesc> CreateProgramDescDirect(
1009  ::flatbuffers::FlatBufferBuilder &_fbb,
1010  const std::vector<::flatbuffers::Offset<tt::target::metal::KernelDesc>> *kernels = nullptr) {
1011  auto kernels__ = kernels ? _fbb.CreateVector<::flatbuffers::Offset<tt::target::metal::KernelDesc>>(*kernels) : 0;
1013  _fbb,
1014  kernels__);
1015 }
1016 
1017 inline bool VerifyKernelConfig(::flatbuffers::Verifier &verifier, const void *obj, KernelConfig type) {
1018  switch (type) {
1019  case KernelConfig::NONE: {
1020  return true;
1021  }
1022  case KernelConfig::NocConfig: {
1023  auto ptr = reinterpret_cast<const tt::target::metal::NocConfig *>(obj);
1024  return verifier.VerifyTable(ptr);
1025  }
1027  auto ptr = reinterpret_cast<const tt::target::metal::TensixConfig *>(obj);
1028  return verifier.VerifyTable(ptr);
1029  }
1031  auto ptr = reinterpret_cast<const tt::target::metal::EthernetConfig *>(obj);
1032  return verifier.VerifyTable(ptr);
1033  }
1034  default: return true;
1035  }
1036 }
1037 
1038 inline bool VerifyKernelConfigVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<KernelConfig> *types) {
1039  if (!values || !types) return !values && !types;
1040  if (values->size() != types->size()) return false;
1041  for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
1042  if (!VerifyKernelConfig(
1043  verifier, values->Get(i), types->GetEnum<KernelConfig>(i))) {
1044  return false;
1045  }
1046  }
1047  return true;
1048 }
1049 
1050 inline bool VerifyKernel(::flatbuffers::Verifier &verifier, const void *obj, Kernel type) {
1051  switch (type) {
1052  case Kernel::NONE: {
1053  return true;
1054  }
1055  case Kernel::KernelSource: {
1056  auto ptr = reinterpret_cast<const tt::target::metal::KernelSource *>(obj);
1057  return verifier.VerifyTable(ptr);
1058  }
1059  case Kernel::KernelBinary: {
1060  auto ptr = reinterpret_cast<const tt::target::metal::KernelBinary *>(obj);
1061  return verifier.VerifyTable(ptr);
1062  }
1063  default: return true;
1064  }
1065 }
1066 
1067 inline bool VerifyKernelVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<Kernel> *types) {
1068  if (!values || !types) return !values && !types;
1069  if (values->size() != types->size()) return false;
1070  for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
1071  if (!VerifyKernel(
1072  verifier, values->Get(i), types->GetEnum<Kernel>(i))) {
1073  return false;
1074  }
1075  }
1076  return true;
1077 }
1078 
1079 inline bool VerifyRuntimeArg(::flatbuffers::Verifier &verifier, const void *obj, RuntimeArg type) {
1080  switch (type) {
1081  case RuntimeArg::NONE: {
1082  return true;
1083  }
1085  auto ptr = reinterpret_cast<const tt::target::metal::RuntimeArgTensorAddress *>(obj);
1086  return verifier.VerifyTable(ptr);
1087  }
1089  auto ptr = reinterpret_cast<const tt::target::metal::RuntimeArgSemaphoreAddress *>(obj);
1090  return verifier.VerifyTable(ptr);
1091  }
1092  default: return true;
1093  }
1094 }
1095 
1096 inline bool VerifyRuntimeArgVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<RuntimeArg> *types) {
1097  if (!values || !types) return !values && !types;
1098  if (values->size() != types->size()) return false;
1099  for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
1100  if (!VerifyRuntimeArg(
1101  verifier, values->Get(i), types->GetEnum<RuntimeArg>(i))) {
1102  return false;
1103  }
1104  }
1105  return true;
1106 }
1107 
1108 } // namespace metal
1109 } // namespace target
1110 } // namespace tt
1111 
1112 #endif // FLATBUFFERS_GENERATED_PROGRAM_TT_TARGET_METAL_H_
VT_DATA
Definition: program_generated.h:622
VT_MATH_FIDELITY
Definition: program_generated.h:383
VT_CORE_TYPE
Definition: program_generated.h:621
VT_CONFIG_TYPE
Definition: program_generated.h:518
VT_ETH_TYPE
Definition: program_generated.h:460
VT_CBS
Definition: program_generated.h:811
VT_CORE_RANGE_SET
Definition: program_generated.h:810
VT_PRESERVE_FP32_PRECISION
Definition: program_generated.h:385
VT_RUNTIME_ARGS_TYPE
Definition: program_generated.h:812
VT_KERNEL
Definition: program_generated.h:809
VT_FP32_DEST_ACC_EN
Definition: program_generated.h:384
VT_RUNTIME_ARGS
Definition: program_generated.h:813
VT_SOURCE
Definition: program_generated.h:517
VT_KERNEL_TYPE
Definition: program_generated.h:808
VT_INITIAL_VALUE
Definition: program_generated.h:751
Kernel
Definition: program_generated.h:236
const char *const * EnumNamesKernel()
Definition: program_generated.h:253
const char * EnumNameNocIndex(NocIndex e)
Definition: program_generated.h:73
const char *const * EnumNamesKernelConfig()
Definition: program_generated.h:128
inline ::flatbuffers::Offset< ProgramDesc > CreateProgramDescDirect(::flatbuffers::FlatBufferBuilder &_fbb, const std::vector<::flatbuffers::Offset< tt::target::metal::KernelDesc >> *kernels=nullptr)
Definition: program_generated.h:1008
RuntimeArg
Definition: program_generated.h:284
bool VerifyKernelConfig(::flatbuffers::Verifier &verifier, const void *obj, KernelConfig type)
Definition: program_generated.h:1017
inline ::flatbuffers::Offset< KernelBinary > CreateKernelBinary(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::metal::BinaryType core_type=tt::target::metal::BinaryType::BRISC, ::flatbuffers::Offset<::flatbuffers::Vector< uint8_t >> data=0, ::flatbuffers::Offset<::flatbuffers::String > debug_source=0)
Definition: program_generated.h:669
inline ::flatbuffers::Offset< RuntimeArgSemaphoreAddress > CreateRuntimeArgSemaphoreAddress(::flatbuffers::FlatBufferBuilder &_fbb, uint32_t initial_value=0, tt::target::metal::CoreType core_type=tt::target::metal::CoreType::WORKER)
Definition: program_generated.h:789
BinaryType
Definition: program_generated.h:164
const NocIndex(& EnumValuesNocIndex())[2]
Definition: program_generated.h:56
const char *const * EnumNamesNocIndex()
Definition: program_generated.h:64
bool VerifyKernelVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset< void >> *values, const ::flatbuffers::Vector< Kernel > *types)
Definition: program_generated.h:1067
const char * EnumNameRuntimeArg(RuntimeArg e)
Definition: program_generated.h:311
EthType
Definition: program_generated.h:79
const char * EnumNameEthType(EthType e)
Definition: program_generated.h:103
const BinaryType(& EnumValuesBinaryType())[6]
Definition: program_generated.h:175
const RuntimeArg(& EnumValuesRuntimeArg())[3]
Definition: program_generated.h:292
inline ::flatbuffers::Offset< NocConfig > CreateNocConfig(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::metal::NocIndex noc_index=tt::target::metal::NocIndex::Noc0)
Definition: program_generated.h:366
KernelConfig
Definition: program_generated.h:109
bool VerifyRuntimeArg(::flatbuffers::Verifier &verifier, const void *obj, RuntimeArg type)
Definition: program_generated.h:1079
const char *const * EnumNamesCoreType()
Definition: program_generated.h:221
bool VerifyKernel(::flatbuffers::Verifier &verifier, const void *obj, Kernel type)
Definition: program_generated.h:1050
const KernelConfig(& EnumValuesKernelConfig())[4]
Definition: program_generated.h:118
CoreType
Definition: program_generated.h:206
bool VerifyRuntimeArgVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset< void >> *values, const ::flatbuffers::Vector< RuntimeArg > *types)
Definition: program_generated.h:1096
inline ::flatbuffers::Offset< ProgramDesc > CreateProgramDesc(::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::metal::KernelDesc >>> kernels=0)
Definition: program_generated.h:995
const EthType(& EnumValuesEthType())[2]
Definition: program_generated.h:86
inline ::flatbuffers::Offset< KernelDesc > CreateKernelDesc(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::metal::Kernel kernel_type=tt::target::metal::Kernel::NONE, ::flatbuffers::Offset< void > kernel=0, ::flatbuffers::Offset<::flatbuffers::Vector< const tt::target::Dim2dRange * >> core_range_set=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::CBRef >>> cbs=0, ::flatbuffers::Offset<::flatbuffers::Vector< tt::target::metal::RuntimeArg >> runtime_args_type=0, ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< void >>> runtime_args=0, ::flatbuffers::Offset<::flatbuffers::String > debug_info=0)
Definition: program_generated.h:909
const char * EnumNameCoreType(CoreType e)
Definition: program_generated.h:230
const char *const * EnumNamesBinaryType()
Definition: program_generated.h:187
const Kernel(& EnumValuesKernel())[3]
Definition: program_generated.h:244
NocIndex
Definition: program_generated.h:49
inline ::flatbuffers::Offset< KernelSource > CreateKernelSource(::flatbuffers::FlatBufferBuilder &_fbb, ::flatbuffers::Offset<::flatbuffers::String > source=0, tt::target::metal::KernelConfig config_type=tt::target::metal::KernelConfig::NONE, ::flatbuffers::Offset< void > config=0)
Definition: program_generated.h:587
inline ::flatbuffers::Offset< TensixConfig > CreateTensixConfig(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::MathFidelity math_fidelity=tt::target::MathFidelity::LoFi, bool fp32_dest_acc_en=false, bool preserve_fp32_precision=false, bool math_approx_mode=false)
Definition: program_generated.h:437
inline ::flatbuffers::Offset< KernelBinary > CreateKernelBinaryDirect(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::metal::BinaryType core_type=tt::target::metal::BinaryType::BRISC, const std::vector< uint8_t > *data=nullptr, const char *debug_source=nullptr)
Definition: program_generated.h:686
inline ::flatbuffers::Offset< EthernetConfig > CreateEthernetConfig(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::metal::EthType eth_type=tt::target::metal::EthType::Sender, tt::target::metal::NocIndex noc_index=tt::target::metal::NocIndex::Noc0)
Definition: program_generated.h:498
const char *const * EnumNamesEthType()
Definition: program_generated.h:94
inline ::flatbuffers::Offset< RuntimeArgTensorAddress > CreateRuntimeArgTensorAddress(::flatbuffers::FlatBufferBuilder &_fbb, uint32_t operand_idx=0)
Definition: program_generated.h:734
bool VerifyKernelConfigVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset< void >> *values, const ::flatbuffers::Vector< KernelConfig > *types)
Definition: program_generated.h:1038
inline ::flatbuffers::Offset< KernelDesc > CreateKernelDescDirect(::flatbuffers::FlatBufferBuilder &_fbb, tt::target::metal::Kernel kernel_type=tt::target::metal::Kernel::NONE, ::flatbuffers::Offset< void > kernel=0, const std::vector< tt::target::Dim2dRange > *core_range_set=nullptr, const std::vector<::flatbuffers::Offset< tt::target::CBRef >> *cbs=nullptr, const std::vector< tt::target::metal::RuntimeArg > *runtime_args_type=nullptr, const std::vector<::flatbuffers::Offset< void >> *runtime_args=nullptr, const char *debug_info=nullptr)
Definition: program_generated.h:934
const char * EnumNameKernel(Kernel e)
Definition: program_generated.h:263
const CoreType(& EnumValuesCoreType())[2]
Definition: program_generated.h:213
const char * EnumNameBinaryType(BinaryType e)
Definition: program_generated.h:200
inline ::flatbuffers::Offset< KernelSource > CreateKernelSourceDirect(::flatbuffers::FlatBufferBuilder &_fbb, const char *source=nullptr, tt::target::metal::KernelConfig config_type=tt::target::metal::KernelConfig::NONE, ::flatbuffers::Offset< void > config=0)
Definition: program_generated.h:604
const char * EnumNameKernelConfig(KernelConfig e)
Definition: program_generated.h:139
const char *const * EnumNamesRuntimeArg()
Definition: program_generated.h:301
MathFidelity
Definition: types_generated.h:376
Definition: debug_info_generated.h:16
Definition: debug_info_generated.h:25
Definition: program_generated.h:477
::flatbuffers::uoffset_t start_
Definition: program_generated.h:480
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:479
::flatbuffers::Offset< EthernetConfig > Finish()
Definition: program_generated.h:491
void add_eth_type(tt::target::metal::EthType eth_type)
Definition: program_generated.h:481
void add_noc_index(tt::target::metal::NocIndex noc_index)
Definition: program_generated.h:484
EthernetConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:487
EthernetConfig Table
Definition: program_generated.h:478
Definition: program_generated.h:508
static constexpr auto Create
Definition: program_generated.h:510
EthernetConfig type
Definition: program_generated.h:509
Definition: binary_generated.h:36
TensixConfigBuilder Builder
Definition: program_generated.h:380
bool Verify(::flatbuffers::Verifier &verifier) const
Definition: program_generated.h:341
ProgramDescBuilder Builder
Definition: program_generated.h:960
uint32_t operand_idx() const
Definition: program_generated.h:706
tt::target::metal::CoreType core_type() const
Definition: program_generated.h:757
const tt::target::metal::KernelSource * kernel_as_KernelSource() const
Definition: program_generated.h:823
tt::target::MathFidelity math_fidelity() const
Definition: program_generated.h:388
EthernetConfigBuilder Builder
Definition: program_generated.h:457
const ::flatbuffers::Vector< tt::target::metal::RuntimeArg > * runtime_args_type() const
Definition: program_generated.h:835
const void * config() const
Definition: program_generated.h:527
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::metal::KernelDesc > > * kernels() const
Definition: program_generated.h:965
const ::flatbuffers::Vector<::flatbuffers::Offset< tt::target::CBRef > > * cbs() const
Definition: program_generated.h:832
uint32_t initial_value() const
Definition: program_generated.h:754
const ::flatbuffers::String * debug_source() const
Definition: program_generated.h:631
const void * kernel() const
Definition: program_generated.h:819
bool fp32_dest_acc_en() const
Definition: program_generated.h:391
bool math_approx_mode() const
Definition: program_generated.h:397
const ::flatbuffers::Vector< const tt::target::Dim2dRange * > * core_range_set() const
Definition: program_generated.h:829
KernelBinaryBuilder Builder
Definition: program_generated.h:618
KernelSourceBuilder Builder
Definition: program_generated.h:514
const ::flatbuffers::String * debug_info() const
Definition: program_generated.h:841
const tt::target::metal::EthernetConfig * config_as_EthernetConfig() const
Definition: program_generated.h:537
const tt::target::metal::NocConfig * config_as_NocConfig() const
Definition: program_generated.h:531
const ::flatbuffers::String * source() const
Definition: program_generated.h:521
KernelDescBuilder Builder
Definition: program_generated.h:805
const tt::target::metal::TensixConfig * config_as_TensixConfig() const
Definition: program_generated.h:534
NocConfigBuilder Builder
Definition: program_generated.h:333
RuntimeArgSemaphoreAddressBuilder Builder
Definition: program_generated.h:748
tt::target::metal::KernelConfig config_type() const
Definition: program_generated.h:524
bool preserve_fp32_precision() const
Definition: program_generated.h:394
const tt::target::metal::KernelBinary * kernel_as_KernelBinary() const
Definition: program_generated.h:826
tt::target::metal::Kernel kernel_type() const
Definition: program_generated.h:816
tt::target::metal::EthType eth_type() const
Definition: program_generated.h:463
RuntimeArgTensorAddressBuilder Builder
Definition: program_generated.h:701
const ::flatbuffers::Vector<::flatbuffers::Offset< void > > * runtime_args() const
Definition: program_generated.h:838
const ::flatbuffers::Vector< uint8_t > * data() const
Definition: program_generated.h:628
tt::target::metal::NocIndex noc_index() const
Definition: program_generated.h:338
tt::target::metal::BinaryType core_type() const
Definition: program_generated.h:625
Definition: program_generated.h:645
void add_debug_source(::flatbuffers::Offset<::flatbuffers::String > debug_source)
Definition: program_generated.h:655
KernelBinaryBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:658
::flatbuffers::uoffset_t start_
Definition: program_generated.h:648
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:647
void add_core_type(tt::target::metal::BinaryType core_type)
Definition: program_generated.h:649
::flatbuffers::Offset< KernelBinary > Finish()
Definition: program_generated.h:662
KernelBinary Table
Definition: program_generated.h:646
void add_data(::flatbuffers::Offset<::flatbuffers::Vector< uint8_t >> data)
Definition: program_generated.h:652
Definition: program_generated.h:681
static constexpr auto Create
Definition: program_generated.h:683
KernelBinary type
Definition: program_generated.h:682
Definition: program_generated.h:145
static const KernelConfig enum_value
Definition: program_generated.h:146
Definition: program_generated.h:873
::flatbuffers::uoffset_t start_
Definition: program_generated.h:876
KernelDesc Table
Definition: program_generated.h:874
KernelDescBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:898
void add_core_range_set(::flatbuffers::Offset<::flatbuffers::Vector< const tt::target::Dim2dRange * >> core_range_set)
Definition: program_generated.h:883
void add_runtime_args(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< void >>> runtime_args)
Definition: program_generated.h:892
void add_kernel_type(tt::target::metal::Kernel kernel_type)
Definition: program_generated.h:877
::flatbuffers::Offset< KernelDesc > Finish()
Definition: program_generated.h:902
void add_debug_info(::flatbuffers::Offset<::flatbuffers::String > debug_info)
Definition: program_generated.h:895
void add_cbs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::CBRef >>> cbs)
Definition: program_generated.h:886
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:875
void add_kernel(::flatbuffers::Offset< void > kernel)
Definition: program_generated.h:880
void add_runtime_args_type(::flatbuffers::Offset<::flatbuffers::Vector< tt::target::metal::RuntimeArg >> runtime_args_type)
Definition: program_generated.h:889
Definition: program_generated.h:929
static constexpr auto Create
Definition: program_generated.h:931
KernelDesc type
Definition: program_generated.h:930
Definition: program_generated.h:563
void add_config_type(tt::target::metal::KernelConfig config_type)
Definition: program_generated.h:570
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:565
::flatbuffers::uoffset_t start_
Definition: program_generated.h:566
::flatbuffers::Offset< KernelSource > Finish()
Definition: program_generated.h:580
void add_config(::flatbuffers::Offset< void > config)
Definition: program_generated.h:573
void add_source(::flatbuffers::Offset<::flatbuffers::String > source)
Definition: program_generated.h:567
KernelSourceBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:576
KernelSource Table
Definition: program_generated.h:564
Definition: program_generated.h:599
static constexpr auto Create
Definition: program_generated.h:601
KernelSource type
Definition: program_generated.h:600
Definition: program_generated.h:269
static const Kernel enum_value
Definition: program_generated.h:270
Definition: program_generated.h:348
NocConfig Table
Definition: program_generated.h:349
::flatbuffers::Offset< NocConfig > Finish()
Definition: program_generated.h:359
void add_noc_index(tt::target::metal::NocIndex noc_index)
Definition: program_generated.h:352
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:350
::flatbuffers::uoffset_t start_
Definition: program_generated.h:351
NocConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:355
Definition: program_generated.h:374
static constexpr auto Create
Definition: program_generated.h:376
NocConfig type
Definition: program_generated.h:375
Definition: program_generated.h:977
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:979
::flatbuffers::uoffset_t start_
Definition: program_generated.h:980
ProgramDescBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:984
::flatbuffers::Offset< ProgramDesc > Finish()
Definition: program_generated.h:988
ProgramDesc Table
Definition: program_generated.h:978
void add_kernels(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset< tt::target::metal::KernelDesc >>> kernels)
Definition: program_generated.h:981
Definition: program_generated.h:1003
static constexpr auto Create
Definition: program_generated.h:1005
ProgramDesc type
Definition: program_generated.h:1004
Definition: program_generated.h:768
RuntimeArgSemaphoreAddress Table
Definition: program_generated.h:769
::flatbuffers::uoffset_t start_
Definition: program_generated.h:771
::flatbuffers::Offset< RuntimeArgSemaphoreAddress > Finish()
Definition: program_generated.h:782
void add_core_type(tt::target::metal::CoreType core_type)
Definition: program_generated.h:775
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:770
void add_initial_value(uint32_t initial_value)
Definition: program_generated.h:772
RuntimeArgSemaphoreAddressBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:778
RuntimeArgSemaphoreAddress type
Definition: program_generated.h:800
static constexpr auto Create
Definition: program_generated.h:801
Definition: program_generated.h:716
::flatbuffers::uoffset_t start_
Definition: program_generated.h:719
void add_operand_idx(uint32_t operand_idx)
Definition: program_generated.h:720
::flatbuffers::Offset< RuntimeArgTensorAddress > Finish()
Definition: program_generated.h:727
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:718
RuntimeArgTensorAddressBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:723
RuntimeArgTensorAddress Table
Definition: program_generated.h:717
Definition: program_generated.h:742
RuntimeArgTensorAddress type
Definition: program_generated.h:743
static constexpr auto Create
Definition: program_generated.h:744
Definition: program_generated.h:317
static const RuntimeArg enum_value
Definition: program_generated.h:318
Definition: program_generated.h:410
void add_math_fidelity(tt::target::MathFidelity math_fidelity)
Definition: program_generated.h:414
::flatbuffers::uoffset_t start_
Definition: program_generated.h:413
::flatbuffers::Offset< TensixConfig > Finish()
Definition: program_generated.h:430
void add_fp32_dest_acc_en(bool fp32_dest_acc_en)
Definition: program_generated.h:417
void add_preserve_fp32_precision(bool preserve_fp32_precision)
Definition: program_generated.h:420
void add_math_approx_mode(bool math_approx_mode)
Definition: program_generated.h:423
TensixConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
Definition: program_generated.h:426
TensixConfig Table
Definition: program_generated.h:411
::flatbuffers::FlatBufferBuilder & fbb_
Definition: program_generated.h:412
Definition: program_generated.h:451
static constexpr auto Create
Definition: program_generated.h:453
TensixConfig type
Definition: program_generated.h:452