Doc and type `skynet.dgpu` pkg mod

pull/48/merge
Tyler Goodlet 2025-01-30 15:29:56 -05:00
parent 2e50b1a542
commit c0ac6298a9
1 changed files with 15 additions and 6 deletions

21
skynet/dgpu/__init__.py 100644 → 100755
View File

@ -4,27 +4,36 @@ import trio
from hypercorn.config import Config
from hypercorn.trio import serve
from quart_trio import QuartTrio as Quart
from skynet.dgpu.compute import SkynetMM
from skynet.dgpu.daemon import SkynetDGPUDaemon
from skynet.dgpu.network import SkynetGPUConnector
async def open_dgpu_node(config: dict):
async def open_dgpu_node(config: dict) -> None:
'''
Open a top level "GPU mgmt daemon", keep the
`SkynetDGPUDaemon._snap: dict[str, list|dict]` table and *maybe*
serve a `hypercorn` web API.
'''
conn = SkynetGPUConnector(config)
mm = SkynetMM(config)
daemon = SkynetDGPUDaemon(mm, conn, config)
api = None
api: Quart|None = None
if 'api_bind' in config:
api_conf = Config()
api_conf.bind = [config['api_bind']]
api = await daemon.generate_api()
api: Quart = await daemon.generate_api()
async with trio.open_nursery() as n:
n.start_soon(daemon.snap_updater_task)
tn: trio.Nursery
async with trio.open_nursery() as tn:
tn.start_soon(daemon.snap_updater_task)
if api:
n.start_soon(serve, api, api_conf)
tn.start_soon(serve, api, api_conf)
# block until cancelled
await daemon.serve_forever()