Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

а на деле - и vm и скомпилить и докер запустить.

На айпадах с м чипами идёт Virtualization.framework, так что установив дополнительно линукс можно закрыть специфические задачи под которые нужна производительность.

может он говорит про условие `if (spawnAtTheLeftEdge)`

его можно заменить на

```

sign = spawnAtTheLeftEdge - 1 | 1

```

и в тело добавить умножение на sign, это уберет условие.

Последний пункт особенно важен. Почему? А потому что OpenBLAS - это монстр, состоящий из ассемблерного кода, который годами оптимизировали красноглазые гении в подвалах под каждую существующую микроархитектуру Intel, в то время как программа на Mojo - это пара сотен строк условно-платформонезависимого питоноподобного кода, что очень впечатляет.

А кто тогда MKL оптимизировал? Он то побыстрей будет.

Плюс OpenBLAS в том, что вендор его может замокать (например как это делает Apple).

Так что пока, Mojo смешно смотрится.

Мы говорим про zero-cost, это означает что для оптимизатора не должно быть разницы использовали ли мы абстракцию или нет.

При чём тут ускорение при добавление вызова .len() если разговор идёт об информации которая есть у оптимизатора (на проходах в которых она нужна) при использовании абстракций?

Например len не особо юзается в стандартной библиотеке, а вместо неё используется макрос, т.к. в определённых кейсах оптимизатор не может доказать что 2 вызова len ссылаются на одно значение.

В плане ускорения, конечно итераторы в расте могут быть быстрей чем пользовательский код, т.к. проблемы оптимизатора компенсируются вызовом `assume`, у другими механиками. Но речь немного о другом.

Объясните минуса? Я вот могу показать примеры, например, с банальным вызовом `.len()` из-за которого отключаются определённые оптимизации. Или же написать примеры кода, в котором на выходе из-за использования функций падение в производительности в 10+ раз.

zero-cost abstractions это маркетинг, он невозможен из-за природы работы оптимизатора.

Так какой в итоге профит получили?

Я вот проверил, у меня на макбуке минимальный WPM 96, на более простом для чтения тексте(10 слов) минимальный ровно 100 (410 CPM). И я не уверен что получу больше если возьму другую клавиатуру (чисто из-за удобства и привычки).

Но вот если начну тренироваться как Вы, то уверен что эффект будет (хотя бы из-за того что начну все пальцы использовать).

Получается что клавиатура не играет роли?

где zero-cost abstractions оказываются не zero-cost. 

Т.е. везде? Вызов функции не гарантирует сохранения и обработку всех инвариантов.

Хотите zero-cost - юзайте макросы (кстате, в стандартной библиотеке так и поступают)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность