Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 28
Благодарности: 9

Профиль | Отправить PM | Цитировать


Для одного из проектов искал самый быстрый подсчет crc32 для файлов и решил сделать dll, кому интересно забирайте в аттаче.
подробнее...
Алгоритм работает так: если поддержку SSE 4.2 процессор имеет, срабатывает аппаратный подсчет crc32c (с - использование Intel полинома: $1EDC6F41), в противном случае, если процессор слишком старый и не имеет поддержку SSE 4.2, то срабатывает crc32cfast с оптимизацией на ассемблере (имеет тот же результат подсчета). отличие результата подсчета от стандартного crc32 только из-за использования другого инициализационного полинома.

По заверению авторов кода, результаты подсчета следующие:
- Our optimized unrolled x86 version - aka crc32cfast() - performs the test at a very good pace of 1.7 GB/s;
- SSE 4.2 version - aka crc32csse42() - gives an amazing 3.7 GB/s speed (on both Win32 and Win64 platforms);
- simple rolled version of the algorithm (similar to the one in Delphi zlib unit) runs at 330 MB/s.

Основано на:
https://synopse.info/fossil/info/8fe7cc53b7

Последний раз редактировалось usermode, 29-04-2019 в 15:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:54, 28-04-2019 | #307