Pull to refresh

Comments 6

Compressing floating-point numbers quickly by converting them to brain floats — Не хватает памяти на большие объемы double-ов? Как насчет того, чтобы сжать их до 16 бит (bfloat16)?

Интересно было бы узнать, а для чего это может пригодиться. Гугловые bfloat-то использовались в нейронках и там в принципе не имело смысло использовать double из-за сходимости, что несколько ускоряло обучение, а вот чтобы имеющиеся double пожать - зачем?

Бывает, например, результаты 3D симуляции могут терабайты занимать.

Для научных и вероятно для инженерных симуляций обычно требуется некоторая заданная точность и сжимать данные с погрешностями кажется нельзя. Для развесовки нейронок как писал выше можно сразу использовать короткие флоты. А какие симуляции могут занимать столько места вне этих категорий пока не представляю.

Предположу, что есть случаи, когда допустима погрешность финального результата. Т.е. есть какие-то этапы или промежуточные расчеты, которые используют double для точности, но под конец приводятся в bfloat.

Там когда как. Я вот про симуляции слияний чёрных дыр и нейтронных звёзд знаю, что там каждый шаг хранить очень накладно, но и считать тоже, поэтому сохраняют в полной точности раз в N шагов, а промежуточные жмут для хранения до низкой.

А для java подобная статья имеется? Ну Или C#

Sign up to leave a comment.

Articles