如何在 Chrome 中试用 SIMD 指令?
How can I try out SIMD instructions in Chrome?
我想尝试 SIMD(单指令多数据)。根据我从 Google 组帖子中收集到的信息,人们一直在努力将其添加到 Google Chrome,但是当我尝试在 Chrome 中调用 SIMD.Float32x4
时46,我知道 SIMD 未定义。
我的谷歌搜索表明可能有一些 Chrome 的实验版本支持 SIMD。包含它的最新版本是什么?需要设置哪些命令行标志才能使用它?我需要使用严格模式吗?
何时将 SIMD 纳入稳定 Chrome 版本?
如果我 运行 Chrome 的 32 位版本或 64 位版本,运行 宁 SIMD 指令也有区别吗?
Chromium 中 SIMD 的范围似乎是 experimental contribution by Intel from 2013。
您可以在 special build of Chromium 37 (ia32). Source: IDF14 demo links 中试用。
试一试download the build for your platform and start with the command-line flag--js-flags=--simd-object
.
例如,在 OSX 上:
./Chromium.app/Contents/MacOS/Chromium --js-flags=--simd-object
SIMD
对象在 JavaScript 控制台中可用:
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)
我找不到有关合并意图的信息(但很想听听权威的消息)。
更新 (24/6/17): Chrome is dropping SIMD support in JS and only allowing it in WebAssembly.
更新:现在可以在最新版本的Chrome中使用标志:
--js-flags="--harmony-simd"
在 Chrome 快捷方式属性中(即在您的桌面上)"Target" 字段看起来像这样
"C:\Users\Pav\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --js-flags="--harmony-simd"
旧答案:
您可以在将它们添加到 Chrome(相同的 JavaScript 引擎)之前在 Node 中试用它们
的最新节点
运行 你的 JavaScript 作为 "node --harmony-simd index.js" (你的代码在 index.js)
使用 console.log('BANG') 或仅使用 log('TEST 2')[=15,就像在 Chrome 控制台中一样打印脚本的输出=]
选项 2
不是 Chrome 解决方案,但您可以在 Firefox 中使用 SIMD。
下载已集成 SIMD 的 Firefox Nightly。 SIMD 在浏览器之间几乎相同。
如果有人可以解释如何使用原生 SIMD(不是现在的 polyfill)支持构建最新的 Chromium,那就太好了。
我想尝试 SIMD(单指令多数据)。根据我从 Google 组帖子中收集到的信息,人们一直在努力将其添加到 Google Chrome,但是当我尝试在 Chrome 中调用 SIMD.Float32x4
时46,我知道 SIMD 未定义。
我的谷歌搜索表明可能有一些 Chrome 的实验版本支持 SIMD。包含它的最新版本是什么?需要设置哪些命令行标志才能使用它?我需要使用严格模式吗?
何时将 SIMD 纳入稳定 Chrome 版本?
如果我 运行 Chrome 的 32 位版本或 64 位版本,运行 宁 SIMD 指令也有区别吗?
Chromium 中 SIMD 的范围似乎是 experimental contribution by Intel from 2013。
您可以在 special build of Chromium 37 (ia32). Source: IDF14 demo links 中试用。
试一试download the build for your platform and start with the command-line flag--js-flags=--simd-object
.
例如,在 OSX 上:
./Chromium.app/Contents/MacOS/Chromium --js-flags=--simd-object
SIMD
对象在 JavaScript 控制台中可用:
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)
我找不到有关合并意图的信息(但很想听听权威的消息)。
更新 (24/6/17): Chrome is dropping SIMD support in JS and only allowing it in WebAssembly.
更新:现在可以在最新版本的Chrome中使用标志:
--js-flags="--harmony-simd"
在 Chrome 快捷方式属性中(即在您的桌面上)"Target" 字段看起来像这样
"C:\Users\Pav\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --js-flags="--harmony-simd"
旧答案:
您可以在将它们添加到 Chrome(相同的 JavaScript 引擎)之前在 Node 中试用它们
- 的最新节点
运行 你的 JavaScript 作为 "node --harmony-simd index.js" (你的代码在 index.js)
使用 console.log('BANG') 或仅使用 log('TEST 2')[=15,就像在 Chrome 控制台中一样打印脚本的输出=]
选项 2
不是 Chrome 解决方案,但您可以在 Firefox 中使用 SIMD。 下载已集成 SIMD 的 Firefox Nightly。 SIMD 在浏览器之间几乎相同。
如果有人可以解释如何使用原生 SIMD(不是现在的 polyfill)支持构建最新的 Chromium,那就太好了。