@
beginor 我看过 ollama 的源码了 他里面编译了 llama.cpp ,模拟了在不同设备上的部署
func InitScheduler(ctx context.Context) *Scheduler {
sched := &Scheduler{
pendingReqCh: make(chan *LlmRequest, envconfig.MaxQueuedRequests),
finishedReqCh: make(chan *LlmRequest, envconfig.MaxQueuedRequests),
expiredCh: make(chan *runnerRef, envconfig.MaxQueuedRequests),
unloadedCh: make(chan interface{}, envconfig.MaxQueuedRequests),
loaded: make(map[string]*runnerRef),
newServerFn: llm.NewLlamaServer,
getGpuFn: gpu.GetGPUInfo,
}
sched.loadFn = sched.load
return sched
}
都在 llm 包下 对于熟悉 golang 的这个框架有比较好的参考价值