[CI] 【Hackathon 9th Sprint No.33】NO.33 功能模块单测补充 -part by xunyoyo · Pull Request #5056 · PaddlePaddle/FastDeploy (original) (raw)

def _install_dependency_stubs():

paddle = _ensure_module("paddle")

paddle.Tensor = _FakeTensor

paddle.bfloat16 = "bfloat16"

def _full(shape, fill_value=0, dtype="float32"):

dtype_str = dtype if isinstance(dtype, str) else str(dtype)

return _FakeTensor(np.full(shape, fill_value), dtype=dtype_str)

def _to_tensor(data, dtype="float32", place=None): # pylint: disable=unused-argument

dtype_str = dtype if isinstance(dtype, str) else str(dtype)

return _FakeTensor(np.array(data), dtype=dtype_str)

paddle.full = _full

paddle.to_tensor = _to_tensor

def _set_device(_name):

return None

paddle.set_device = _set_device

device_mod = types.ModuleType("paddle.device")

device_mod.set_device = lambda _name: None

cuda_mod = types.ModuleType("paddle.device.cuda")

cuda_mod.memory_allocated = lambda: 0

device_mod.cuda = cuda_mod

paddle.device = device_mod

sys.modules["paddle.device"] = device_mod

sys.modules["paddle.device.cuda"] = cuda_mod

fastdeploy_pkg = _ensure_module("fastdeploy")

fastdeploy_pkg.__path__ = [str(PROJECT_ROOT / "fastdeploy")]

utils_module = types.ModuleType("fastdeploy.utils")

envs_module = types.ModuleType("fastdeploy.utils.envs")

envs_module.FD_ENGINE_TASK_QUEUE_WITH_SHM = False

envs_module.ENABLE_V1_KVCACHE_SCHEDULER = False

class _Logger:

def __init__(self):

self.messages = {"info": [], "debug": [], "error": []}

def info(self, msg):

self.messages["info"].append(msg)

def debug(self, msg):

self.messages["debug"].append(msg)

def error(self, msg):

self.messages["error"].append(msg)

def _get_logger(_name, _filename=None): # pylint: disable=unused-argument

return _Logger()

utils_module.envs = envs_module

utils_module.get_logger = _get_logger

sys.modules["fastdeploy.utils"] = utils_module

sys.modules["fastdeploy.utils.envs"] = envs_module

fastdeploy_pkg.utils = utils_module

transfer_factory = types.ModuleType("fastdeploy.cache_manager.transfer_factory")

transfer_factory.IPCCommManager = _IPCCommManager

transfer_factory.RDMACommManager = _RDMACommManager

sys.modules["fastdeploy.cache_manager.transfer_factory"] = transfer_factory

config_module = types.ModuleType("fastdeploy.config")

class _SpeculativeConfig:

def __init__(self, config_dict):

self.num_extra_cache_layer = config_dict.get("num_extra_cache_layer", 0)

self.num_gpu_block_expand_ratio = config_dict.get("num_gpu_block_expand_ratio", 0)

config_module.SpeculativeConfig = _SpeculativeConfig

sys.modules["fastdeploy.config"] = config_module

fastdeploy_pkg.config = config_module

inter_comm_module = types.ModuleType("fastdeploy.inter_communicator")

inter_comm_module.EngineWorkerQueue = _EngineWorkerQueue

inter_comm_module.IPCSignal = _IPCSignal

inter_comm_module.shared_memory_exists = lambda _name: False

sys.modules["fastdeploy.inter_communicator"] = inter_comm_module

ops_gpu_module = types.ModuleType("fastdeploy.model_executor.ops.gpu")

def _get_output_kv_signal(buffer, rank_id, flag): # pylint: disable=unused-argument

sequence = getattr(_get_output_kv_signal, "sequence", None)

if not sequence:

raise SystemExit("kv signal stop")

step = sequence.pop(0)

if step.get("stop"):

raise SystemExit("kv signal stop")

data = buffer.numpy()

data.fill(-1)

tasks = step.get("tasks", -1)

data[0] = tasks

if tasks == -1:

return

data[1] = step.get("layer", 0)

data[2] = step.get("engine", 0)

data[3] = step.get("offset", 0)

data[4] = step.get("current", 0)

ops_gpu_module.get_output_kv_signal = _get_output_kv_signal

ops_gpu_module.set_data_ipc = lambda *args, **kwargs: None

sys.modules["fastdeploy.model_executor.ops.gpu"] = ops_gpu_module