# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os import re import struct import unittest import numpy as np import paddle import paddle.nn.quant as Q from paddle import base from paddle.base import core from paddle.framework import set_default_dtype from fastdeploy.model_executor.layers.quantization.ops import ( machete_quantize_and_pack, machete_wint_mm, ) np.random.seed(123) paddle.seed(123) def get_cuda_version(): result = os.popen("nvcc --version").read() regex = r"release (\S+)," match = re.search(regex, result) if match: num = str(match.group(1)) integer, decimal = num.split(".") return int(integer) * 1000 + int(float(decimal) * 10) else: return -1 def get_sm_version(): prop = paddle.device.cuda.get_device_properties() cc = prop.major * 10 + prop.minor return cc def convert_uint16_to_float(in_list): in_list = np.asarray(in_list) out = np.vectorize( lambda x: struct.unpack("