Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
7be15d93
Unverified
Commit
7be15d93
authored
Dec 07, 2024
by
youkaichao
Committed by
GitHub
Dec 07, 2024
Browse files
[core][misc] remove use_dummy driver for _run_workers (#10920)
Signed-off-by:
youkaichao
<
youkaichao@gmail.com
>
parent
1b62745b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
44 deletions
+43
-44
vllm/executor/ray_gpu_executor.py
vllm/executor/ray_gpu_executor.py
+12
-15
vllm/executor/ray_hpu_executor.py
vllm/executor/ray_hpu_executor.py
+12
-16
vllm/executor/ray_tpu_executor.py
vllm/executor/ray_tpu_executor.py
+10
-11
vllm/executor/ray_xpu_executor.py
vllm/executor/ray_xpu_executor.py
+9
-2
No files found.
vllm/executor/ray_gpu_executor.py
View file @
7be15d93
...
...
@@ -188,8 +188,14 @@ class RayGPUExecutor(DistributedGPUExecutor):
self
.
workers
=
sorted
(
self
.
workers
,
key
=
sort_by_driver_then_worker_ip
)
# Get the set of GPU IDs used on each node.
worker_node_and_gpu_ids
=
self
.
_run_workers
(
"get_node_and_gpu_ids"
,
use_dummy_driver
=
True
)
worker_node_and_gpu_ids
=
[]
for
worker
in
[
self
.
driver_dummy_worker
]
+
self
.
workers
:
if
worker
is
None
:
# driver_dummy_worker can be None when using ray spmd worker.
continue
worker_node_and_gpu_ids
.
append
(
ray
.
get
(
worker
.
get_node_and_gpu_ids
.
remote
())
\
)
# type: ignore
node_workers
=
defaultdict
(
list
)
# node id -> list of worker ranks
node_gpus
=
defaultdict
(
list
)
# node id -> list of gpu ids
...
...
@@ -329,7 +335,6 @@ class RayGPUExecutor(DistributedGPUExecutor):
async_run_tensor_parallel_workers_only
:
bool
=
False
,
all_args
:
Optional
[
List
[
Tuple
[
Any
,
...]]]
=
None
,
all_kwargs
:
Optional
[
List
[
Dict
[
str
,
Any
]]]
=
None
,
use_dummy_driver
:
bool
=
False
,
max_concurrent_workers
:
Optional
[
int
]
=
None
,
**
kwargs
,
)
->
Any
:
...
...
@@ -389,18 +394,10 @@ class RayGPUExecutor(DistributedGPUExecutor):
driver_kwargs
=
kwargs
if
all_kwargs
is
None
else
all_kwargs
[
0
]
# Start the driver worker after all the ray workers.
if
not
use_dummy_driver
:
driver_worker_output
=
[
self
.
driver_worker
.
execute_method
(
method
,
*
driver_args
,
**
driver_kwargs
)
]
else
:
assert
self
.
driver_dummy_worker
is
not
None
driver_worker_output
=
[
ray
.
get
(
self
.
driver_dummy_worker
.
execute_method
.
remote
(
method
,
*
driver_args
,
**
driver_kwargs
))
]
# Get the results of the ray workers.
if
self
.
workers
:
...
...
vllm/executor/ray_hpu_executor.py
View file @
7be15d93
...
...
@@ -163,9 +163,14 @@ class RayHPUExecutor(DistributedGPUExecutor):
# node will be placed first.
self
.
workers
=
sorted
(
self
.
workers
,
key
=
sort_by_driver_then_worker_ip
)
# Get the set of GPU IDs used on each node.
worker_node_and_gpu_ids
=
self
.
_run_workers
(
"get_node_and_gpu_ids"
,
use_dummy_driver
=
True
)
worker_node_and_gpu_ids
=
[]
for
worker
in
[
self
.
driver_dummy_worker
]
+
self
.
workers
:
if
worker
is
None
:
# driver_dummy_worker can be None when using ray spmd worker.
continue
worker_node_and_gpu_ids
.
append
(
ray
.
get
(
worker
.
get_node_and_gpu_ids
.
remote
())
\
)
# type: ignore
node_workers
=
defaultdict
(
list
)
# node id -> list of worker ranks
node_gpus
=
defaultdict
(
list
)
# node id -> list of gpu ids
...
...
@@ -296,7 +301,6 @@ class RayHPUExecutor(DistributedGPUExecutor):
async_run_tensor_parallel_workers_only
:
bool
=
False
,
all_args
:
Optional
[
List
[
Tuple
[
Any
,
...]]]
=
None
,
all_kwargs
:
Optional
[
List
[
Dict
[
str
,
Any
]]]
=
None
,
use_dummy_driver
:
bool
=
False
,
max_concurrent_workers
:
Optional
[
int
]
=
None
,
**
kwargs
,
)
->
Any
:
...
...
@@ -356,18 +360,10 @@ class RayHPUExecutor(DistributedGPUExecutor):
driver_kwargs
=
kwargs
if
all_kwargs
is
None
else
all_kwargs
[
0
]
# Start the driver worker after all the ray workers.
if
not
use_dummy_driver
:
driver_worker_output
=
[
self
.
driver_worker
.
execute_method
(
method
,
*
driver_args
,
**
driver_kwargs
)
]
else
:
assert
self
.
driver_dummy_worker
is
not
None
driver_worker_output
=
[
ray
.
get
(
self
.
driver_dummy_worker
.
execute_method
.
remote
(
method
,
*
driver_args
,
**
driver_kwargs
))
]
# Get the results of the ray workers.
if
self
.
workers
:
...
...
vllm/executor/ray_tpu_executor.py
View file @
7be15d93
...
...
@@ -137,8 +137,14 @@ class RayTPUExecutor(TPUExecutor):
self
.
workers
=
sorted
(
self
.
workers
,
key
=
sort_by_driver_then_worker_ip
)
# Get the set of TPU IDs used on each node.
worker_node_and_gpu_ids
=
self
.
_run_workers
(
"get_node_and_gpu_ids"
,
use_dummy_driver
=
True
)
worker_node_and_gpu_ids
=
[]
for
worker
in
[
self
.
driver_dummy_worker
]
+
self
.
workers
:
if
worker
is
None
:
# driver_dummy_worker can be None when using ray spmd worker.
continue
worker_node_and_gpu_ids
.
append
(
ray
.
get
(
worker
.
get_node_and_gpu_ids
.
remote
())
\
)
# type: ignore
node_workers
=
defaultdict
(
list
)
for
i
,
(
node_id
,
_
)
in
enumerate
(
worker_node_and_gpu_ids
):
...
...
@@ -199,7 +205,6 @@ class RayTPUExecutor(TPUExecutor):
async_run_remote_workers_only
:
bool
=
False
,
all_args
:
Optional
[
List
[
Tuple
[
Any
,
...]]]
=
None
,
all_kwargs
:
Optional
[
List
[
Dict
[
str
,
Any
]]]
=
None
,
use_dummy_driver
:
bool
=
False
,
max_concurrent_workers
:
Optional
[
int
]
=
None
,
use_ray_compiled_dag
:
bool
=
False
,
**
kwargs
,
...
...
@@ -241,14 +246,8 @@ class RayTPUExecutor(TPUExecutor):
driver_kwargs
=
kwargs
if
all_kwargs
is
None
else
all_kwargs
[
0
]
# Start the driver worker after all the ray workers.
if
not
use_dummy_driver
:
driver_worker_output
=
self
.
driver_worker
.
execute_method
(
method
,
*
driver_args
,
**
driver_kwargs
)
else
:
assert
self
.
driver_dummy_worker
is
not
None
driver_worker_output
=
ray
.
get
(
self
.
driver_dummy_worker
.
execute_method
.
remote
(
method
,
*
driver_args
,
**
driver_kwargs
))
# Get the results of the ray workers.
if
self
.
workers
:
ray_worker_outputs
=
ray
.
get
(
ray_worker_outputs
)
...
...
vllm/executor/ray_xpu_executor.py
View file @
7be15d93
import
asyncio
from
typing
import
List
,
Optional
import
ray
import
vllm.envs
as
envs
from
vllm.executor.ray_gpu_executor
import
RayGPUExecutor
,
RayGPUExecutorAsync
from
vllm.executor.xpu_executor
import
XPUExecutor
...
...
@@ -14,8 +16,13 @@ class RayXPUExecutor(RayGPUExecutor, XPUExecutor):
def
_get_env_vars_to_be_updated
(
self
):
# Get the set of GPU IDs used on each node.
worker_node_and_gpu_ids
=
self
.
_run_workers
(
"get_node_and_gpu_ids"
,
use_dummy_driver
=
True
)
worker_node_and_gpu_ids
=
[]
for
worker
in
[
self
.
driver_dummy_worker
]
+
self
.
workers
:
if
worker
is
None
:
# driver_dummy_worker can be None when using ray spmd worker.
continue
worker_node_and_gpu_ids
.
append
(
ray
.
get
(
worker
.
get_node_and_gpu_ids
.
remote
()))
# type: ignore
# Set environment variables for the driver and workers.
all_args_to_update_environment_variables
=
[({
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment