Kaynağa Gözat

chore: optimize evictor v2 performance (#631)

AlpinDale 6 ay önce
ebeveyn
işleme
337071f484
1 değiştirilmiş dosya ile 4 ekleme ve 2 silme
  1. 4 2
      aphrodite/processing/evictor_v2.py

+ 4 - 2
aphrodite/processing/evictor_v2.py

@@ -91,8 +91,9 @@ class LRUEvictor(Evictor):
         # at the start of OrderedDict. Loop through all these blocks to
         # find the one with maximum number of hashed tokens.
         for _id, block in self.free_table.items():
-            if evicted_block.last_accessed > block.last_accessed or (
-                    evicted_block.last_accessed == block.last_accessed and
+            if evicted_block.last_accessed < block.last_accessed:
+                break
+            if (evicted_block.last_accessed == block.last_accessed and
                     evicted_block.num_hashed_tokens < block.num_hashed_tokens):
                 evicted_block = block
                 evicted_block_id = _id
@@ -109,6 +110,7 @@ class LRUEvictor(Evictor):
 
     def update(self, block_id: int, last_accessed: float):
         self.free_table[block_id].last_accessed = last_accessed
+        self.free_table.move_to_end(block_id)
 
     def remove(self, block_id: int):
         if block_id not in self.free_table: