[Mlir-commits] [mlir] Sub-channel quantized type implementation (PR #120172)
Kevin Gleason
llvmlistbot at llvm.org
Mon Mar 17 07:57:50 PDT 2025
================
@@ -410,6 +410,123 @@ int32_t UniformQuantizedPerAxisType::getQuantizedDimension() const {
return getImpl()->quantizedDimension;
}
+UniformQuantizedSubChannelType UniformQuantizedSubChannelType::get(
+ unsigned flags, Type storageType, Type expressedType,
+ DenseElementsAttr scales, DenseElementsAttr zeroPoints,
+ ArrayRef<int32_t> quantizedDimensions, ArrayRef<int64_t> blockSizes,
+ int64_t storageTypeMin, int64_t storageTypeMax) {
+ return Base::get(storageType.getContext(), flags, storageType, expressedType,
+ scales, zeroPoints, quantizedDimensions, blockSizes,
+ storageTypeMin, storageTypeMax);
+}
+
+UniformQuantizedSubChannelType UniformQuantizedSubChannelType::getChecked(
+ function_ref<InFlightDiagnostic()> emitError, unsigned flags,
+ Type storageType, Type expressedType, DenseElementsAttr scales,
+ DenseElementsAttr zeroPoints, ArrayRef<int32_t> quantizedDimensions,
+ ArrayRef<int64_t> blockSizes, int64_t storageTypeMin,
+ int64_t storageTypeMax) {
+ return Base::getChecked(emitError, storageType.getContext(), flags,
+ storageType, expressedType, scales, zeroPoints,
+ quantizedDimensions, blockSizes, storageTypeMin,
+ storageTypeMax);
+}
+
+LogicalResult UniformQuantizedSubChannelType::verifyInvariants(
+ function_ref<InFlightDiagnostic()> emitError, unsigned flags,
+ Type storageType, Type expressedType, DenseElementsAttr scales,
+ DenseElementsAttr zeroPoints, ArrayRef<int32_t> quantizedDimensions,
+ ArrayRef<int64_t> blockSizes, int64_t storageTypeMin,
+ int64_t storageTypeMax) {
+ if (failed(QuantizedType::verifyInvariants(emitError, flags, storageType,
+ expressedType, storageTypeMin,
+ storageTypeMax))) {
+ return failure();
+ }
+
+ // Uniform quantization requires fully expressed parameters, including
+ // expressed type.
+ if (!expressedType)
+ return emitError() << "uniform quantization requires expressed type";
----------------
GleasonK wrote:
Ah right I forgot the tensor knowledge was nedded.
https://github.com/llvm/llvm-project/pull/120172
More information about the Mlir-commits
mailing list