Size: a a a

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

2020 May 29

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
Мы кстати ищем алгоритмы для тестирования wasm-simd и будущего векторного расширения
Вот кстати хороший алгоритм для обкатки недавно влитой в спеку movemask:
https://www.dmi.unict.it/~faro/smart/algorithms.php?algorithm=SSEF&code=ssef
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Это быстрый поиск подстроки в строке
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
И там _mm_movemask_epi8 как раз самая тяжелай в плане эмуляции на ARM
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Блин контрибутить в Binaryen конечно намного сложнее) Но фаззинг конечно крутая штука - иногда находит баги даже не относящиеся к твоему PR
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
MaxGraey
И там _mm_movemask_epi8 как раз самая тяжелай в плане эмуляции на ARM
То что маски не очень пойдут на arm было известно, Арсений с этим ходил в CG даже
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Для х86 тяжёлая инструкция - swizzle
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Там примерно та же история, но наоборот
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
То что маски не очень пойдут на arm было известно, Арсений с этим ходил в CG даже
Это да. Там вообще все это долгое время висело без подвижек, пока я не предложил полифиллы для ARM и как выяснилось не так уж все и страшно
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Собственно бенчмарки показали что так оно и было с практической точки зрения
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
Для х86 тяжёлая инструкция - swizzle
Кстати не знаешь где swizzle активно используют?
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
В meshoptimizer :)
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
В общем для динамической перестановки
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Проблема в том что в ней можно использовать индексы больше 15, что бы получить на выходе 0 - это затратно на х86
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
спасибо!
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Кстати wasmtime теперь имеет туториал и оффициальную поддержку AssemblyScript (в принципе он и так умел, но там были шероховатости):
https://github.com/bytecodealliance/wasmtime/blob/master/docs/wasm-assemblyscript.md
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
👍
источник
2020 May 30

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Кстати есть и недовольные fixed SIMD пропозалом:
https://twitter.com/richgel999/status/1266393498636476419
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
MaxGraey
Вот кстати хороший алгоритм для обкатки недавно влитой в спеку movemask:
https://www.dmi.unict.it/~faro/smart/algorithms.php?algorithm=SSEF&code=ssef
Для К-СВД надо несколько свёрток параллельно (без СИМД будет медленно)
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Petr Penzin
Я могу с этим помочь - надо просто знать какие алгоритмы нужны
Я думал что то вроде https://www.mathworks.com/help/signal/ug/find-peaks-in-data.html для начала будет интересно
источник