Initial commit: FunASR Speech Recognition Toolkit
Update API Documentation / build-api-docs (push) Has been cancelled
Update API Documentation / build-api-docs (push) Has been cancelled
Add complete FunASR codebase including models, runtime, and documentation.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# Copyright FunASR (https://github.com/modelscope/FunASR). All Rights Reserved.
|
||||
# MIT License (https://opensource.org/licenses/MIT)
|
||||
|
||||
"""Device helpers for Fun-ASR-Nano runtime paths."""
|
||||
|
||||
_SUPPORTED_AUTOCAST_DEVICE_TYPES = {"cuda", "xpu", "mps", "npu"}
|
||||
|
||||
|
||||
def _device_type_from_value(device):
|
||||
"""Resolve a device type without requiring optional backend registration."""
|
||||
if device is None:
|
||||
return "cpu"
|
||||
|
||||
device_type = getattr(device, "type", None)
|
||||
if device_type:
|
||||
return str(device_type).lower()
|
||||
|
||||
if isinstance(device, str):
|
||||
return device.split(":", 1)[0].lower()
|
||||
|
||||
return str(device).split(":", 1)[0].lower()
|
||||
|
||||
|
||||
def resolve_autocast_device_type(device):
|
||||
"""Return the torch.autocast device_type for a Fun-ASR-Nano device.
|
||||
|
||||
PyTorch builds without torch_npu may reject ``torch.device("npu:0")`` before
|
||||
torch_npu registers the backend. Parse strings directly so NPU requests do
|
||||
not fall back to CPU autocast, which only supports bf16 and caused #3034.
|
||||
"""
|
||||
device_type = _device_type_from_value(device)
|
||||
if device_type in _SUPPORTED_AUTOCAST_DEVICE_TYPES:
|
||||
return device_type
|
||||
return "cpu"
|
||||
Reference in New Issue
Block a user