Linux amd 8 ядер

Процессоры AMD тормозят под Linux из-за кривого кода 20-летней давности

В ядре Linux есть код, мешающий современным чипам AMD работать на полную мощность. Ему уже 20 лет, но момент выпуска он был необходим для корректной работы процессоров тех лет. Проблема не зацепила CPU Intel – в них от нее есть встроенная защита. Новый патч к ядру готов – он разработан внутри AMD и уже доказал свою эффективность.

Когда старые технологии начинают мешать

Современные процессоры AMD не в состоянии раскрыть свой потенциал в дистрибутивах Linux из-за патча к ядру, добавленному 20 лет назад, в 2002 г. Как пишет портал Ars Technica, из-за него Linux считает, что за 20 лет у AMD не вышло ни одного нового процессора – он по-прежнему полагает, что производительные Threadripper – это процессоры линейки Athlon, со всеми вытекающими из этого последствиями.

Патч для ядра Linux написал разработчик Энди Гровер (Andy Grover), и он был одобрен лично Линусом Торвальдсом (Linus Torvalds) – создателем Linux. Этот патч вносил в ядро поддержку ACPI – открытого промышленного стандарта образца 1996 г., который позволяет определять единый интерфейс обнаружения аппаратного обеспечения, управления питанием и конфигурации материнской платы и устройств компьютера.

linus601.jpg

Апдейт за авторством Гровера включает, помимо прочего, еще и активацию «фиктивной операции ожидания» (dummy wait op). В результате система считывала данные с единственной целью – для задержки следующей инструкции процессора до тех пор, пока у CPU появится возможность полной остановки при помощи инструкции STPCLK#.

Свою пользу патч Гровера, вне всякого сомнения, принес, однако к 2022 г. он давно утратил свою актуальность. Если на момент 2002 г. развертывание ACPI еще продолжалось, и многие CPU еще не умели переходить в режим ожидания без данного обновления и экономить энергию, то спустя 20 лет эта проблема давно была решена. Однако работе современных процессоров AMD разработка Энди Гровера может мешать.

Патч к патчу

В компании AMD творение Гровера, вероятно, считают как минимум бесполезным, максимум – вредным. Инженер Пратик Наяк (Prateek Nayak) из ее штата разработал собственное дополнение к ядру Linux, привносящее в него функцию «фиктивного ожидания для процессоров с архитектурой Zen». В настоящее время у AMD на руках три поколения данной архитектуры, и она в ускоренном темпе работает над Zen 4.

linux600.jpg

Пратик Наяк утверждает, что все актуальные CPU компании AMD, в основе которых лежит Zen-архитектура, могут корректно работать в среде Linux, даже если патча Гровера в ядре не будет. Более того, инженер прямо заявил, что наработка Гровера 20-летней давности негативно влияет на производительность современных чипов компании. С его слов, это проявляется как минимум при некоторых рабочих нагрузках. Заявлять, что в ядре Linux содержится код, который замедляет современные Epyc, Threadripper и Ryzen на постоянной основе, Наяк, видимо, не решился. Вместо этого он сказал, что проблема становится все более заметной с увеличением количества ядер в процессоре. Из этого можно сделать вывод, что сильнее всего страдают чипы линеек Threadripper и Epyc.

Читайте также:  Значки для ярлыков linux

Все заработало

Достоверность своей теории и работоспособность созданного им патча инженер AMD доказал наглядно, проведя несколько замеров производительности. Согласно полученным им данным, патч Энди Гровера в ядре Linux действительно крайне разрушительно влияет на производительность процессоров AMD.

cpu601.jpg

Так, в версии с патчем Наяка одна система выдавала колоссальную минимальную пропускную способность МБ/с – она была на 1390% выше в сравнении с той же системой, но без кода Наяка. Средняя пропускная способность МБ/с была на 51% выше в пользу решения Наяка.

Intel «в домике»

