Извините, не знаю учебник.
Лучше всего (ИМХО) использовать SSE с помощью «встроенных» функций, которые Intel предоставляет для обертывания (как правило) отдельных инструкций SSE.
Они доступны через набор включаемых файлов с именем * mmintrin.h, например, xmmintrin.h - это оригинальный набор инструкций SSE.
Начните знакомиться с содержанием Intel Optimization Справочное руководство - хорошая идея (см. Раздел 4.3.1.2 для примера встроенных функций), и разделы SIMD являются важным чтением. Справочные руководства по набору инструкций также весьма полезны, так как каждая документация включает в себя «встроенную» функцию, которой она соответствует.
Сделайте потратьте некоторое время на осмотр ассемблера, созданного компилятором, на основе встроенных функций (вы многому научитесь) и измерениях профилирования / производительности (вы избежите напрасной траты времени на SSE-код для небольшой отдачи). на усилие).
Обновление 2011-05-31: В документах по оптимизации Agner Fog * *1016* ( спасибо ), хотя и немного, есть очень приятное освещение встроенных функций и векторизации. распространяться (например, раздел 12 первого и раздел 5 второго ). Это не совсем учебный материал (на самом деле есть предупреждение «эти руководства не для начинающих»), но они действительно правильно воспринимают SIMD (независимо от того, используются ли они с помощью asm, встроенных функций или векторизации компилятора) только как часть большей панели инструментов оптимизации.
Обновление 2012-10-04: A Хорошая небольшая статья в журнале Linux о внутренних свойствах gcc заслуживает упоминания здесь. Более общий, чем просто SSE (также распространяется на расширения PPC и ARM). На последней странице 1030 * есть хорошая коллекция ссылок, в которых я обратил внимание на "Руководство по встроенным функциям" Intel .