LINUX.ORG.RU
ФорумTalks

Райзен не поддерживает опкоды Вишеры

 , ,


0

1

Гадство. Бинарники, скомпилированные с оптимизацией под AMD FX не работают на топовом Ryzen. Хотя казалось бы…

P.S. Инструкции по решению этой проблемы написали ещё в 2018-м. Просто я с этим до сих пор не сталкивался.

★★★★★

Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от Siborgium

Это не так. Чтобы «не запустятся», должно сойтись немало звезд, а главное – пользователь должен залезть своими ручками и прописать -mavx512* в CFLAGS, т.к. AVX512 по умолчанию отключен в компиляторах.

Вы с чем спорите или с кем?

У топикстартера как раз таки и фигурируют «Бинарники, скомпилированные с оптимизацией под AMD FX» и именно в этом контексте и идёт разговор.

Так что да, звезда это обычно банальный march, но так же и всяческие определяторы на этапе конфигурирования сборки в autotools/cmake/meson, плюс есть ещё библиотеки, которые не используют SIMD «from scratch», а делегируют это чему-нибудь типа Google Highway, такие как vips and jpeg-xl и т.п., где также таргет можно задавать на этапе сборки.

OSBuster ★★
()
Ответ на: комментарий от madcore

Ты бы ещё через 40 лет спросил. 😁

Насколько помню, там дело было в прерываниях таймера. Компилятор ставит метки комментариев в месте, где был код заставки, и таким образом прога работала без неё.

sparkie ★★★★★
()
Ответ на: комментарий от sparkie

Насколько помню, там дело было в прерываниях таймера. Компилятор ставит метки комментариев в месте, где был код заставки, и таким образом прога работала без неё.

Какой компилятор? Ассемблера? Или языка высокого уровня? И как это компилятор смог автоматически позакомментировать участки программы?

question4 ★★★★★
() автор топика
Ответ на: комментарий от karton1

Вот и трындец, старые приложения андроида не запустить на них, даже если пересобрать apk принудительно

Андроид приложения же на жабе, которая всегда и постоянно продавала «write one, run anywhere» как одно из самых основных своих достоинств. Как же так вышло?

Chiffchaff
()

Вроде у AMD FX не было никаких специфических именно для него команд. Всё, что я нашёл - это то, что Ryzen может виснуть на некоторых FMA инструкциях, но это баг Ryzen’ов. С которым я ни разу не столкнулся. Либо он был только в ранних Ryzen’ах, либо его исправили микрокодом или как-либо ещё.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Всё, что я нашёл - это то, что Ryzen может виснуть на некоторых FMA инструкциях, но это баг Ryzen’ов. С которым я ни разу не столкнулся.

Нет, у Ryzen отменили какие-то команды, не помню уже точно какие, но как минимум 3DNow! и кажется FMA4, в общем есть не полная совместимость с FX.

Однако зачем Grub и даже bash компилировать с этими инструкциями непонятно.

praseodim ★★★★★
()
Ответ на: комментарий от Chiffchaff

Я не знаю технических подробностей, но гугл там давно нагородил отсебятины. Например пакет приложения собран на sdk 17 версии, а система требует минимум 24. Формально ты с этим ничего не можешь сделать, но можно попробовать переподписать его по новой. Там вообще после 7 версии наворотили столько делов, что андроид превратился в хз что

karton1 ★★★★★
()

Никогда такого не было и вот опять.
Я при переезде с fx8350 на 12400 тоже столкнулся, но то ладно.
Потом покупка 14700k, обновление микрокода - ага, ни загрузиться, ни чрутнуться, минус avx512 (к слову, обратно переставлять проц тоже не поможет).

Просто я с этим до сих пор не сталкивался.

Ну ничего, я, думаю, и в следующий раз так же буду переезжать.

sehellion ★★★★★
()
Ответ на: комментарий от madcore

grub собран с оптимизацией под какие-то специфические simd? наверное, ульта-быстрый

Как в Gentoo расписать разным пакетам разные CFLAGS?

question4 ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Однако зачем Grub и даже bash компилировать с этими инструкциями непонятно.

Как в Gentoo расписать разным пакетам разные CFLAGS?

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Как в Gentoo расписать разным пакетам разные CFLAGS?

в /etc/portage/env/ создаёшь файлик с названием, например, safe-flags, пишешь туда кастомные CFLAGS и любые другие настройки
потом в /etc/portage/package.env/ создаёшь файлики со списками типа таких:
sys-boot/grub safe-flags
sys-devel/gcc:14 gcc-disable-bootstrap
dev-qt/qtwebengine no-ram

можно одновременно несколько env применять

madcore ★★★★★
()
Ответ на: комментарий от Chiffchaff

Андроид приложения же на жабе,

с добрым утром
у многих бинарные блобики пакете

madcore ★★★★★
()
Ответ на: комментарий от Chiffchaff

Во-первых, у жабы есть возможность вызывать код из бинарей (библиотек), во-вторых, у Андроида есть С-интерфейс.

lenin386 ★★★★
()
Ответ на: комментарий от question4

...как это компилятор смог...

Легко и не особо напрягаясь.

sparkie ★★★★★
()

Вот что избежать такой фигни в будущем, я чаще компиляю не в native, а в что-то вроде x86-64-v4.

Bfgeshka ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)