LINUX.ORG.RU
ФорумTalks

Сказ о том как интел cpu тесты подмухлевал.


0

0

http://www.ixbt.com/cpu/via-nano-cpuid-fake.shtml

Многие программисты считают компиляторы Intel лучшими в т. ч. за оптимизацию кода, используя их для требовательных к скорости программ. Intel также поставляет множество оптимизированных функциональных библиотек для различных профессиональных применений. Во многих случаях никаких сходных по скорости альтернатив им нет. Но те же программисты заметили, что компиляторы и библиотеки Intel работают зачастую подозрительно медленно на ЦП производства других компаний. Всё дело в том, что в генерируемом коде (в случае библиотек — в написанном вручную) есть несколько версий наиболее критичных участков, оптимизированных для конкретной архитектуры или набора команд (чаще всего из линейки SSEx). Также в коде есть функция определения типа ЦП (на котором запущен код), чтобы выбрать верную ветвь — диспетчер ЦП (не путать с планировщиком — частью конвейера, которую также иногда называют диспетчером). Суть проблемы в том, что интеловский диспетчер проверяет не только поддержку наборов команд, но и строку с названием процессора. И в случае, если производитель указан не как Intel, диспетчер выбирает код, обеспечивающий максимальную совместимость в ущерб скорости — даже если конкретный ЦП поддерживает все нужные команды.

Ну кто еще купит процессоры от сих честных дядек?

★★☆
Ответ на: комментарий от Yareg

в дистрах конечно не будут, потому-что лицензирование людоедское,
да и в Linux фактическая монополия GCC )

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

А вот на это я бы сильно не надеялась, cтарые версии GCC порой генерируют гораздо более быстрый код, как минимум для C

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

>ничего что эта гнусная проприетарщина выдает код работающий на 25-30% быстрее ? (p7zip 9.13, GCC 4.5.1 vs ICC9)

Есть подозрения, что это, в основном, происходит из-за встроенного аллокатора (при этом софтина, собранная icc жрут памяти значительно больше)

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

потребление памяти архиватором обычно не критично, а вот скорость хочется иметь выше, любой ценой )

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

кстати, камень в огород интела, сравнение было ICC9 и GCC,
т.е. старой версии, новая версия собирает p7zip 9.13 достаточно криво, он просто не работает , ошибки декомпрессии )

Sylvia ★★★★★
()

Intel также поставляет множество оптимизированных функциональных библиотек для различных профессиональных применений

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

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

там тоже диспетчер встроен

да я догадался, но если на работе начну патчить эту библиотеку и всплывут левые глюки во всем комплексе проектов... :)

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

>Ну я просто считаю АМД некачественной продукцией, вот :)

Как человек использующий камни и от Штудв и от АМД, считаю тебя тупой школотой, вот! :P

Freiheits-Sender ★★
()
Ответ на: комментарий от Andru

значит обманывать )
Хотя для IPP (только для IPP) такой необходимости похоже нет )


CPU dispatching in Intel Performance Primitives Library
The CPU dispatching in the Intel Performance Primitives library (IPP) version 6.1 appears to work well with non-Intel processors. No override appears to be needed.

Future versions may be checked by testing the external variable
ippJumpIndexForMergedLibs after calling ippStaticInit(). This variable should
have the following values: 0: < SSE2, 1: SSE2, 2: SSE3, 3: SSSE3, 4: SSE4.1, 5: Intel
Atom. You may do the test in example 13.6 on a non-Intel processor.
// Example 13.6. Dispatcher test for Intel IPP
#include <ipp.h>
#include <stdio.h>
extern «C» {
extern int ippJumpIndexForMergedLibs;
}
int main() {
ippStaticInit();
printf(«\nJump index = %i\n», ippJumpIndexForMergedLibs);
return 0;
134

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

>а если вендор криво реализовал SSE, ругать будут кривой интеловский компилятор зачем это Интелу?

А если вендор криво реализовал обычные (не-SSE) инструкции CPU?

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

>В Интеле не обязаны проверять, криво или не криво их конкуренты делают свои процессоры.

Допустим. Тогда какого хрена для остальных инструкций не воткнули такую «защиту от дурака».

ICC - компилятор от интела, защита в нём - от дурака^W^Wтоже от интела

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

>Они с тобой несогласны.

Я же написал что «я считаю». Я могу и ошибаться :)

