Files
2026-07-13 12:24:33 +08:00

62 lines
1.6 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# Third Party
import torch
# First Party
from lmcache.cli.commands.bench.l2_adapter_bench.data import (
create_l1_memory_desc,
make_aligned_tensor,
make_memory_objects,
)
def test_make_aligned_tensor_returns_aligned_buffer() -> None:
tensor = make_aligned_tensor(4096 * 3, align_bytes=4096)
assert tensor.numel() == 4096 * 3
assert tensor.dtype == torch.uint8
assert tensor.data_ptr() % 4096 == 0
def test_create_l1_memory_desc_uses_requested_alignment() -> None:
tensor = make_aligned_tensor(8192, align_bytes=4096)
desc = create_l1_memory_desc(tensor, align_bytes=4096)
assert desc.ptr == tensor.data_ptr()
assert desc.size == 8192
assert desc.align_bytes == 4096
def test_make_memory_objects_uses_shared_l1_range() -> None:
buffer = make_aligned_tensor(4096, align_bytes=1024)
objects = make_memory_objects(
buffer,
num_keys=2,
data_size=1024,
base_offset=1024,
)
assert len(objects) == 2
assert objects[0].raw_data.data_ptr() == buffer.data_ptr() + 1024
assert objects[1].raw_data.data_ptr() == buffer.data_ptr() + 2048
assert torch.all(objects[0].raw_data == 0)
assert torch.all(objects[1].raw_data == 1)
def test_make_memory_objects_can_use_different_fill_pattern() -> None:
buffer = make_aligned_tensor(2048, align_bytes=1024)
objects = make_memory_objects(
buffer,
num_keys=2,
data_size=1024,
base_offset=0,
fill_offset=1,
)
assert torch.all(objects[0].raw_data == 1)
assert torch.all(objects[1].raw_data == 2)