我想用 JavaScript 编写需要大量数值计算的应用程序。然而,我对客户端 JavaScript 中类似线性代数的高效计算的状态感到非常困惑。似乎有很多方法,但没有明确表明它们已准备就绪。其中大多数似乎对允许计算的向量和矩阵的大小有限制。
WebGL
显然允许在 GPU 上进行向量和矩阵计算,但我不清楚其限制。尝试过 http://glmatrix.net/ wrappers https://github.com/stormcolor/webclgl这个库周围似乎限制了矩阵和向量的大小。这是一个实际限制(浏览器不支持其他任何内容)还是只是一个开发限制(需要有人编写代码)?
WebCL
WebCL https://jp.khronos.org/webcl/是建议的 OpenCL 浏览器级实现,但是似乎陷入了发展困境 https://stackoverflow.com/q/37882657/1079075.
WebGPU
Apple 最近推出了 WebCL 的替代方案,称为WebGPU https://webkit.org/blog/7504/webgpu-prototype-and-demos/。到目前为止,已经有一个原型和演示,但我不清楚这是否会得到广泛采用。
SIMD
莫斯拉有推出用于 SIMD 操作的 API https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SIMD,但只有实验支持。
JavaScript 支持浏览器端的矢量化计算吗?
Notes:
SIMD.js https://developer.mozilla.org/en-US/docs/Glossary/SIMD是 JavaScript 的一部分。 Firefox 和 Chrome 中也有实验性的实现,但现在SIMD.js https://developer.mozilla.org/en-US/docs/Glossary/SIMD已从 TC39 的积极开发中删除,并从第 3 阶段删除。Web 浏览器不再追求它的实现。暴露于网络的 SIMD 操作正在积极开发中网络组装 https://github.com/WebAssembly/simd,具有基于 SIMD.js 操作的操作。
WebAssembly SIMD 状态
- 铬合金 :开发中 https://www.chromestatus.com/feature/6533147810332672
- 火狐:开发中 https://bugs.webkit.org/show_bug.cgi?id=222382
- 边缘 :开发中 https://github.com/Microsoft/ChakraCore/pull/3746
- Safari:没有公共信号
LLVM Wasm 后端和 Web 引擎中 SIMD 的状态:
提案:实施情况 https://github.com/WebAssembly/simd/blob/master/proposals/simd/ImplementationStatus.md
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)