BSD
()
Ответ на: комментарий от Freiheits-Sender

>Как человек использующий камни и от Штудв и от АМД, считаю тебя тупой школотой, вот! :P

Тебе не хватает витамина B12 и поэтому ты такой агрессивный, вот :)

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

>Это очень всем важно, да.

Мне не важно, важно это всем или нет :)

BSD
()

допиливайте GCC и покупайте уже любые процессоры (если это AMD).

з.ы. А вот соотношение цена/качество у AMD было лучше именно из-за роли отстающего, иногда ненадолго вырывающегося вперёд на пол корпуса. Иначе бы кто их поделки покупал?

з.з.ы. ждём от интела ключей для ICC, выключающих данную «фичу» и рождающую невероятной фееричности баги в собраном коде :) Причём для этого даже особо никаких закладок встраивать в компилятор не нужно, достаточно лишь сэкономить на тестировании компилятора при работе с этим ключом.

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

Привет тебе, свободный человек!!!1111

>Сколько рабов в треде.

скорее всего у тебя и процессор собственной сборки.

MrHouse
()

>Ну кто еще купит процессоры от сих честных дядек

Судя по вашей логике, все пользователи оперы должны дружно отказаться от пользования гууглом?

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

я ж ниже написала к чему приведет сборка ICC 10.1 или 11.1 )

у AMD есть SSE4a, но он очень убогий (про VIA не знаю, если им разрешили , то они могли сделать)

SSE 4.1 (Intel Core2 Penryn)
«mpsadbw», «phminposuw»,
«pmuldq», «pmulld»,
«dpps», «dppd»,
«blendps», «blendpd»,
«blendvps», «blendvpd»,
«pblendvb», «pblendw»,
«pminsb», «pmaxsb»,
«pminuw», «pmaxuw»,
«pminud», «pmaxud»,
«pminsd», «pmaxsd»,
«roundps», «roundss»,
«roundpd», «roundsd»,
«insertps», «pinsrb»,
«pinsrd», «pinsrq»,
«extractps», «pextrb»,
«pextrw», «pextrd»,
«pextrq», «pmovsxbw»,
«pmovzxbw», «pmovsxbd»,
«pmovzxbd», «pmovsxbq»,
«pmovzxbq», «pmovsxwd»,
«pmovzxwd», «pmovsxwq»,
«pmovzxwq», «pmovsxdq»,
«pmovzxdq», «movntdqa»,
«packusdw», «pcmpeqq»,
«ptest»


SSE 4.2 (Nehalem)
«crc32», «pcmpestri», «pcmpestrm», «pcmpistri», «pcmpistrm», «pcmpgtq», «popcnt»

SSE4a (AMD)
«lzcnt», «popcnt», «extrq», «insertq», «movntsd» ,«movntss»
и судя по всему это и есть фсё...



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

это называется просто - недобросовестная конкуренция

У amd нет ресурсов написать приличный компилятор и библиотеки, вот и она и давит на недобросовестную конкуренцию. Пусть все компиляют код на gcc и не вопят.

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

>У amd нет ресурсов написать приличный компилятор и библиотеки, вот и она и давит на недобросовестную конкуренцию.

Зачем AMD писать свой компилятор? Значительно целесообразнее коммитить код для оптимизации для соего процессора в существующие приличные компиляторы

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

Значительно целесообразнее коммитить код для оптимизации

Она даже этого не делает, потому что ей на своих пользователей положить с прибором.

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

>Она даже этого не делает

4.2

Язабан этого толстяка. С минуты на минуту лопнет - забрызгает г-ном всех

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

маленькая оговорка - общесистемно.
отдельные пакеты как раз дают 25-30% , но не стоит это утрировать ни в ту (всегда дают) ни в другую сторону (что если где-то нет прироста, то его не будет никогда), в целом возня конечно времени не стоит, с kde кстати теперь тоже..

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

даже mplayer теперь плохо стал собираться ICC в недавних ревизиях

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.