Sea*_*123 9 javascript vector simd matrix vectorization
我想用JavaScript编写需要大量数值计算的应用程序.但是,我对客户端JavaScript中有效的线性代数式计算的状态非常困惑.似乎有很多方法,但没有明确表明他们的准备情况.它们中的大多数似乎都限制了允许计算的向量和矩阵的大小.
显然允许GPU上的矢量和矩阵计算,但我不清楚其局限性.围绕此库尝试的 包装器似乎限制了矩阵和向量的大小.这是一个实际的限制(浏览器不支持其他任何东西)或只是开发限制(有人需要编写代码)?
WebCL是OpenCL的一个提议的浏览器级实现,但似乎停留在开发中.
Apple最近提出了一种名为WebGPU的 WebCL替代方案.到目前为止,有一个原型和演示,但我不清楚这是否会被广泛采用.
Mozilla已经推出了一个用于SIMD操作的API,但它只有实验支持.
JavaScript支持浏览器端的矢量化计算吗?
笔记:
我的问题不是"JavaScript中的数值计算有什么好的库",而是"JavaScrpt中的矢量化操作是否可行?" 可接受的答案将链接到在非实验性浏览器中工作的矢量化计算的演示.
我可能会对SIMD,矢量化和GPU计算感到困惑.我认为在这种情况下同义地使用它们是可以的,因为它们都允许通过使用专门的计算机硬件进行涉及高维向量的有效计算.
JavaScript 中 SIMD 的状态部分是一个实际问题和一个发展问题。
Web 浏览器有点像虚拟机。这意味着他们需要大量的硬件驱动程序。用于公开 WebGL 的少数着色器等的驱动程序与 SIMD 操作所需的任意内核执行有显着不同。
假设,人们可以通过包装 WebGL 使其成为通用 GPU 计算机,并且有人尝试使用gpgpu.js来实现。然而,它的支持很挑剔,并且可能比直接将内核通过管道传输到 GPU 慢。
网络还没有为 SIMD 做好准备。有不少大公司正在努力做好准备。在那之前,您将不得不依赖 WebWorkers 进行大批量的数值计算。