Комментарии участников:
В статье об этом написано — если бы компилятор позиционировался как продукт только для процессоров Интел, претензий бы к компании не было бы
Он и позиционируется как продукт заточеный под интеловский процессор. Именно изза этого компилятора, уже лет десять как пользую исключительно их железо. Зачастую (не всегда, конечно) код сделаный на нем бежит на 15-20% быстрее чем на MS-ном. Не говоря уж об остальных 'конкурентах'.
В дополнение в Вашему комментарию, необходимо отметить, что я сам и мои знакомые тоже — неоднократно сталкивались с тем, что одна и та же программа — могла без проблем работать на Intell, однако — без каких либо уведомлений — отказываться работать на AMD.
Кто мешает AMD и VIA создать свои специализированные программные продукты, которые будут превосходить качество ПО от Intell?
Легче всего обижаться на дугих (в том числе на своих конкурентов) — закрывая глаза на плоды своего собственного бездействия. ;-)
Не забывайте также и о том, что схемные решения AMD и VIA — реально отличается от продукции Intell, и это тоже необходимо учитывать.
В любом случае и AMD и VIA — стараются обеспечить совместимость с продукцией от Intell, не прибегая к ее повторению. Поэтому — другие решения порождают в свою очередь — другие результаты
Легче всего обижаться на дугих (в том числе на своих конкурентов) — закрывая глаза на плоды своего собственного бездействия. ;-)
Не забывайте также и о том, что схемные решения AMD и VIA — реально отличается от продукции Intell, и это тоже необходимо учитывать.
В любом случае и AMD и VIA — стараются обеспечить совместимость с продукцией от Intell, не прибегая к ее повторению. Поэтому — другие решения порождают в свою очередь — другие результаты
Да потому, что программа должна быть одна. Вам было бы приятно, если бы браузер, в котором вы пишете, тормозил именно под вашим процом? Нахрена так делать?
Для того, что бы сбылась ваша мечта — должна исчезнуть альтернатива, то есть должен остаться всего лишь один производитель. ;-)
По факту, на текущий момент, и AMD, и VIA работают над тем, что бы создать изделия, которые будут максимально соответствовать параметрам продукции от Intell (при условии использования только их собственных решений — иначе будет нарушение патентов Intell, со всеми вытекающими для нарушителя).
В результате, получается продукт, который во многом подобен образцу для подражания, но все же — другой, а другой, как вы сами понимаете, работать точно также как и образец для подражания — не может.
Этот вопрос адресуйте к поизводителям продукции, которая не совсем соответствует реально существующим стандартам, на которые обращают внимание производители программного обеспечения.
Кстати — программы не тормозили, а просто не запускались, при чем — напрочь отсутствовали сообщения о каких-либо ошибках.
По факту, на текущий момент, и AMD, и VIA работают над тем, что бы создать изделия, которые будут максимально соответствовать параметрам продукции от Intell (при условии использования только их собственных решений — иначе будет нарушение патентов Intell, со всеми вытекающими для нарушителя).
В результате, получается продукт, который во многом подобен образцу для подражания, но все же — другой, а другой, как вы сами понимаете, работать точно также как и образец для подражания — не может.
Вам было бы приятно, если бы браузер, в котором вы пишете, тормозил именно под вашим процом?
Этот вопрос адресуйте к поизводителям продукции, которая не совсем соответствует реально существующим стандартам, на которые обращают внимание производители программного обеспечения.
Кстати — программы не тормозили, а просто не запускались, при чем — напрочь отсутствовали сообщения о каких-либо ошибках.
В статье автор может написать все что ему угодно, а Intell позиционирует свои продукты как оптимизированные под свою собственную продукцию.
Ну вообщем то все мои "претензии" основаны на утверждении, что интел НЕ позиционирует свои продукты как оптимизированные под свою собственную продукцию, если вы правы, то спорить тут не о чем. Нужно будет для себя просто уточнить этот момент.
Но если процессор не от Intel, то в большинстве случаев будет выбран самый медленный из возможных вариантов, даже если процессор полностью совместим с лучшей версией.
Все объясняется очень просто. Даже если процессор полностью совместим по командам с интеловским аналогом, он не может не отличаться внутренней архитектурой, то есть структурой конвейера, алгоритмами предсказания ветвлений и прочим. Простой пример, одна и та же CISC операция выполняться будет за разное количество тактов на этих двух процессорах. О какой совместимости оптимизированного кода в таком случае может быть речь? Естественно, в для альтернативного вендора будет выбран самый медленный вариант, потому что оптимизированный на нем просто не заработает из-за сбитых таймингов.
P.S. Новость ни о чем. Хабр как всегда радует.
Тоже так подумалось.
Хотя мои познания в ло лэвел програмировании скудеют, так как я на на яве сижу с универа.
Хотя мои познания в ло лэвел програмировании скудеют, так как я на на яве сижу с универа.
"не заработает из-за сбитых таймингов" — а можно подробней? Я наверное не компетентен в этом вопросе, но мне кажется это чушь. Они там что такты подсчитывают? При современной многозадачности набор инструкций легко прерывается. В статье идет речь о том, что для разных моделей процессоров используется разный набор инструкций. Если процессор поддерживает более эффективные инструкции, то используются они. Для AMD этот нюанс не учитывается. Насколько я понял статью. Интересно услышать ваше мнение.
Оптимизация учитывает миллион деталей имплементации процессора. Стандарты гарантирующие совместимость требуют идентичности на уровне выполнения инструкций, а не того как они выполняются. Методы кэширования, параллелизации, даже глубина pipeline все меняется от модели к модели. Плюс, имеются нестандартные расширения.
Кстати, та-же история и с кучей интеловских библиотек типа performance lib, mkl и т.п. И у AMD тоже есть свои библиотеки.
Кстати, та-же история и с кучей интеловских библиотек типа performance lib, mkl и т.п. И у AMD тоже есть свои библиотеки.
Понятно что у процессора есть разные характеристики, и что стандартом определена "ширина рельс, а не что внутри локомотива". Но оптимизация имеет свой лимит, учесть все "вплоть до такта, байта" не возможно, ввиду разнообразия процессоров от самого же интел, я не говорю про разнообразие ситуаций в исходных кодах. Конечно можно приблизиться к определенной степени эффективности, но что мешает этот же код "пускать" и для других процессоров? Ведь использование кеша нескольких уровней, па<b>
но что мешает этот же код "пускать" и для других процессоров
Конструктивные особенности конкретных изделий
Допишу :) А еще тот факт с манипуляцией ID в новых процессорах, позволяющий выполнять на них именно оптимизированный код, при этом врядли кто-то мог учесть их архитектуру "до мелочей". Конечно можно приблизиться к определенной степени эффективности, и пусть даже они повышают кпд своих процов до 99% :) но что мешает этот же код "пускать" и для других процессоров? Ведь использование кеша нескольких уровней, параллелизации и т.д., все это стандарт для всех современных процессоров. И вряд ли бы процы от AMD исполняли оптимизированный код менее эффективно чем не оптимизированный, скорее наоборот.
Да, наличие кэша и многих ядер — стандарт. Но логика их использования и архитектура железа очень отличаются. Оптимизатор обязан это учитывать. И я не вижу, зачем Интелу стараться и напрягать своих программистов чтобы делать это для процессоров конкурентов. Они не особо зарабатывают на продажах компилятора. Но очень — на процессорах эффективно гоняющих код.
Ну прям фух :) Ну почему бы просто не подключать оптимизированный код и для процессоров конкурентов? Есть поддержка SSE3, значить подключим код использующий этот набор инструкций. Второе, логика использования кеша, достаточно прозрачна. Покрайней мере основные принципы используются всеми. Не думаю что есть какие-либо мелочи, предусмотрев которые в коде, нужно "боятся" дать исполнить "не своему" процу.
Хех, профессиональный тролль, покормил и отбежал? Я уже писал, что не считаю себя достаточно компетентным, но пишу свои размышления. В защиту интел, ничего толкового не услышал. Надеюсь человек заинтересованный прочитает и сделает правильные выводы.
Из того, что можно пощупать руками — это тепловыделение аналогичных по производительности процессоров Intell и AMD, а оно отличается и существенно.
P.S.Защищать Интелл — нет никакого проку, лишь собственные наблюдения.
P.P.S. От троля слышу
P.S.Защищать Интелл — нет никакого проку, лишь собственные наблюдения.
P.P.S. От троля слышу
К тому, что в реализации процессоров разных производителей присутствуют различные схемные технические решения.
Очень похоже на то, что вы не особенно интересовались электроникой, поэтому, вероятно, не представляете о том, что функционально аналогичные устройства могут быть выполнены по различным схемным решениям и с использованием различной элементной базы (например, выходной каскад транзисторных усилителей мощности низкой частоты может быть выполнен как по однотактной, так и двухтактной схеме; как на биполярных, так и на полевых транзисторах).
Очень похоже на то, что вы не особенно интересовались электроникой, поэтому, вероятно, не представляете о том, что функционально аналогичные устройства могут быть выполнены по различным схемным решениям и с использованием различной элементной базы (например, выходной каскад транзисторных усилителей мощности низкой частоты может быть выполнен как по однотактной, так и двухтактной схеме; как на биполярных, так и на полевых транзисторах).
Я в курсе о различиях внутренней реализации ) Это настолько примитивные вещи, что я не могу понять, как вы вообще согласились со мной вступать в дискуссию, подозревая что я не знаю об этом) Выше я писал "Понятно что стандартом определена "ширина рельс, а не что внутри локомотива" ) Давайте лучше прекратим этот спор и С Рождеством Вас!!!
Выше я писал "Понятно что стандартом определена "ширина рельс, а не что внутри локомотива"
Процессоры Intell и AMD по разному ведут себя в разных приложениях.
Для закрытия вопроса — прошу ознакомиться с Сравнение процессоров бюджетной категории Новички AMD Sempron и Intel Celeron D.
Статейка не самая свежая, однако показывает отличие (переменный успех) процессоров Intell и AMD в разных задачах.
Статейка не самая свежая, однако показывает отличие (переменный успех) процессоров Intell и AMD в разных задачах.
Речь не об использовании конкретных инструкций. Все поддерживают SSE с MMXом. Речь о том что ту-же задачу можно сделать разными наборами инструкций и на разных моделях каждый из этих наборов выполняется с разной эффективностью. Задача оптимизирующего компилятора выбрать тот набор что будет работать наиболее эффективно. И интеловский делает это наилучшим образом для интеловских машин.
У вас там, кстати, промелькнул вопрос о том на сколько специфичен генерируемый код. Код умеет динамически определить на каком процессоре он выполняется и запустить различные функционально эквивалентные участки кода. Так работает на пример MKL (intel math kernel library).
У вас там, кстати, промелькнул вопрос о том на сколько специфичен генерируемый код. Код умеет динамически определить на каком процессоре он выполняется и запустить различные функционально эквивалентные участки кода. Так работает на пример MKL (intel math kernel library).
Да здесь я с вами согласен, если речь не о базовом наборе инструкций SSE MMX, а о подпрограмме как наборе инструкций. Просто лень сейчас перечитывать статью, спать пора), но вроде как там ставили упор именно на базовый набор, типа SSE3.
Вообщем ваш ответ по сути из двух частей: "Оптимизатор обязан это учитывать" — я этого не то что не отрицал, но наоборот, мы сейчас говорим о том как это делается. Второе "не обязаны" — как и сказал выше, пусть оптимизируют под свои, но дают выполнять код процам конкурентам того же "класса", или пусть открыто заявят "оптимизируем только под свои процы".
В статье ни слова не сказано о том, что это за компилятор, для какого языка. Приходится догадываться, что для C+.
Это тот-же самый компилятор. Фактически их четыре 'близнеца' — C+, Fortran, для Винды и Linux. Так-же как у C# и VB.NET тот-же кимпилятор.