[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