Это я к тому, что не очень умный гражданин, когда видит рядом два айфона за 1 и 1000 дензнаков, с большой вероятностью выбирает первый
Кто тут умный ещё надо посмотреть. Одно дело единовременная крупная покупка, а другое - малозаметная сумма, которая никак не скажется на качестве жизни. То что заплатишь чуть больше, имеет значение только при полном отсутствии дохода. Ну и традиционное "44% of Americans can’t pay an unexpected $1,000 expense from savings." :) https://www.cnbc.com/2024/01/24/many-americans-cannot-pay-for-an-unexpected-1000-expense-heres-why.html
Напоминаю, что "чугунок", это лишь предсказатель токенов.
Вам самому не смешно от того, что вы предлагаете на него взвалить?
"Когда этот тостер приготовит обед на 400 персон с уровнем блюд Мишленовского ресторана, и чтобы блюда не повторялись, тогда я перестану варить пельмени и уйду в лес."
С исключениями C++ десять тысяч итераций с n=15 выполняются за 7,7 мс. Со значениями возврата std::expected они выполняются за 37 мс — почти пятикратный рост времени исполнения! Можете убедиться сами: Quick Bench
Ну туфта же.
Человек убил всю производительность использованием std::expected<>
Простая замена на C-style код ускоряет его в 25(!) раз относительно "с++" и 4.3 раза относительно версии с исключениями.
11) What is the sampling rate of your physics model?
360 Hz, is the short answer. But we calculate forces twice per update step, so we do player tire force calculations at least 4x2x360 = 2880 times per second. More if some of the tires are contacting multiple surfaces (i.e. curbs). We use IEEE floats.
использование таких операндов приводило к тяжеловесным ассемблерным инструкциям приведения типов от одного к другому.
О каких тяжеловесных инструкциях идёт речь?
Таких инструкций просто не существует, т.к. делать ничего не нужно.
Есть только инструкции расширения знака (extsb,extsh,extsw). Двухтактовые, как и любые простые ALU операции.
Единственный косяк PPE в этом плане был в том, что знаковая загрузка из памяти с расширением знака (lha, lwa) делалась микрокодом, который блокировал конвейер на пару десятков тактов, поэтому компилятор пихал пары lwz / extsw.
А что вас смушает? Я Rust не знаю, но выглядит как оптимальный вариант с точки зрения компилятора. Все опкоды заинлайнены в один большой цикл (что и видно в дизасме). Хочешь таблицу адресов делай, хочешь таблицу переходов, ну или двоичный поиск. Собственно тут ручками и делается то, что должен был сделать компилятор.
В M1-M3 он является недокументированным, и разработчикам предлагается использовать фреймворки. Но это не мешает его программировать напрямую, если захочется (для себя).
"Этап проектирования двигателя занял менее 2 недель от окончательной спецификации до отправки в производство. Генерация новых вариантов конструкции занимает менее 15 минут на обычном компьютере."
Сколько будет копаться ваш коллектив из сотен инженеров и сколько это будет стоить?
Сам производитель сравнивает свое решение с Arm-ядрами Cortex-A55, говоря, что RISC-V способна обеспечить на 130% более высокую одноядерную производительность в задачах ИИ
Cortex-A55 как бы вообще не предназначен для "задач ИИ".
A55 и для смартфона давно не актуальное ядро, даже в его вспомогательной роли.
Кто тут умный ещё надо посмотреть. Одно дело единовременная крупная покупка, а другое - малозаметная сумма, которая никак не скажется на качестве жизни. То что заплатишь чуть больше, имеет значение только при полном отсутствии дохода.
Ну и традиционное
"44% of Americans can’t pay an unexpected $1,000 expense from savings." :)
https://www.cnbc.com/2024/01/24/many-americans-cannot-pay-for-an-unexpected-1000-expense-heres-why.html
Напоминаю, что "чугунок", это лишь предсказатель токенов.
Вам самому не смешно от того, что вы предлагаете на него взвалить?
"Когда этот тостер приготовит обед на 400 персон с уровнем блюд Мишленовского ресторана, и чтобы блюда не повторялись, тогда я перестану варить пельмени и уйду в лес."
Ну туфта же.
Человек убил всю производительность использованием std::expected<>
Простая замена на C-style код ускоряет его в 25(!) раз относительно "с++" и 4.3 раза относительно версии с исключениями.
https://quick-bench.com/q/LFPzMwd58xhaPBasnz3oUDKhgiM
Чего? Сейчас самые тепличные и зажратые времена, которые когда либо были на планете Земля.
Потому что они отказывались от поддержки относительно свежих чипов, которые поддерживают упомянутые тут расширения.
Это список игр, которые портированы на Эльбрус и запускаются там нативно.
О чём написано крупным шрифтом на первой же картинке.
Если вы уговорите открыть исходники GTA5 и других игр, думаю люди с удовольствием их портируют.
С чего бы? Вы тёплое с мягким не путайте. Речь о физике автосимуляторов, а не о PhysX.
Физику 300-400Hz легко тащит jaguar на превген консолях. И ничего там не тормозит.
Assetta Corsa - 333Hz
Forza Motorsport 8 - 360Hz
Colin McRae: Dirt - 1000Hz (игра 2007г)
iRacing
https://www.iracing.com/physics-modeling-ntm-v7-info-plus/
11) What is the sampling rate of your physics model?
360 Hz, is the short answer. But we calculate forces twice per update step, so we do player tire force calculations at least 4x2x360 = 2880 times per second. More if some of the tires are contacting multiple surfaces (i.e. curbs). We use IEEE floats.
func_signed_signed(int): # @func_signed_signed(int)
mov eax, 10
ret
func_unsigned_signed(int): # @func_unsigned_signed(int)
xor ecx, ecx
cmp edi, -10
mov eax, 10
cmovae eax, ecx
ret
Ваш цикл кстати превращается в... ничто.
О каких тяжеловесных инструкциях идёт речь?
Таких инструкций просто не существует, т.к. делать ничего не нужно.
Есть только инструкции расширения знака (extsb,extsh,extsw). Двухтактовые, как и любые простые ALU операции.
Единственный косяк PPE в этом плане был в том, что знаковая загрузка из памяти с расширением знака (lha, lwa) делалась микрокодом, который блокировал конвейер на пару десятков тактов, поэтому компилятор пихал пары lwz / extsw.
А что вас смушает? Я Rust не знаю, но выглядит как оптимальный вариант с точки зрения компилятора. Все опкоды заинлайнены в один большой цикл (что и видно в дизасме). Хочешь таблицу адресов делай, хочешь таблицу переходов, ну или двоичный поиск. Собственно тут ручками и делается то, что должен был сделать компилятор.
Я не терял. Не могу залезть к вам в мысли, чтобы понять, что вы хотели сказать.
Потому что сказали вы другое:
яблочные M1-M4 полностью закрыты, документации нет.
И это является ложью.
В M4 сопроцессор AMX выведен в виде SME.
Документация открыта на сайте ARM.
Вы ведь проигнорировали ссылку в статье?
https://github.com/tzakharko/m4-sme-exploration
В M1-M3 он является недокументированным, и разработчикам предлагается использовать фреймворки. Но это не мешает его программировать напрямую, если захочется (для себя).
Документация на AMX легко доступна в 1 клик.
https://github.com/corsix/amx
https://gist.github.com/dougallj/7cba721da1a94da725ee37c1e9cd1f21
Вот так вот информация "закрыта" чуть более чем полностью(с)
Пассаж про GPGPU тем более не ясен. Всё открыто в презентациях и документации Apple.
Вы о чём? Кем закрыты?
Документация на сайте ARM.
Если нужны детали реализации процессора, тут море информации:
https://github.com/name99-org/AArch64-Explore
А может и не уйти.
https://www.blackhat.com/docs/eu-15/materials/eu-15-Giller-Implementing-Electrical-Glitching-Attacks.pdf
В арсенале хакеров есть такие глитч-методы как замыкание дорожек отвёрткой :)
"Этап проектирования двигателя занял менее 2 недель от окончательной спецификации до отправки в производство. Генерация новых вариантов конструкции занимает менее 15 минут на обычном компьютере."
Сколько будет копаться ваш коллектив из сотен инженеров и сколько это будет стоить?
>> Я про картины Марка Шагала
Интересная, наверно, серия картин.
Марка пошла в библиотеку
Марка уходит в небо
Зловред_ки
Они в продаже с 2017г.
Совместимость там есть. Но уже множество софта работает в нативе, поэтому это не так важно.
Cortex-A55 как бы вообще не предназначен для "задач ИИ".
A55 и для смартфона давно не актуальное ядро, даже в его вспомогательной роли.
Убунту на нём запускать это боль.
Пока что что нужно ровно наоборот, подчинить себе машину, показав кто тут главный.
И почему же все сейчас не сидят на 12-летних процах за 3 копейки? :)
Не знаю что у вас за Лира, но однопоток у свежих процессоров быстрее раза в 4-5.
Где-то возможен перекос, потому что упирается в латентность памяти, например. Но в среднем по больнице - так.
Если же взять 16+ ядрер, то ускорение в многопоточной нагрузке уже составит вплоть до пары десятков раз.
https://github.com/docker/roadmap/issues/91#issuecomment-1877318029