AMD и Intel – два заклятых конкурента на рынке х86-процессоров для ПК, ноутбуков и серверов. Они соперничают не годами – десятилетиями, и патч Энди Гровера, казалось бы, должен был зацепить еще Core вместе с Pentium, Celeron и Xeon.

Однако же современные чипы Intel оказались невосприимчивы к тому, что 20 лет назад выпустил Энди Гровер. Инженеры Intel, как выяснилось, давно осведомлены об этой проблеме, и потому в процессорах компании на протяжении как минимум 10 последних лет есть функция обхода его патча для Linux.

У Intel, к слову, тоже готово исправление данной проблемы 20-летней давности – его разработал сотрудник компании Дэйв Хансен (Dave Hansen). Он планирует в обозримом будущем направить его разработчикам ядра с целью рассмотрения возможности интеграции в ядро Linux 6.0.

Следует отметить, что в ОС семейства Windows тоже встречаются инструменты замедления производительности современных CPU. Такая «фишка», как сообщал CNews, есть в новейшей Windows 11. Microsoft попыталась все исправить, но лишь усугубила проблему. Только много позже ей удалось справиться с поставленной задачей.

Источник

Так всё же 8 ядер или 4?

Эт что же получается? 4 ядра? А остальные виртуальные?

Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: AuthenticAMD CPU family: 21 Model: 1 Model name: AMD FX(tm)-8120 Eight-Core Processor Stepping: 2 CPU MHz: 3110.156 BogoMIPS: 6222.49 Virtualization: AMD-V L1d cache: 16K L1i cache: 64K L2 cache: 2048K L3 cache: 8192K NUMA node0 CPU(s): 0-7 

Или всё же там натуральные ядра? Не нравятся мне эти в 2 потока.

CPU(s): 4 Thread(s) per core: 2 Core(s) per socket: 2 CPU socket(s): 1 

Но заявлен он как 8 ядерный AMD FX(tm)-8120 Eight-Core Processor

Но заявлен он как 8 ядерный AMD FX(tm)-8120 Eight-Core Processor

это АМД, ничего удивительного.

Читайте также:  Открыть терминал сочетание клавиш linux

Кем? На оф.сайт производителя не пошел, но думаю там всё же про 8 потоков написано, а не ядер. А все остальные посредники еще и не такое заявить могут.

Но заявлен он как 8 ядерный AMD FX(tm)-8120 Eight-Core Processor

Ну да, мне тоже продавец в Ельдорадо слезно доказывал:«Ну и что что реальный ядра два, если виндовс думает что четыре, то оно и работает как четыре».

На оф.сайт производителя не пошел, но думаю там всё же про 8 потоков написано, а не ядер

ну так сходи, чтобы не кукарекать попусту

The industry’s only 8-core desktop processor

ага, конечно, еще по всяким стремным ссылкам от ананимусов не ходил =)

Написано именно ядер. В том то и дело.

как-то чмошно ты слил, без огонька, без задора

Ну тогда печально. Надо было интелл брать.

как-то чмошно ты слил, без огонька, без задора

Пятница, вечер, устал что-то..так что извини, что не покормил.

Да и на той страничке нет никаких намеков на тех.характеристики. Просто рекламный банер, вот они там и нарисовали 8 ядер. Ничего удивительного.

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

Ну как видишь, зря не спросил.

Там не ядра, а «модули». В каждом модуле по два блока целочисленных вычислений.
Аналог HyperThreading от intel.
http://www.overclockers.ua/cpu/amd-bulldozer-fx-8120/02-big-amd-bulldozer.png

CPU Value (CPU Mark / $Price )

Ну все верно тебе показывает. 4 ядра, по 2 бульдозер кора на каждый. И того типо 8.

Спасибо. Буду знать, и «проверять» прежде чем покупать.

В том то и дело что типо 8. Intel хотя бы не скрывает.

И уже темболее не пишет что 8 ядер.

