一、进程、线程与协程
1.并发与并行
- 并发:假的多任务,多个任务共用一个核,轮流占用时间片
- 并行:真的多任务,多个核同时执行多个任务
在上一篇《启用 WebGPU 加速 Web 端模型推理》中提到“可以将 tensorflow.js 和现代化的前端框架结合”,基于这个想法,我继续展开迭代,将代码迁移到 Next.js 14 框架中,并针对模型在浏览器端遇到的一些加载和推理问题,进行了一番优化,整个过程大致包含如下步骤:
在上一篇《基于ONNX的Web端YOLOv8模型部署与推理》的最后,我写了一些改进措施,其中有提到“调用端侧设备的GPU资源,来加速浏览器中模型的推理”,之后自己就一直在思考和尝试这方面的技术方案。本文描述了基于tensorflow.js的代码实现,通过在端侧(PC、mobile)浏览器中启用WebGPU backend,达到了模型推理速度的显著提升。
之前的一些实验,主要集中在模型的搭建、训练和调优上,没有涉及部署的环节,所以这次尝试将模型部署到端侧设备(浏览器),来熟悉一下部署的流程。
前端是一个追求美的行当:漂亮的交互、丰富的特效、灵活多变的呈现形态,似乎总是能很好得迎合用户的喜欢和口味。但凡事都有两面性,追求美往往是有代价的。
1 | export const DEFAULT_OPTIONS = { reconnectionAttempts: 10, transports: ["websocket"] }; |