File size: 1,066 Bytes
20857b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from mediatok.container.gtkv import GtkvReader
from mediatok.runtime.scheduler import TokenScheduler
from mediatok.runtime.mapper import MemoryMapper
from mediatok.runtime.streamer import GPUStreamer
from mediatok.runtime.cache import TokenCache
from mediatok.runtime.prefetch import PrefetchEngine


class RuntimeEngine:
    """Top-level orchestrator for the GigaToken Runtime.

    Wires together the memory mapper, token scheduler, GPU streamer,
    cache, and prefetch engine into a unified playback/generation interface.
    """
    def __init__(self, path: str, device: str = "cpu"):
        self.mapper = MemoryMapper(path)
        self.reader = GtkvReader(path)
        self.scheduler = TokenScheduler()
        self.streamer = GPUStreamer(device=device)
        self.cache = TokenCache()
        self.prefetch = PrefetchEngine()
        self._device = device

    def open(self):
        self.mapper.open()

    def close(self):
        self.mapper.close()
        self.reader.close()

    @property
    def device(self) -> str:
        return self._device