Size: a a a

WebAssembly — русскоговорящее сообщество

2021 February 17

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
а она при дефолтной компиляции или нужно явно включать?
Извиняюсь, я почему-то понял что это emscripten, позже уже перечитал что раст :(
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Постараюсь найти ответ :)
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
👍
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Можно довольно легко проверить - нужно сделать дамп текста модуля и поискать префиксы инструкций simd, например v128 или 32x4 и т.п.
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Векторизация в расте есть:
https://github.com/rust-lang/rust/issues/74372#issuecomment-753220727
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
да, хорошая идея, я посоветовал llvm бекенд проверить
Wasmtime поможет исключить баг в cranelift
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
там -C target-feature=+simd128 используется при компиляции
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
если его убрать, то векторизации нет
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
тут просто в другом чатике проблема, что FFT на js на порядок быстрее, чем на васмере
v8 для js не делает никакой векторизации, так что дело точно не в векторзации
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
я там плохо написал, это не js, а js, запускающий васм (
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
Можно довольно легко проверить - нужно сделать дамп текста модуля и поискать префиксы инструкций simd, например v128 или 32x4 и т.п.
На сколько я поню и недавно смотрел LLVM для msimd128 векторизирует только ну очень простые кейты вроде группировки четырех load / store в одну симд load / store команду. Но не более
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
я там плохо написал, это не js, а js, запускающий васм (
А, то есть v8 wasm vs cranelift wasm на одном и том же модуле
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
А, то есть v8 wasm vs cranelift wasm на одном и том же модуле
да
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
И этот wasm модуль использует simd?
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
не понятно
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
MaxGraey
На сколько я поню и недавно смотрел LLVM для msimd128 векторизирует только ну очень простые кейты вроде группировки четырех load / store в одну симд load / store команду. Но не более
Вполне возможно, над векторизатором надо работать
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
MaxGraey
И этот wasm модуль использует simd?
Должен бы, с SIMD скомпилирован :)
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
Petr Penzin
Должен бы, с SIMD скомпилирован :)
я так понял, он по дефолту всё-таки не включается?
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
там -C target-feature=+simd128 используется при компиляции
Я понял что это было использовано
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
там -C target-feature=+simd128 используется при компиляции
это по ссылке, которую ты скинул
источник