@@ -111,8 +111,15 @@ def handle_tensor(
111111 strides .append (block_stride )
112112 tensor_size = math .prod ([t .shape [i ] for i in size_dims ]) * t .element_size ()
113113 # GPU buffer sizes for GPUDirect RDMA registration in store.
114- # Total buffer size = number of blocks (shape[0]) × bytes per block stride.
115- buffer_sizes .append (int (t .shape [0 ]) * block_stride )
114+ # Total buffer size = number of blocks (shape[0]) times bytes per block stride.
115+ buffer_size = int (t .shape [0 ]) * int (block_stride )
116+ if buffer_size > np .iinfo (np .uint64 ).max :
117+ raise OverflowError (
118+ "GPU KV buffer size exceeds uint64: "
119+ f"blocks={ int (t .shape [0 ])} , block_stride={ block_stride } , "
120+ f"size={ buffer_size } , max={ np .iinfo (np .uint64 ).max } "
121+ )
122+ buffer_sizes .append (buffer_size )
116123 token_dim = 1
117124 tensor_block_size = int (t .shape [token_dim ])
118125 tensor_token_strides .append (t .stride (token_dim ) * t .element_size ())
@@ -780,9 +787,9 @@ def _gpu_kv_buffer_config(
780787 key = (addr , size )
781788 if key in gpu_kv_buffer_set :
782789 continue
783- gpu_kv_buffer_set .add (key )
784- gpu_kv_buffer_addrs .append (key [ 0 ] )
785- gpu_kv_buffer_sizes .append (key [ 1 ] )
790+ gpu_kv_buffer_set .add (( addr , size ) )
791+ gpu_kv_buffer_addrs .append (addr )
792+ gpu_kv_buffer_sizes .append (size )
786793 return gpu_kv_buffer_addrs , gpu_kv_buffer_sizes
787794
788795 @fawa_latency_metric (
0 commit comments