diff --git a/KLR/Core/Tensor.lean b/KLR/Core/Tensor.lean index e505390d..fa9ec7f5 100644 --- a/KLR/Core/Tensor.lean +++ b/KLR/Core/Tensor.lean @@ -29,7 +29,7 @@ open Util (FromSexp ToSexp) -- Memory types on hardware @[serde tag = 110] inductive Memory where - | hbm | sbuf | psum | reg + | hbm | sbuf | psum | reg | private_hbm deriving BEq, FromCBOR, FromJson, FromSexp, Repr, ToCBOR, ToJson, ToSexp namespace Memory @@ -39,6 +39,7 @@ def toName (m : Memory) := | .sbuf => `sbuf | .psum => `psum | .reg => `reg + | .private_hbm => `private_hbm end Memory -- register number diff --git a/interop/klr/NKI.asdl b/interop/klr/NKI.asdl index 56d29cdc..8326baf5 100644 --- a/interop/klr/NKI.asdl +++ b/interop/klr/NKI.asdl @@ -9,6 +9,7 @@ Memory = | sbuf | psum | reg + | private_hbm Dtype = | bfloat16 | float8e3 diff --git a/interop/klr/klir_ast.hpp b/interop/klr/klir_ast.hpp index 9e8cd0cd..36f2e041 100644 --- a/interop/klr/klir_ast.hpp +++ b/interop/klr/klir_ast.hpp @@ -58,6 +58,7 @@ enum class Memory { sbuf, psum, reg, + private_hbm, }; enum class Dtype { diff --git a/interop/klr/klir_pretty_print.cpp b/interop/klr/klir_pretty_print.cpp index 019b6dd7..f7b3ef67 100644 --- a/interop/klr/klir_pretty_print.cpp +++ b/interop/klr/klir_pretty_print.cpp @@ -121,6 +121,9 @@ std::string to_string(Memory &MemoryInstance) { case Memory::reg: return "reg"; break; + case Memory::private_hbm: + return "private_hbm"; + break; default: return "UNABLE TO PRINT"; } diff --git a/interop/klr/klir_serde.cpp b/interop/klr/klir_serde.cpp index bbe47b77..e73a23ba 100644 --- a/interop/klr/klir_serde.cpp +++ b/interop/klr/klir_serde.cpp @@ -403,6 +403,12 @@ Memory Memory_des(FILE *in) { return Memory::reg; break; } + case 4: { + if (l != 0) + throw std::runtime_error("Wrong number of elements"); + return Memory::private_hbm; + break; + } default: throw std::runtime_error("Invalid value tag"); }