如何通过JS代码检测浏览器是否支持SIMD?

时间:2020-05-12 06:17:39

标签: javascript google-chrome simd webassembly

我找到了一种检测方法,但是使用最新的chrome启用simd标志后,它无法在我的计算机上运行:

var simd =  async () => WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 9, 1, 7, 0, 65, 0, 253, 4, 26, 11]));
await simd();

还有另一种检测方法吗?

1 个答案:

答案 0 :(得分:3)

这里有一个用于wasm功能检测的开源库:

https://github.com/GoogleChromeLabs/wasm-feature-detect

它的工作方式是尝试实例化具有给定功能的wasm模块,并在出现错误时捕获错误(这表明不支持该功能)。

这是它尝试创建的SIMD模块:

https://github.com/GoogleChromeLabs/wasm-feature-detect/blob/master/src/detectors/simd/module.wat