Size: a a a

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

2020 October 27

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Богдан
Народ как думаете может ли человек который разбирается в исходниках v8 написать на js код который будет выполняться быстрее чем вариант на wasm-е? Вот например simd только недавно добавили (но похоже до сих пор под флагом а про файрфокс и сафари не слышно) хотя разговоры про simd в wasm идут лет 5 не меньше а добавили только 128-битный simd и появляется вопрос сколько еще лет ждать 256 бит и avx512 ? В то же время jit-движку v8 доступны все последние инструации процессора и он вполне может вектозировать циклы js используя например тот же avx512. Вот например встретил такой тред - https://stackoverflow.com/questions/63864497/is-there-anyway-to-get-node-js-and-v8-to-automatically-vectorize-simple-loops  Кто-нибудь в курсе как обстоят дела с векторизацией js в v8 ?
v8 не умеет векторизировать) Более того даже GCC и LLVM могут в автовекторизацию весьма ограниченно и в основном только после раскрутки циклов. Идеально написанный мономорфный JS все равно будет проигрывать wasm потому что у wasm есть i64/u64 да и вообще целые числа. LLVM / Binaryen могут себе позволить намного больше времени тратить на оптимизации чем v8. Кроме того vm для wasm все еще не раскрыли полностью свой потенциал даже без simd и потоков. отсюда вывод - wasm будет всегда быстрее JS (что с simd что без него) если не брать во внимание интероп. Да, еще не забываем про multi-values и tail-calls. Но сейчас самое узкое горлышко это интероп между wasm и js.
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
MaxGraey
v8 не умеет векторизировать) Более того даже GCC и LLVM могут в автовекторизацию весьма ограниченно и в основном только после раскрутки циклов. Идеально написанный мономорфный JS все равно будет проигрывать wasm потому что у wasm есть i64/u64 да и вообще целые числа. LLVM / Binaryen могут себе позволить намного больше времени тратить на оптимизации чем v8. Кроме того vm для wasm все еще не раскрыли полностью свой потенциал даже без simd и потоков. отсюда вывод - wasm будет всегда быстрее JS (что с simd что без него) если не брать во внимание интероп. Да, еще не забываем про multi-values и tail-calls. Но сейчас самое узкое горлышко это интероп между wasm и js.
Странно я почему-то думал что v8 умеет векторизировать циклы так как сам неоднократо встречал всякие vaddsd и vmovsd инструкции когда смотрел что выдает компилятор
источник

VE

Vyacheslav Egorov in WebAssembly — русскоговорящее сообщество
s как бы намекает что это вовсе даже не вектор :)
источник

VE

Vyacheslav Egorov in WebAssembly — русскоговорящее сообщество
А совсем как бы скаляр
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Богдан
Странно я почему-то думал что v8 умеет векторизировать циклы так как сам неоднократо встречал всякие vaddsd и vmovsd инструкции когда смотрел что выдает компилятор
vaddsd это скалярная AVX операция (не векторная). Для всей плавающей арифметики уже давно используются скалярные SSE/AVX команды вместо FPU x87
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
MaxGraey
vaddsd это скалярная AVX операция (не векторная). Для всей плавающей арифметики уже давно используются скалярные SSE/AVX команды вместо FPU x87
ок, буду знать, спасибо) Я как-то давно смотрел всякие доклады по процессорным оптимизациям и там в одном показывался дамп java-кода в ассемблер где простой цикл по массиву успешно векторизировался и я почему-то думал что v8 умеет делать то же самое
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
@dontleavetheroom можешь пингануть Сируса что бы он обновил плагин vscode-wasm? Уже pr смерджен был давным давно еще в сентябре, там я внес довольно много исправлений и просил несколько раз Сируса бампнуть плагин, но он игнорирует
источник

JD

John Doe in WebAssembly — русскоговорящее сообщество
MaxGraey
@dontleavetheroom можешь пингануть Сируса что бы он обновил плагин vscode-wasm? Уже pr смерджен был давным давно еще в сентябре, там я внес довольно много исправлений и просил несколько раз Сируса бампнуть плагин, но он игнорирует
Дак и у меня с ним связь только по почте
источник

JD

John Doe in WebAssembly — русскоговорящее сообщество
MaxGraey
@dontleavetheroom можешь пингануть Сируса что бы он обновил плагин vscode-wasm? Уже pr смерджен был давным давно еще в сентябре, там я внес довольно много исправлений и просил несколько раз Сируса бампнуть плагин, но он игнорирует
Ты ж его как-то призвал чтоб pr разгрести
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
John Doe
Ты ж его как-то призвал чтоб pr разгрести
Я думал это ты поспособствовал)
источник

JD

John Doe in WebAssembly — русскоговорящее сообщество
Ну может он наш диалог прочитал или увидел, хз
источник
2020 October 28

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Поясните за wamp. Я как понял это от wasmerio, как именно он собирает разные васмы в проект?
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
А что будет если два .wasm скомпилить в .wat, сконкатенировать функции и перекомилить назад в .wasm? Там же таблица функций просто внутри.
источник

К

Константин in WebAssembly — русскоговорящее сообщество
А если у тебя глобали?
Те глобальные переменные.
Или названия классов/методов совпадает.
Нужны неймспейсы, чтобы коллизии не словить
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Да, но неймспейсы должны разрешаться не программистом а сборщиком. В главном файле имена не должны меняться, а в зависимостях можно делать приставки с номером зависимости.
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
https://bytecodealliance.org/articles/1-year-update
а вообще информация здесь, кстати, означает, что wasmer будет ещё сложнее конкурировать с wasmtime
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
если wasmtime будет поддерживать те же языки + IT, то у wasmer не останется преимуществ, имхо
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
очень круто сделали ИМХО
источник