Ускоряем 7-zip
реклама
Предупреждение: эта версия будет работать только на процессорах с поддержкой SSE2 (Opteron, Athlon 64/FX/X2, Sempron для S754 и S939, Pentium 4, Pentium 4 Xeon, Celeron для S478 и LGA755, Pentium M, Celeron M, Core, Core 2)!
А теперь, если кому интересно - как эта штука работает. Дело в том, что 7-zip скомпилирован MSVC 6.0 и (для большей совместимости) не использует расширенные наборы инструкций (MMX, SSE, SSE2). В конференции 7-zip участник noangel упомянул (ветка обсуждения целиком), что скомпилировал 7-zip 4.43b при помощи Intel C Compiler [ICC] 9.1 (с набором опций QxN, что подразумевает использование SSE2), и получил 12% прироста скорости. Замечательно, то есть загвоздка: ICC встраивает во все исполнимые модули проверку, на каком процессоре он (файл) запускается, и если это не Intel - не работает. К счастью, умельцы с iXBT нашли способ обходить эту защиту и написали кряк эээ... патч. C помощью этого патча я исправил все исполнимые файлы из билда noangel, и на своей системе (Athlon 64 3200+@2700МГц) получил ~5% выигрыш во встроенном бенчмарке:
Оригинальный 7-zip 4.43b - скомпилирован MSVC
7-zip 4.43b, скомпилированный ICC с использованием SSE2
P.S. Полагаю, что прирост на процессоре Intel больше, чем на AMD совсем не из-за того, что компилятор Intel заточен под свои процессоры, а из-за очень эффективной работы с памятью у K8. Ну и сам прирост от компиляции ICC не из-за использования SSE2 инструкций (7-zip вообще FPU не использует), а из-за добавления prefetch (инструкций предвыборки данных из памяти) или инструкций условной пересылки CMOVxx.
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают