vllm.distributed.kv_transfer.kv_pipe.base
This file defines an interface KVPipeBase
that provides an abstraction for sending and receiving tensors, or None, via
distributed communications.
All classes instantiated from this interface are assumed to be a FIFO pipe.
If your distributed communication platform already supports key-value lookup,
you can bypass this interface and directly start from kv_lookup_buffer
.
KVPipeBase
¶
Bases: ABC
This class provides an interface for sending and receiving tensors, or None, by distributed communications.
Source code in vllm/distributed/kv_transfer/kv_pipe/base.py
close
abstractmethod
¶
Close the pipeline and release resources.
This method is responsible for closing the communication pipeline and releasing any resources associated with it.
Raises:
Type | Description |
---|---|
NotImplementedError
|
This method must be implemented in subclasses. |
Source code in vllm/distributed/kv_transfer/kv_pipe/base.py
recv_tensor
abstractmethod
¶
Receive a tensor (can be None) from the pipeline.
Returns:
Type | Description |
---|---|
Optional[Tensor]
|
Optional[torch.Tensor]: The tensor received from the pipeline. Can be None. |
Raises:
Type | Description |
---|---|
NotImplementedError
|
This method must be implemented in subclasses. |
Source code in vllm/distributed/kv_transfer/kv_pipe/base.py
send_tensor
abstractmethod
¶
Send a tensor, or None, via the pipe.
Need to support sending None -- important for error handling.
TODO: add a key
argument so that we can use traditional
key-value database as the distributed communication mechanism behind
the pipe.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tensor
|
Optional[Tensor]
|
The tensor to be sent. Can be None. |
required |
Raises:
Type | Description |
---|---|
NotImplementedError
|
This method must be implemented in subclasses. |