TGViewer
Чайник из Юты Чайник из Юты @irrationalthings · 121 subscribers
Post #619 193
Считаем такты, или почему иногда стоит задумываться при переносе выражений в код.

Конкретнее, интересна строчка с объявлением combinedInvMass. В ней мы складываем два обёрнутых значения. 1 операция сложения и 2 операции деления. Если немного переписать выражение, то получим a+b / ab (где a, b - массы). 1 сложение, 1 умножение и 1 деление - в сумме операций остаётся всё так же три, но теперь на одно деление меньше. И в горячем пути (а он прям раскалённый) это даст нихуя себе выигрыш!

Стоимость деления в процессорах традиционно кратно выше стоимости умножения, в масштабах примерно 20-40 против 1-7 тактов соответственно (ну примерно). Просто потому, что умножать и само по себе проще, так ещё и легче по АЛУ раскидать, чтобы за такт несколько штук параллельно молотить - это, кстати, и есть то самое спекулятивное выполнение, о котором все говорят. Однопоточный код всё ещё прекрасно параллелится в транзисторах:)

Меньше делите — меньше энтропия расти будет. Ощасливьте котят!
  • 👍 2
  • 🔥 1
  • 🥰 1
More from @irrationalthings
  1. Sep 21, 2026я хрюкнул
  2. Sep 21, 2026гемини
  3. Sep 15, 2026Тот факт, что между нейронками и компрессорами больше общего, чем может показаться - забав…
  4. Sep 15, 2026"Low-Resource" Text Classification: A Parameter-Free Classification Method with Compressor…
  5. Sep 15, 2026Конечно, они сравнивали со средненькими классифицирующими моделями. Там есть пространство…
  6. Sep 15, 2026GZIP наносит ответный удар Вот мы хотим классифицировать текст. Классическая задача для ML…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →