+26









Konrad Zawora
Kunshang Ji
Sanju C Sudhakaran
Michal Adamczyk
Marceli Fylcek
Himangshu Lahkar
Vivek Goel
yuwenzho
Dominika Olszewska
barak goldberg
Michal Szutenberg
Jan Kaniecki
Agata Dobrzyniewicz
Krzysztof Wisniewski
Dudi Lester
Ilia Taraban
Chendi.Xue
Michał Kuligowski
Jakub Maksymczuk
Tomasz Zielinski
Sun Choi
Iryna Boiko
Bob Zhu
hlin99
Zehao Huang
Andrzej Kotłowski
Yan Tomsinsky
Nir David
Yu-Zhou
Ruheena Suhani Shaik
Karol Damaszke
Marcin Swiniarski
Woosuk Kwon
Jacek Czaja
Jacek Czaja
Yuan
a02a50e6e5
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']
|