Практическая польза fast-типов
Как замена uint32_t на uint_fast32_t позволяет достичь хорошего прироста скорости
В данной статье речь пойдёт о типах int_fastXX_t/uint_fastXX_t из stdint.h. Мне было интересно потестировать параллельную реализацию шифрования алгоритмом ГОСТ 28147–89 на многоядерных процессорах (с использованием OpenMP, но это тема для отдельной статьи). Как известно, ГОСТ 28147–89 — блочный шифр, оперирующий 64-битными (uint64_t) блоками. При выполнении зашифрования в режиме простой замены открытый текст разбивается на две половины (uint32_t). В принципе, [...]
← Вернуться к полной версии записи «Практическая польза fast-типов»…
Автор: Vladimir; опубликовано в: C/C++; метки: C/C++, блочный шифр, оптимизация, производительность, шифр, шифрованиеМар
2009
Комментарии к статье «Практическая польза fast-типов» (4) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Практическая польза fast-типов»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


На четырёхядерном процессоре Intelⓡ Xeonⓡ CPU X3320 @ 2.50GHz получилась такая картина:
uint32_t: 2.1 сек, 47.6 МиБ/секuint_fast32_t: 1.8 сек, 55.6 МиБ/секВыигрыш: 8 МиБ/сек
Сборка с ключами
-O3 -fomit-frame-pointer -march=noconaAMD Phenom™ II X4 940 @ 3GHz:
uint32_t: 1.7 сек, 58.8 МиБ/секuint_fast32_t: 1.4 сек, 71.4 МиБ/секВыигрыш: 12,7 МиБ/сек
Сборка с ключами -O3 -fomit-frame-pointer -march=amdfam10
[...] было проверить генерируемый код при использовании быстрых типов: для этого я заменил uint32_t на uint_fast32_t и собрал 64-битную [...]
AMD Phenom™ II X4 940 @ 3GHz:
uint_fast32_t, параллельная реализация: 268.8 МиБ/сек