From 7c01f706418d593b3cf23d2ec9110dca7151c539 Mon Sep 17 00:00:00 2001 From: Antoni Baum Date: Sat, 29 Jun 2024 05:47:53 -0700 Subject: [PATCH] [Core] Optimize `SequenceStatus.is_finished` by switching to IntEnum (#5974) --- vllm/sequence.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/vllm/sequence.py b/vllm/sequence.py index 13746cef2..22cb26dc0 100644 --- a/vllm/sequence.py +++ b/vllm/sequence.py @@ -39,24 +39,21 @@ PromptLogprobs = List[Optional[Dict[int, Logprob]]] SampleLogprobs = List[Dict[int, Logprob]] -class SequenceStatus(enum.Enum): +class SequenceStatus(enum.IntEnum): """Status of a sequence.""" - WAITING = enum.auto() - RUNNING = enum.auto() - SWAPPED = enum.auto() - FINISHED_STOPPED = enum.auto() - FINISHED_LENGTH_CAPPED = enum.auto() - FINISHED_ABORTED = enum.auto() - FINISHED_IGNORED = enum.auto() + WAITING = 0 + RUNNING = 1 + SWAPPED = 2 + # Note: anything after SWAPPED (2) will be considered + # as a finished status. + FINISHED_STOPPED = 3 + FINISHED_LENGTH_CAPPED = 4 + FINISHED_ABORTED = 5 + FINISHED_IGNORED = 6 @staticmethod def is_finished(status: "SequenceStatus") -> bool: - return status in [ - SequenceStatus.FINISHED_STOPPED, - SequenceStatus.FINISHED_LENGTH_CAPPED, - SequenceStatus.FINISHED_ABORTED, - SequenceStatus.FINISHED_IGNORED, - ] + return status > SequenceStatus.SWAPPED @staticmethod def get_finished_reason(status: "SequenceStatus") -> Union[str, None]: