Size: a a a

2021 September 16

A

Alex in Data Engineers
то есть выше было:
1. ошибка что сгенерированный метод больше 64кб, поэтому кодеген не будет работать
2. кодеген работает, но сгенерированный метод слишком большой, поэтому в интерпретируемом режиме в jvm будет выполняться, без jit
источник

NN

No Name in Data Engineers
Вот теперь вообще супердоступно, данке)
источник

N

Nikita Blagodarnyy in Data Engineers
А почему кодеген лучше?
источник

A

Alex in Data Engineers
потому что в случае скала кода зачастую приходится работать с десериализованным row
плюс так как методы вызываются из разных мест, то профиль выполнения грязный и весь инлайн идёт по одному месту
источник

AZ

Anton Zadorozhniy in Data Engineers
кодеген не лучше, просто остальное хуже
источник

A

Alex in Data Engineers
именно =)
источник

ИК

Иван Калининский... in Data Engineers
И в дополнение к ответам это видео)

https://youtu.be/ywPuZ_WrHT0
источник

AZ

Anton Zadorozhniy in Data Engineers
Catalyst это очень крутое техническое достижение конечно, жалко будет если забросят его
источник

N

Nikita Blagodarnyy in Data Engineers
сгенеренный кодегеном код получается умеет работать с сериализованными объектами?
источник

A

Alex in Data Engineers
да, это выше про проджект тангстен с сериализованном форматом и тд
источник

AZ

Anton Zadorozhniy in Data Engineers
видео не смотрел, но предсказываю что там пайплайнинг основные плюшки дает, можно вместо итераторов делать эффективно
источник

AZ

Anton Zadorozhniy in Data Engineers
практически вся современная оптимизация основана на том чтобы как можно быстрее подносить данные к процессору, держать максимум всего в регистрах и всякое такое
источник

AZ

Anton Zadorozhniy in Data Engineers
(собственно так эппловые армы рвут конкурентов, фиксированный размер команд и огромная ширина декодера, меньше простоя ALU, было смешно смотреть как до дебюта М1 люди спорили "полетит или не полетит")
источник

A

Alex in Data Engineers
ну там ещё и про то что от vulcane модели ушли когда постоянно getNext дёргали и добавили больше пониманий как данные лежат и векторизацию сверху
источник

AZ

Anton Zadorozhniy in Data Engineers
точн
источник

AZ

Anton Zadorozhniy in Data Engineers
переход от итерации к векторизации это самый низкий фрукт обычно, когда дело касается таких батчей
источник

ИК

Иван Калининский... in Data Engineers
ещё low braching нужен, меньше if then, тогда и итератор неплохо работает
источник

ИК

Иван Калининский... in Data Engineers
и вообще, что там с SIMD в JVM? кто слышал?
источник

AZ

Anton Zadorozhniy in Data Engineers
ну эт само собой, тут еще и меньше утилизация ROB, без бранчинга оно вообще работает с теоретической производительностью)
источник

AZ

Anton Zadorozhniy in Data Engineers
вчера обсуждали, новая итерация вектора в 17ом завезли, пока инкубатор, с офхипом не работает
источник