我想尝试SIMD(单指令多数据)。根据Google Group发布的内容,人们一直在努力将其添加到Google Chrome中,但当我尝试在Chrome 46中调用SIMD.Float32x4
时,我认为SIMD未定义。
我的谷歌搜索表明可能有一些Chrome的实验版本具有SIMD支持。什么是包含它的最新版本以及需要设置哪些命令行标志才能使用它?我需要使用严格模式吗?
什么时候SIMD会进入稳定的Chrome版本?
如果运行32位版本的Chrome或64位版本,运行SIMD指令也会有所不同吗?
答案 0 :(得分:10)
更新(24/6/17): Chrome is dropping SIMD support在JS中,只允许它in WebAssembly。
更新:现在可以在最新版本的Chrome中使用标记:
--js-flags="--harmony-simd"
在Chrome快捷方式属性中(例如桌面上)"目标"字段看起来像这样
"C:\Users\Pav\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --js-flags="--harmony-simd"
旧回答:
您可以在Node中尝试将它们添加到Chrome(相同的JavaScript引擎)
运行您的JavaScript作为" node --harmony-simd index.js" (您在index.js中的代码)
使用console.log(' BANG')或仅记录(' TEST 2')
选项2
不是Chrome解决方案,但您可以在Firefox中使用SIMD。 下载已经集成了SIMD的Firefox Nightly 。 SIMD在浏览器之间几乎完全相同。
如果有人能够解释如何使用原生SIMD构建最新的Chromium(现在不是polyfill)支持那么好。
答案 1 :(得分:1)
似乎Chromium中SIMD的范围是experimental contribution by Intel from 2013。
您可以在special build of Chromium 37(ia32)中试用。来源:IDF14 demo links。
要试用download the build for your platform并从command-line flag --js-flags=--simd-object
开始。
例如,在OSX上:
./Chromium.app/Contents/MacOS/Chromium --js-flags=--simd-object
JavaScript控制台中提供了SIMD
对象:
var a = SIMD.float32x4(1, 2, 3, 4);
var b = SIMD.float32x4(5, 6, 7, 8);
var c = SIMD.float32x4.add(a,b);
console.log(c.toString())
// > float32x4(6,8,10,12)
我找不到有关合并意图的信息(但希望听到一些权威的信息)。