Какие компиляторы помимо gcc могут векторизовать код? - PullRequest
4 голосов
/ 03 января 2009

GCC может векторизовать циклы автоматически, если указаны определенные параметры и заданы правильные условия. Есть ли другие широко распространенные компиляторы, которые могут сделать то же самое?

Ответы [ 9 ]

8 голосов
/ 03 января 2009
6 голосов
/ 04 января 2009

llvm также может сделать это и вектор паскаль тоже, и тот, который не является бесплатным VectorC . Это лишь некоторые из них, которые я помню.

2 голосов
/ 12 июня 2009

IBM xlc также может в некоторой степени автоматически векторизовать C и C ++.

2 голосов
/ 22 января 2009

В проект Mono , альтернативу Open Source проекту Microsoft Silverlight, добавлены объекты, использующие инструкции SIMD. Mono CLR не является компилятором и является первой системой управляемого кода, которая генерирует векторные операции .

2 голосов
/ 12 января 2009
1 голос
/ 12 марта 2012

Несмотря на то, что это старый поток, я хотел бы добавить в этот список - Visual Studio 11 также будет иметь автоматическую векторизацию.

1 голос
/ 21 августа 2009

Visual C ++ (я использую VS2005) можно принудительно использовать инструкции SSE. Кажется, он не так хорош, как компилятор Intel, но если кто-то уже использует VC ++, нет никаких причин не включать эту опцию.

Перейти к свойствам проекта, свойствам конфигурации, C / C ++, генерации кода: включить расширенный набор инструкций. Установите «Потоковое SIMD Instructios» или «Потоковое SIMD Instructios 2». Вам нужно будет быстро установить модель с плавающей запятой. Также нужно будет изменить некоторые другие параметры, но компилятор сообщит вам об этом.

1 голос
/ 03 февраля 2009

VectorC может сделать это тоже. Вы также можете указать все целевые ЦП, чтобы он использовал преимущества различных наборов команд (например, MMX, SIMD, SIMD2, ...)

1 голос
/ 12 января 2009

На самом деле, во многих случаях GCC раньше был гораздо хуже, чем ICC для автоматической векторизации кода, я не знаю, достаточно ли он недавно улучшился, но я сомневаюсь в этом.

...