Files
modelscope--funasr/tests/test_fun_asr_nano_autocast_device.py
2026-07-13 13:25:10 +08:00

55 lines
2.0 KiB
Python

import importlib.util
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
DEVICE_UTILS_PATH = REPO_ROOT / "funasr" / "models" / "fun_asr_nano" / "device_utils.py"
PACKAGE_MODEL_PATH = REPO_ROOT / "funasr" / "models" / "fun_asr_nano" / "model.py"
EXAMPLE_MODEL_PATH = (
REPO_ROOT / "examples" / "industrial_data_pretraining" / "fun_asr_nano" / "model.py"
)
def _load_device_utils():
spec = importlib.util.spec_from_file_location("fun_asr_nano_device_utils", DEVICE_UTILS_PATH)
module = importlib.util.module_from_spec(spec)
assert spec.loader is not None
spec.loader.exec_module(module)
return module
def test_resolve_autocast_device_type_keeps_npu_backend():
device_utils = _load_device_utils()
assert device_utils.resolve_autocast_device_type("npu:1") == "npu"
assert device_utils.resolve_autocast_device_type("npu") == "npu"
assert device_utils.resolve_autocast_device_type("cuda:0") == "cuda"
assert device_utils.resolve_autocast_device_type("xpu:0") == "xpu"
assert device_utils.resolve_autocast_device_type("mps") == "mps"
assert device_utils.resolve_autocast_device_type("cpu") == "cpu"
assert device_utils.resolve_autocast_device_type("unknown:0") == "cpu"
def test_device_type_from_value_treats_none_as_cpu():
device_utils = _load_device_utils()
assert device_utils._device_type_from_value(None) == "cpu"
def test_resolve_autocast_device_type_accepts_device_like_objects():
device_utils = _load_device_utils()
class DeviceLike:
type = "npu"
assert device_utils.resolve_autocast_device_type(DeviceLike()) == "npu"
def test_fun_asr_nano_autocast_calls_use_shared_resolver():
old_inline_fallback = 'device_type if device_type in ["cuda", "xpu", "mps"] else "cpu"'
for path in (PACKAGE_MODEL_PATH, EXAMPLE_MODEL_PATH):
source = path.read_text(encoding="utf-8")
assert old_inline_fallback not in source
assert source.count("resolve_autocast_device_type(") >= 2