Пожалуй самый лучший софт в мире можно найти именно тут и это не
пустые слова… |
|
Intel и AMD
(Продолжение банкета…)
Итак, продолжаю бессмысленный монолог на тему какой процессор лучше… На этот раз я написал новый тест (так как стандартным не доверяю и далее поясню почему) и пришел к некоторым выводам, которые сейчас и изложу… В основном сравнивал новые процессоры от AMD типа Атлоны64 и уже морально устаревшие пни четвертые на 478 сокете.
Итак, поехали… Сказка об рациональном программировании…
Так как у меня нету под рукой кучи разных компутеров, пришлось воспользоваться услугами бета-тестеров, за что им огромное человеческое спасибо. Для начала я написал несколько функций (избыточное кодирование для тестирования скорости процессора, а также конвертация в формат JPEG, только без упаковки данных…). Когда функции были готовы, я сделал програмку, после прогона которой, человек вписывал данные своего компутера и присылал результат мне…
Потом я переделал интерфейс, рационально выделил вначале память, засунул результаты и…. Результаты оказались совершенно другими!!! Некоторые улучшились, а некоторые наоборот… Я поменял расположение памяти… и опять результаты изменились… Теперь картинка:
Теперь поясняю…
Картинка №1. Так память была распределена в первом варианте… Чтобы работала технология SSE, данные должны быть выровнены на 16 байт. Обычное выделение дает адрес кратный четырем (или восьми… не уследил). Для этого я выделял, на 16 байт больше, а потом прибавлял к адресу число так, чтоб новый адрес был кратен 16… память получилась дырявой.
При таком раскладе процессоры на базе пней четвертых (сокет 478) показали плохие результаты в сравнении с атлонами в операциях с целыми числами… и более лучшие результаты в операциях с плавающей запятой(меня это удивило).
Картинка №2. Выделил большой блок памяти. Выровнил его на 16. А потом разбил на нужные кусочки. Т.е. память стала не фрагментированной. В целочисленных операциях сразу показатели у всех увеличились… в два раза у процессоров АМД и в три раза у процессоров Интел. С плавающей запятой чудеса, точнее результаты как везде – у Интела ниже некуда, у АМД остались на прежнем уровне.
Картинка №3. Изменил расположение данных в своем выделенном блоке. У пней четвертых показатели в операции с плавающей запятой выросли на порядок, а у АМД остались прежние… Операции с целыми числами не изменились…
Выводы:
1) Вначале я гнал на пни четвертые, но потом взглянул… оказывается все процессоры жульничают не по-детски :)… сообщают, что выполнили обработку и приступают к новому заданию, хотя сами еще делают предыдущее… многозадачность типа…
2) Не верьте мифу о том, что процессоры АМД работают быстрее с плавающей точкой… при рациональном написании программы (не при написании программы оптимизированной под П4, а именно при рациональном написании), пни четвертые считают с плавающей точкой намного быстрее.
3) SIMD технологии лучше организованны на процессорах Интел
4) Процессоры АМД более устойчивы к кривым рукам программистов.
Вердикт:
1) Если для дома, то пофиг АМД или Интел… (цена одинаковая, что б там не говорили :))… Вот только кривые программы склоняют к выбору Атлона64
2) Если же программа для каких-либо расчетов, то извиняйте… если она написана продуманно, то на пнях четвертых будет рвать любой атлон…