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