0

SSE, SSE2 и SSE3 для GNU C++ [закрыто]

11

Проблема:

Я новичок в области программирования на C++ и хочу узнать о SIMD-инструкциях, в частности о SSE, SSE2 и SSE3. Я ищу простое руководство, которое поможет мне быстрее разобраться в этих технологиях. Есть ли доступные ресурсы, такие как учебники или примеры кода, которые могут помочь в оптимизации кода с использованием SIMD?

Однако я столкнулся с проблемой: мой вопрос был закрыт на Stack Overflow с пометкой о том, что он не соответствует рекомендациям сайта и не принимает ответы. Я понимаю, что вопросы о рекомендациях по программному обеспечению, библиотекам или источникам за пределами сайта не допускаются.

Каким образом я могу изменить свой вопрос, чтобы он соответствовал правилам и его можно было бы ответить конкретными фактами и цитатами? Какую информацию мне следует добавить или переформулировать, чтобы получить помощь в оптимизации кода с использованием SSE-инструкций?

Спасибо за предварительное сотрудничество!

2 ответ(ов)

0

Самая простая оптимизация, которую можно использовать, это разрешить GCC генерировать код с использованием SSE.

Флаги: -msse, -msse2, -msse3, -march=, -mfpmath=sse

Для более краткого списка опций для 386 можно ознакомиться с документацией GCC, а для более точной информации, касающейся вашей конкретной версии компилятора, посетите этот ресурс.

Для оптимизации всегда рекомендуют ознакомиться с ресурсами Агнера Фога: agner.org/optimize. Я не уверен, что у него есть учебные материалы по SSE для интринзиков, но он предлагает много интересных приемов стандартного C++ и предоставляет множество информации о кодировании SSE на ассемблере (что часто может быть транскрибировано в интринзики).

0

Простого руководства? Насколько мне известно, нет.

Тем не менее, любая информация о использовании MMX или любой версии SSE будет полезна для изучения, независимо от того, используете ли вы GCC, ICC или VC.

Чтобы узнать о векторных расширениях GCC, наберите команду "info gcc" и перейдите в раздел Node: Vector Extensions.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь