24|端侧模型下的JavaScript的性能局限如何解决?
柳博文

你好,我是柳博文,欢迎和我一起学习前端工程师的 AI 实战课。
前面的课程里,我们在端侧使用 JavaScript 尝试过不少模型预测任务,即便这些任务计算量都比较小,我们仍然能切身体会到 JavaScript 执行矩阵运算等任务时的局限。
讲到 JavaScript 的性能,肯定离不开 V8 引擎。对于 JavaScript 这门极度依赖宿主环境的脚本语言,我相信包括我在内的所有前端工程师追求的极致目标,就是高性能地执行 JavaScript。
那么,今天,我们就来讨论一下端侧模型下的 JavaScript 的性能局限到底在哪里,以及有哪些方法可以改善其端侧模型下的性能。
端侧模型下 JavaScript 的局限
想要提升性能,我想我们需要首先弄清楚两个问题,一是了解矩阵运算对硬件的要求,二是 V8 执行 JavaScript 的方式。
这里我们重点聊一下为什么我们需要使用 GPU 为第一选择来训练模型,而 CPU 只是备选。这就需要我们对比一下 GPU 和 CPU 的架构设计和运行方式。
CPU 和 GPU 对比
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. JavaScript在端侧模型下的性能局限主要源于矩阵运算对硬件的要求以及V8执行JavaScript的方式。 2. GPU相比CPU更适合处理大规模并行计算任务,因此在模型推理相关的运算中,调用GPU可以提升性能。 3. 浏览器的V8在执行JavaScript时主要使用CPU进行计算,只有在最后完成位图的生成时才调用GPU进行图像生成。 4. 优化方向包括引入GPU帮忙处理模型推理任务、分担浏览器V8主线程压力以及简化V8执行JavaScript的步骤。 5. Web Worker技术可以通过在浏览器中创建后台线程,将模型推理任务分配到Worker线程中执行,从而避免长时间任务阻塞用户界面,提升主线程的响应性能。 6. WebAssembly(WASM)提供了一种在网页上运行高性能应用程序的方式,通过将高级语言编译成浏览器可以直接执行的字节码,可以加速端侧模型的推理任务。 7. WASM支持将其他高级语言编写的代码编译成为V8能够执行的字节码,从而减少执行时间,提升性能。 8. GPU.js是一个基于WebGL的JavaScript库,可以将JavaScript代码编译为WebGL着色器,并在GPU上运行,从而加速端侧计算任务。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《前端工程师的 AI 实战课》,新⼈⾸单¥59
《前端工程师的 AI 实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论