Используя алгоритм SSE 4.2 crc32 в c #? Является ли это возможным? - PullRequest
4 голосов
/ 11 августа 2011

Мне нужно рассчитать crc32 для большого количества файлов, а также для огромных файлов (несколько ГБ). Я попробовал несколько алгоритмов, найденных в сети, таких как Damieng или , этот , и он работает, но работает медленно (более 1 минуты). Я нашел этот тест на различных алгоритмах crc32 и обнаружил, что в sse 4.2 есть аппаратно ускоренный метод crc32.

Я не нашел ни одного примера кода c # для использования кода SSE crc32.

1 - возможно ли это?

2 - Как я могу определить, поддерживает ли текущий процессор SSE4.2? (для переключения метода crc32)

(пожалуйста, укажите код, если это возможно)

1 Ответ

1 голос
/ 11 августа 2011

Я полагаю, что Mono разрешает доступ к инструкциям процессора через пространство имен Mono.Simd:

http://tirania.org/blog/archive/2008/Nov-03.html

Вопрос, связанный со Stackoverflow:

Возможно ли использование SSE в c #?

Mono-код с открытым исходным кодом. Похоже, что вы не можете просто добавить это в проект .NET, чтобы получить выгоду, хотя, как представляется, требуется среда выполнения Mono:

Вызов моно кода c # из Microsoft .net?

Тем не менее, это будет работать, но это будет программно эмулироваться.

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