Вопрос

Где я могу найти информацию об распространенных трюках SIMD?У меня есть набор инструкций и я знаю, как писать простой SIMD-код, но я знаю, что SIMD теперь намного мощнее.Он может содержать сложный условный код без ветвей.
Например (ARMv6), следующая последовательность инструкций устанавливает каждый байт Rd равным беззнаковому минимуму соответствующих байтов Ra и Rb:

USUB8 Rd, Ra, Rb
SEL Rd, Rb, Ra

Ссылки на обучающие материалы/необычные методы SIMD тоже хороши :) ARMv6 для меня это самое интересное, но х86(ССЕ,...)/Неон(в ARMv7)/другие тоже хороши.

Это было полезно?

Решение

Одним из лучших ресурсов SIMD был старый список рассылки AltiVec.Хотя я подозреваю, что большая часть материала в этом списке касается только PowerPC/AltiVec, она будет представлять общий интерес для всех, кто работает с другими SIMD-архитектурами.К сожалению, этот список, похоже, больше не существует после того, как его перенесли на форум power.org, но вы, возможно, сможете найти его архивные версии.(Если нет, то дайте мне знать — у меня есть почти все сообщения за 2000–2007 годы.)

На сайте также можно найти много потенциально полезной информации об AltiVec, SSE, векторизации SIMD и производительности в целом. http://developer.apple.com/hardwaredrivers/ve/index.html, значительная часть которых может быть перенесена на другие архитектуры SIMD.

Другие советы

Попробуйте AMD ССЕПлюс проект на SourceForge

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top