LINUX.ORG.RU
ФорумTalks

WebAssembly performance, вторая попытка

 ,


1

5

https://github.com/puzrin/convolve-wasm/tree/32bit

Поразбирался еще немного, какой можно получить профит от WebAssembly на числодробилках. Для примера была взята ресайзилка картинок, где гоняются конвольверы. Код из предыдущего топика был сильно почищен, и добавлен вариант с выборкой пикселей как 32-битных чисел, вместо 4 раз по 1 байту.

Получилось так:

1. В фаерфоксе скорость почти прежняя. 300мс на жабаскрипте, 250мс на wasm.
2. В хроме стало меньше тупить. 300мс на яваскрипте, 270мс на wasm.

Мало. Грустно. А самое странное, почему сокращение операций с памятью почти не дало профита? По ссылке ассемблерный код, который генерит FF из wasm (прогнал через webassembly explorer):

https://gist.github.com/puzrin/fb8ed64a9f3473b86334f798eabf2de0

Что еще можно подкрутить? Идеи кончились.

★★★★★

Последнее исправление: Vit (всего исправлений: 1)

А потребление памяти можешь замерять?

Inshallah
()

А ты на 146% уверен что операций меньше? А то реализация может ппц горячая быть, да и jit всё-таки

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

Ты о чем? Это webassembly, там не jit. Сравнивал 32-битный вариант, и 8-битный. Через WA Explorer можно посмотреть что генерит фаерфокс.

Vit ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

У меня 3 варианта. Яваскрипт, и 2 wasm. То что wasm, сделанный «в лоб», не дает профита, я смирился. Есть вопрос, почему от оптимизированного толку тоже не много.

Код там простой, крутить особо нечего.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Код там простой, крутить особо нечего.

Попробуй сложный вкачать. Как сказал в рассылке один чел работающий на llvm под x86 - задача сделать хорошую производительность во всех случаях, а не идеальную в простых и хреновую в сложных.

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

Давай без советов из серии «надо попробовать написать лучше». Посмотри исходники хотя бы.

Vit ★★★★★
() автор топика

Темой не интересовался, поэтому: а у других на просторах интернета что получается?

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Другие подобным не заморачиваются. Они doom конпелят под браузер и т.п.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

почему от оптимизированного толку тоже не много.

холивар уровня "-о3 или ассеблер?".

Rastafarra ★★★★
()

1. В фаерфоксе скорость почти прежняя. 300мс на жабаскрипте, 250мс на wasm.
2. В хроме стало меньше тупить. 300мс на яваскрипте, 270мс на wasm.

вааще не распарсил. в огнелисе 250 от 300 - прежняя, в хромом - 270 от 300 и меньше тупит?

ananas ★★★★★
()
Ответ на: комментарий от ananas

Уточни вопрос.

На яваскрипте ~300мс при побайтовом чтении пикселей. На wasm быстрее всего лишь на 15-20%. Попытки оптимизировать работу с памятью погоды почему-то не делают.

Vit ★★★★★
() автор топика

А если взять твой сишный код и запустить без браузера (просто как нативный бинарик), сколько получится?

h31 ★★★★
()
Ответ на: комментарий от h31

Ну типа лениво и гиморно, да.

Но вроде как есть правдоподобный ассемблерный дамп. Может там видно что-то подозрительное? Мне уже примелькалось.

Vit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.