gizai:host
the one host of a model served as giz's inference worker (gizlang:worker). A worker is its models, a load that makes its engine warm on a GPU, and an executor of jobs (W.Executor) on that engine. The host owns the rest: the GPU, the kernels' tunings in STATE/tune (loaded before the load, saved after it and after each job), the pool given back after each job with the job's peak in the journal (the card is shared), the id giz names the model by, and the ffmpeg program that reads and writes the jobs' media.
import * as Host from "gizai:host";Types
Place
type Place = { state: string; host: string; port: i64; id: string; ffmpeg: string; }Where a worker serves: its jobs' folder, its address, the id giz names its first model by ("" or the model's own: the model's), and the program that reads and writes media.
state:stringhost:stringport:i64id:stringffmpeg:string
Host
type Host = { sys: System; gpu: Gpu; place: Place; }What a worker's engine is given: the program it runs in, its GPU, and its place.
sys:gizlang_system.Systemgpu:M10.Gpuplace:M28.Place
Functions
serve
function serve<M>(sys: System, name: string, place: Place, models: Vec<W.Model>, capacity: i64, streams: Vec<string>, load: (h: Host) => Result<M, string>, jobs: (h: Host) => W.Executor<M>): i64 throws stringServes models (the first under place.id too) at place: load makes the engine on the host's GPU, warm, and the
executor that jobs gives runs the jobs on it, capacity held at once (streams: Config.streams). It returns when
the worker stops.