mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2026-04-17 02:37:03 +08:00
Signed-off-by: yuwenzho <yuwen.zhou@intel.com> Signed-off-by: Chendi.Xue <chendi.xue@intel.com> Signed-off-by: Bob Zhu <bob.zhu@intel.com> Signed-off-by: zehao-intel <zehao.huang@intel.com> Signed-off-by: Konrad Zawora <kzawora@habana.ai> Co-authored-by: Kunshang Ji <kunshang.ji@intel.com> Co-authored-by: Sanju C Sudhakaran <scsudhakaran@habana.ai> Co-authored-by: Michal Adamczyk <madamczyk@habana.ai> Co-authored-by: Marceli Fylcek <mfylcek@habana.ai> Co-authored-by: Himangshu Lahkar <49579433+hlahkar@users.noreply.github.com> Co-authored-by: Vivek Goel <vgoel@habana.ai> Co-authored-by: yuwenzho <yuwen.zhou@intel.com> Co-authored-by: Dominika Olszewska <dolszewska@habana.ai> Co-authored-by: barak goldberg <149692267+bgoldberg-habana@users.noreply.github.com> Co-authored-by: Michal Szutenberg <37601244+szutenberg@users.noreply.github.com> Co-authored-by: Jan Kaniecki <jkaniecki@habana.ai> Co-authored-by: Agata Dobrzyniewicz <160237065+adobrzyniewicz-habana@users.noreply.github.com> Co-authored-by: Krzysztof Wisniewski <kwisniewski@habana.ai> Co-authored-by: Dudi Lester <160421192+dudilester@users.noreply.github.com> Co-authored-by: Ilia Taraban <tarabanil@gmail.com> Co-authored-by: Chendi.Xue <chendi.xue@intel.com> Co-authored-by: Michał Kuligowski <mkuligowski@habana.ai> Co-authored-by: Jakub Maksymczuk <jmaksymczuk@habana.ai> Co-authored-by: Tomasz Zielinski <85164140+tzielinski-habana@users.noreply.github.com> Co-authored-by: Sun Choi <schoi@habana.ai> Co-authored-by: Iryna Boiko <iboiko@habana.ai> Co-authored-by: Bob Zhu <41610754+czhu15@users.noreply.github.com> Co-authored-by: hlin99 <73271530+hlin99@users.noreply.github.com> Co-authored-by: Zehao Huang <zehao.huang@intel.com> Co-authored-by: Andrzej Kotłowski <Andrzej.Kotlowski@intel.com> Co-authored-by: Yan Tomsinsky <73292515+Yantom1@users.noreply.github.com> Co-authored-by: Nir David <ndavid@habana.ai> Co-authored-by: Yu-Zhou <yu.zhou@intel.com> Co-authored-by: Ruheena Suhani Shaik <rsshaik@habana.ai> Co-authored-by: Karol Damaszke <kdamaszke@habana.ai> Co-authored-by: Marcin Swiniarski <mswiniarski@habana.ai> Co-authored-by: Woosuk Kwon <woosuk.kwon@berkeley.edu> Co-authored-by: Jacek Czaja <jacek.czaja@intel.com> Co-authored-by: Jacek Czaja <jczaja@habana.ai> Co-authored-by: Yuan <yuan.zhou@outlook.com>
115 lines
2.8 KiB
Python
115 lines
2.8 KiB
Python
from .interface import Platform, PlatformEnum, UnspecifiedPlatform
|
|
|
|
current_platform: Platform
|
|
|
|
# NOTE: we don't use `torch.version.cuda` / `torch.version.hip` because
|
|
# they only indicate the build configuration, not the runtime environment.
|
|
# For example, people can install a cuda build of pytorch but run on tpu.
|
|
|
|
is_tpu = False
|
|
try:
|
|
# While it's technically possible to install libtpu on a non-TPU machine,
|
|
# this is a very uncommon scenario. Therefore, we assume that libtpu is
|
|
# installed if and only if the machine has TPUs.
|
|
import libtpu # noqa: F401
|
|
is_tpu = True
|
|
except Exception:
|
|
pass
|
|
|
|
is_cuda = False
|
|
|
|
try:
|
|
import pynvml
|
|
pynvml.nvmlInit()
|
|
try:
|
|
if pynvml.nvmlDeviceGetCount() > 0:
|
|
is_cuda = True
|
|
finally:
|
|
pynvml.nvmlShutdown()
|
|
except Exception:
|
|
pass
|
|
|
|
is_rocm = False
|
|
|
|
try:
|
|
import amdsmi
|
|
amdsmi.amdsmi_init()
|
|
try:
|
|
if len(amdsmi.amdsmi_get_processor_handles()) > 0:
|
|
is_rocm = True
|
|
finally:
|
|
amdsmi.amdsmi_shut_down()
|
|
except Exception:
|
|
pass
|
|
|
|
is_hpu = False
|
|
try:
|
|
from importlib import util
|
|
is_hpu = util.find_spec('habana_frameworks') is not None
|
|
except Exception:
|
|
pass
|
|
|
|
is_xpu = False
|
|
|
|
try:
|
|
# installed IPEX if the machine has XPUs.
|
|
import intel_extension_for_pytorch # noqa: F401
|
|
import oneccl_bindings_for_pytorch # noqa: F401
|
|
import torch
|
|
if hasattr(torch, 'xpu') and torch.xpu.is_available():
|
|
is_xpu = True
|
|
except Exception:
|
|
pass
|
|
|
|
is_cpu = False
|
|
try:
|
|
from importlib.metadata import version
|
|
is_cpu = "cpu" in version("vllm")
|
|
except Exception:
|
|
pass
|
|
|
|
is_neuron = False
|
|
try:
|
|
import transformers_neuronx # noqa: F401
|
|
is_neuron = True
|
|
except ImportError:
|
|
pass
|
|
|
|
is_openvino = False
|
|
try:
|
|
from importlib.metadata import version
|
|
is_openvino = "openvino" in version("vllm")
|
|
except Exception:
|
|
pass
|
|
|
|
if is_tpu:
|
|
# people might install pytorch built with cuda but run on tpu
|
|
# so we need to check tpu first
|
|
from .tpu import TpuPlatform
|
|
current_platform = TpuPlatform()
|
|
elif is_cuda:
|
|
from .cuda import CudaPlatform
|
|
current_platform = CudaPlatform()
|
|
elif is_rocm:
|
|
from .rocm import RocmPlatform
|
|
current_platform = RocmPlatform()
|
|
elif is_hpu:
|
|
from .hpu import HpuPlatform
|
|
current_platform = HpuPlatform()
|
|
elif is_xpu:
|
|
from .xpu import XPUPlatform
|
|
current_platform = XPUPlatform()
|
|
elif is_cpu:
|
|
from .cpu import CpuPlatform
|
|
current_platform = CpuPlatform()
|
|
elif is_neuron:
|
|
from .neuron import NeuronPlatform
|
|
current_platform = NeuronPlatform()
|
|
elif is_openvino:
|
|
from .openvino import OpenVinoPlatform
|
|
current_platform = OpenVinoPlatform()
|
|
else:
|
|
current_platform = UnspecifiedPlatform()
|
|
|
|
__all__ = ['Platform', 'PlatformEnum', 'current_platform']
|