Size: a a a

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

2021 September 22

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
да, но сколько раз? Это должно же зависеть от глубины пайплайна, размера кэша и т.п.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну да. Там по-моему всегда в 4 раза.  Сейчас гляну
источник

M

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

PP

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

M

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Может ты им хоть подскажешь как правильно?
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
круто. Я понимаю когда это для векторизации делается - тогда есть надежда что придёт векторизатор и всё исправит...
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
можно блок в 50 инструкций реплицировать? Интересно
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Надо подумать -  я не помню знает ли V8 размер кэша
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну получить размер кеш линии не проблема же ни в linux ни в win
источник

PP

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

AP

Andrey Pechkurov in WebAssembly — русскоговорящее сообщество
Размер кеш линии на 99% современных процессоров равен 64 байта
источник

AP

Andrey Pechkurov in WebAssembly — русскоговорящее сообщество
Loop unrolling полезен, когда нет data dependency. Но если компилятор его всегда использует, это странно. В issue внимательно не смотрел, если что
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Некоторые ARM чипы имею 128 байт. Но так же очень важно выравнивание кода что бы он хорошо укладывался в 32 байта (половина от 64-байт) кеш для инструкций.
источник

AP

Andrey Pechkurov in WebAssembly — русскоговорящее сообщество
Точно 32 байта, а не килобайта? У современных x86 процессоров L1 instruction cache несколько килобайтов
источник

DI

Dmitry Ilyin in WebAssembly — русскоговорящее сообщество
вы путаете кэш с кэш-линией
источник

AP

Andrey Pechkurov in WebAssembly — русскоговорящее сообщество
Кто путает? Линия кеша для инструкций тоже как правило 64 байта
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
линия кеша делиться на две части - одна для данных, вторая - для инструкций. Каждая по 32 байта. Поэтому важно выравнивать блоки инструкций по границе 32 байта при разматывании цикла
источник

AP

Andrey Pechkurov in WebAssembly — русскоговорящее сообщество
Интересно. Это конкретно на ARMах? Где можно про это почитать?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Можно почитать спеки для разных моделей. В линухе например вручную патчат такие кейсы
https://patchwork.kernel.org/project/linux-arm-kernel/patch/1450570278-19404-1-git-send-email-apinski@cavium.com/
источник