"examples/vscode:/vscode.git/clone" did not exist on "342a7cda2d212205c4874f82a59559400bbec311"
Unverified Commit ef3f98b5 authored by Kebe's avatar Kebe Committed by GitHub
Browse files

[Bugfix] fix v1 cpu worker fails on macOS (#19121)

parent 7ee25904
...@@ -1290,7 +1290,7 @@ class EngineArgs: ...@@ -1290,7 +1290,7 @@ class EngineArgs:
# Skip this check if we are running on a non-GPU platform, # Skip this check if we are running on a non-GPU platform,
# or if the device capability is not available # or if the device capability is not available
# (e.g. in a Ray actor without GPUs). # (e.g. in a Ray actor without GPUs).
from vllm.platforms import current_platform from vllm.platforms import CpuArchEnum, current_platform
if (current_platform.is_cuda() if (current_platform.is_cuda()
and current_platform.get_device_capability() and current_platform.get_device_capability()
and current_platform.get_device_capability().major < 8): and current_platform.get_device_capability().major < 8):
...@@ -1434,7 +1434,8 @@ class EngineArgs: ...@@ -1434,7 +1434,8 @@ class EngineArgs:
# Non-[CUDA, TPU] may be supported on V1, but off by default for now. # Non-[CUDA, TPU] may be supported on V1, but off by default for now.
v0_hardware = not any( v0_hardware = not any(
(current_platform.is_cuda(), current_platform.is_tpu(), (current_platform.is_cuda(), current_platform.is_tpu(),
current_platform.is_cpu())) (current_platform.is_cpu()
and current_platform.get_cpu_architecture() == CpuArchEnum.X86)))
if v0_hardware and _warn_or_fallback( # noqa: SIM103 if v0_hardware and _warn_or_fallback( # noqa: SIM103
current_platform.device_name): current_platform.device_name):
return False return False
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
import os import os
import platform
import sys import sys
from importlib.util import find_spec from importlib.util import find_spec
from typing import TYPE_CHECKING, Optional from typing import TYPE_CHECKING, Optional
...@@ -22,6 +23,15 @@ else: ...@@ -22,6 +23,15 @@ else:
VllmConfig = None VllmConfig = None
def get_max_threads(pid=0):
if hasattr(os, 'sched_getaffinity'):
return len(os.sched_getaffinity(pid))
elif platform.system() == 'Darwin':
return os.cpu_count()
else:
raise NotImplementedError("Unsupported OS")
class CpuPlatform(Platform): class CpuPlatform(Platform):
_enum = PlatformEnum.CPU _enum = PlatformEnum.CPU
device_name: str = "cpu" device_name: str = "cpu"
...@@ -190,7 +200,7 @@ class CpuPlatform(Platform): ...@@ -190,7 +200,7 @@ class CpuPlatform(Platform):
# Note: to avoid the error 'nthreads cannot be larger than environment # Note: to avoid the error 'nthreads cannot be larger than environment
# variable "NUMEXPR_MAX_THREADS" (64)'. # variable "NUMEXPR_MAX_THREADS" (64)'.
os.environ["NUMEXPR_MAX_THREADS"] = str(len(os.sched_getaffinity(0))) os.environ["NUMEXPR_MAX_THREADS"] = str(get_max_threads())
# Set default threads num for OpenMP parallel # Set default threads num for OpenMP parallel
os.environ["OMP_NUM_THREADS"] = str(torch.get_num_threads()) os.environ["OMP_NUM_THREADS"] = str(torch.get_num_threads())
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment