Как я могу проверить инструкции SIMD в Chrome?
Я бы хотел поэкспериментировать с SIMD (множественные данные с одной инструкцией). Из того, что я могу почерпнуть из сообщений Google Group, люди работали над тем, чтобы добавить это в Google Chrome, но когда я пытаюсь позвонить SIMD.Float32x4
в Chrome 46, я получаю, что SIMD - это undefined.
Мой поисковик предполагает, что могут быть некоторые экспериментальные версии Chrome, поддерживающие SIMD. Какова самая новая версия, которая включает ее, и какие флаги командной строки должны быть установлены для ее использования? Нужно ли использовать строгий режим?
Когда SIMD будет свернут в стабильную сборку Chrome?
Также имеет ли смысл работать с инструкциями SIMD, если я запускаю 32-разрядную версию Chrome или 64-битную версию?
Ответы
Ответ 1
Обновление (24/6/17): Chrome отбрасывает поддержку SIMD в JS и разрешает это в WebAssembly.
Обновление: Теперь это возможно в последней версии Chrome с флагом:
--js-flags="--harmony-simd"
В свойствах ярлыка Chrome (т.е. на рабочем столе) поле "Target" будет выглядеть примерно так:
"C:\Users\Pav\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --js-flags="--harmony-simd"
Старый ответ:
Вы можете попробовать их в Node, прежде чем они будут добавлены в Chrome (тот же механизм JavaScript)
-
Установите последнюю версию Node из https://nodejs.org/en/
-
Запустите JavaScript как "node --harmony-simd index.js" (ваш код в index.js)
-
Распечатайте вывод из своего script, как в консоли Chrome, используя console.log( "BANG" ) или просто журнал ( "TEST 2" )
Вариант 2
Не Chrome, но вы можете использовать SIMD в Firefox.
Загрузите Firefox Ночной, у которого SIMD уже интегрирован. SIMD почти идентичен между браузерами.
https://nightly.mozilla.org/
Если кто-то может объяснить, как построить последний Chromium с родным SIMD (а не polyfill как он сейчас), это будет здорово.
Ответ 2
Похоже, что степень SIMD в Chromium - это экспериментальный вклад Intel от 2013 года.
Вы можете попробовать его в специальной сборке Chromium 37 (ia32). Источник: демонстрационные ссылки IDF14.
Попробуйте загрузить сборку для вашей платформы и начать с флаг командной строки --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)
Я не мог найти никакой информации о намерении объединиться (но хотел бы услышать что-то авторитетное).