Open jefffriesen opened 7 years ago
Thanks for the feedback and the questions.
I've done tests on a wide range of hardware. In every case I've tested so far, the GPU implementation used here outperforms an optimized javascript implementation.
Most modern consumer devices (including mobile devices) have, at the very least, some form of integrated GPU. While typically much less powerful than a dedicated unit, it usually gives a considerable speed increase.
Variability in a deployment environment is still a concern, however. I'd like to introduce a simple profiling system in the library that allows you, as a developer and user of the library, to get a single number representing the performance class of any individual user. This will help you make better decisions and help me more easily collect statistical information to answer this question in a general way.
This system, which will probably consist of a single function, is in the planning stages now.
I'm doing very computationally-heavy calculations in the browser for data visualizations. Fortunately, I'm using Electron (Chrome) so the browser features are a known entity. However, people will be installing this on lots of different desktop machines. If those machines don't have the right GPU support and/or slow GPUs, the interactions will fail because CPU fallback computations will be too slow.
Does Weblas run or run quickly on a majority of desktop computers? Or is there a lot of variability? Are there guidelines or checks to see if a GPU on a machine is capable of running Weblas fast?
I'm wondering if I should be thinking of this like the old days of wondering if browsers support a certain feature. Now we've got pretty good browser feature parity (especially with build tools) but as we push computation to the GPU how do we evaluation GPU support?
Thank you for building this library.