I want to write applications in JavaScript that require a large amount of numerical computation. However, I'm very confused about the state of efficient linear-algebra-like computation in client-side JavaScript. There seems to be many approaches, but no clear indication of their readiness. Most of them seem to have restrictions of the size of vectors and matrices allowed for computation.
WebGL
Obviously allows for vector and matrix computations on the GPU, but I'm not clear on the limitations. Attempted wrappers around this library seem to limit size of matrices and vectors. Is this a practical limitation (browsers don't support anything else) or just a development limitation (someone need to write the code)?
WebCL
WebCL is a proposed browser-level implementation of OpenCL, but appears to be stuck in development.
WebGPU
Apple has recently put forth an alternative to WebCL called WebGPU. So far, there is a prototype and demos, but it's not clear to me if this will see wide adoption.
SIMD
Mozilla has put out an API for SIMD operations, but it only has experimental support.
Are vectorized computations on the browser-side supported by JavaScript?
Notes:
My question is not "What's a good library for numerical computation in JavaScript" but "Are vectorized operations possible in JavaScrpt?" An acceptable answer would link to a demo of vectorized computation working in a non-experimental browser.
I may be getting SIMD, vectorization and GPU computation confused. I thought it was okay to use them synonymously in this context, given that they all allow for efficient computations involving high-dimensional vectors by using specialized computer hardware.