如何在 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 中试用它们

  1. 安装来自 https://nodejs.org/en/

  2. 的最新节点
  3. 运行 你的 JavaScript 作为 "node --harmony-simd index.js" (你的代码在 index.js)

  4. 使用 console.log('BANG') 或仅使用 log('TEST 2')[=15,就像在 Chrome 控制台中一样打印脚本的输出=]

选项 2

不是 Chrome 解决方案,但您可以在 Firefox 中使用 SIMD。 下载已集成 SIMD 的 Firefox Nightly。 SIMD 在浏览器之间几乎相同。

https://nightly.mozilla.org/

如果有人可以解释如何使用原生 SIMD(不是现在的 polyfill)支持构建最新的 Chromium,那就太好了。