diff --git a/backends/xnnpack/runtime/XNNCompiler.cpp b/backends/xnnpack/runtime/XNNCompiler.cpp index 56d0508bef0..312cbc17b95 100644 --- a/backends/xnnpack/runtime/XNNCompiler.cpp +++ b/backends/xnnpack/runtime/XNNCompiler.cpp @@ -121,6 +121,14 @@ xnn_datatype getDataType(const DataType& data_type) { return xnn_datatype::xnn_datatype_qdint8; case DataType::xnn_datatype_qbint4: return xnn_datatype::xnn_datatype_qbint4; + case DataType::xnn_datatype_qpint8: + return xnn_datatype::xnn_datatype_qpint8; + case DataType::xnn_datatype_int32: + return xnn_datatype::xnn_datatype_int32; + case DataType::xnn_datatype_pfp32: + return xnn_datatype::xnn_datatype_pfp32; + case DataType::xnn_datatype_bf16: + return xnn_datatype::xnn_datatype_bf16; default: return xnn_datatype::xnn_datatype_invalid; } diff --git a/backends/xnnpack/serialization/runtime_schema.fbs b/backends/xnnpack/serialization/runtime_schema.fbs index d76c3c0807e..a0d44327912 100644 --- a/backends/xnnpack/serialization/runtime_schema.fbs +++ b/backends/xnnpack/serialization/runtime_schema.fbs @@ -29,6 +29,15 @@ enum XNNDatatype : short { xnn_datatype_qdint8 = 9, /// Quantized 4-bit signed integer with shared blockwise quantization parameters. xnn_datatype_qbint4 = 10, + /// Dynamically quantized 8-bit signed integers packed with their per-row + /// quantization parameters. + xnn_datatype_qpint8 = 11, + /// 32-bit signed integers. + xnn_datatype_int32 = 12, + /// IEEE754 single-precision packed floating-point. + xnn_datatype_pfp32 = 13, + /// BFloat16, i.e. the upper 16 bits of a float32. + xnn_datatype_bf16 = 14, } // type of quantization diff --git a/backends/xnnpack/serialization/schema.fbs b/backends/xnnpack/serialization/schema.fbs index 356df663dfc..eeab28154cc 100644 --- a/backends/xnnpack/serialization/schema.fbs +++ b/backends/xnnpack/serialization/schema.fbs @@ -29,6 +29,15 @@ enum XNNDatatype : short { xnn_datatype_qdint8 = 9, /// Quantized 4-bit signed integer with shared blockwise quantization parameters. xnn_datatype_qbint4 = 10, + /// Dynamically quantized 8-bit signed integers packed with their per-row + /// quantization parameters. + xnn_datatype_qpint8 = 11, + /// 32-bit signed integers. + xnn_datatype_int32 = 12, + /// IEEE754 single-precision packed floating-point. + xnn_datatype_pfp32 = 13, + /// BFloat16, i.e. the upper 16 bits of a float32. + xnn_datatype_bf16 = 14, } // type of quantization diff --git a/backends/xnnpack/serialization/xnnpack_graph_schema.py b/backends/xnnpack/serialization/xnnpack_graph_schema.py index b8b4ea7f02f..dc50fb47da4 100644 --- a/backends/xnnpack/serialization/xnnpack_graph_schema.py +++ b/backends/xnnpack/serialization/xnnpack_graph_schema.py @@ -419,6 +419,10 @@ class XNNDatatype(IntEnum): xnn_datatype_qcint4 = 8 xnn_datatype_qdint8 = 9 xnn_datatype_qbint4 = 10 + xnn_datatype_qpint8 = 11 + xnn_datatype_int32 = 12 + xnn_datatype_pfp32 = 13 + xnn_datatype_bf16 = 14 @dataclass