Лет 7 назад разачаровался в видюшках, теперь вот процы =)

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

150$ за 8 почти полноценных потоков?
Да упорись, но для десктопа пойдетЪ.

Если еще больше не упарываться в стиле dk- гоняя raw’ы на 36МП, но он то для профиту.

Ну тут «типо» как посмотреть, там реально толку от «полуядер» получается намного больше, чем от интеловского гипертридинга, проверял на на архиваторе (сжатие squashfs) на моем FX6100 — между тремя и шестью потоками разница почти 1,85 раза, так что все честно.

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

За свой прайс это более ценный мех.

Согласен, но всё же как то не особо приятен этот «маркетинговый ход»

Читайте также:  Настройка линукс под ssd

Там модульная архитектура, 1 модуль = 2 ядра, 4 модуля, получается как бы 8 ядер, что то вроде интеловского хайпер трейдинга, только своя технология. А тебе ли не всё равно? Если «ядро» выполняет функции непосредственно «ядра», не плевать ли, как оно там называется? Главное — работает.

На работе атом с семёркой)

А тебе ли не всё равно? Если «ядро» выполняет функции непосредственно «ядра», не плевать ли, как оно там называется? Главное — работает.

Ужас. Вали оттуда, ну если твоя работа как-то связана с компьютером конечно.

anonymous_sama ★★★★★ ( 26.07.13 20:05:12 MSK )
Последнее исправление: anonymous_sama 26.07.13 20:05:37 MSK (всего исправлений: 1)

Тут психологическое) Не заглянул бы я сегодня в lscpu подробней, так бы и думал, что у меня хороший проц. Теперь вот буду думать что плохой, и на автомате, постепенно доказывать себе, что он хороший.

На компе только сервисный, лёгкий, софт да в интернете полазить. Рядом стоит нормальный десктоп который через kvm switch с атомом трудятся.

Сравнил жопу с пальцем. HT — более эффективное (в некоторых случаях) использование вычислительных блоков одного ядра за счёт распараллеливания, амдшный модуль же — это 2 полноценных целочисленных ядра с общим FPU и кэшем L2.

HT дает максимум 10-15% на ядро (4 * 1,15), т.е. там 4 полноценных (FPU+ALU) ядра и возможность использовать их полностью (HT) с помощью 8 потоков.

У амд 8 несовсем полноценных (в сравнении с intel) ядер (ALU+0.5FPU), т.е если у тебя в задаче не используется FPU, то на ALU ты получишь 8 полноценных потоков(ядер). Ну, а если нужен FPU, то 4.

Вся проблема и недопонимание вышло из-за низкой производительности одного потока и вот тут народ прицепился к 4 модулям/8 ядрам, считая (ошибочно) что в этом проблема, а проблема в силе одного потока. Если смотреть на тесты, то разница у амд между 4 и 8 потоками дает разницу в 75-80% на ядро, а не 15% как у intel. Таким образом у амд 8-ядерные процессоры, но слабые.

За пруфами смотрите срачтред pekmop1024 и true_admin по этому поводу.

Что же оно тогда проигрывает по всем тестам 4ядерникам интела, которые даже без НТ?

Что же оно тогда проигрывает по всем тестам 4ядерникам интела, которые даже без НТ?

Таким образом у амд 8-ядерные процессоры, но слабые.

 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 6 On-line CPU(s) list: 0-5 Thread(s) per core: 1 Core(s) per socket: 6 Socket(s): 1 NUMA node(s): 1 Vendor ID: AuthenticAMD CPU family: 21 Model: 2 Stepping: 0 CPU MHz: 3523.820 BogoMIPS: 7047.64 Hypervisor vendor: Xen Virtualization type: none L1d cache: 16K L1i cache: 64K L2 cache: 2048K L3 cache: 8192K NUMA node0 CPU(s): 0-5

Источник

Оцените статью
Adblock
detector