Intel Core для программиста на C - PullRequest
5 голосов
/ 23 мая 2009

Первый вопрос С точки зрения программиста на C, чем отличаются процессоры Intel Core от эквивалентов AMD ?

Второй вопрос по теме Я думаю, что есть некоторые инструкции, которые отличают Intel Core от других процессоров и наоборот. Насколько важны эти инструкции? Они учитываются компиляторами? Будет ли производительность лучше, если какой-то специальный компилятор Intel предназначен только для семейства Core?

Ответы [ 3 ]

4 голосов
/ 23 мая 2009
  1. Если вы программируете код пользовательского уровня и большую часть кода драйвера, различий не так много (одно исключение - доступность определенных наборов команд, которые могут различаться для разных процессоров, см. Ниже). Если вы пишете код ядра, относящийся к специфичным для ЦП функциям (профилирование с использованием внутренних счетчиков, управление памятью, управление питанием, виртуализация), архитектуры отличаются по реализации, иногда очень сильно.

  2. Большинство компиляторов не пользуются автоматически инструкциями SSE. Однако большинство из них предоставляют встроенные функции, основанные на SSE, которые позволят вам писать код с поддержкой SSE. Подмножество всех доступных уровней SSE отличается для каждой архитектуры процессора и производителя.

См. на этой странице для получения инструкций. Перейдите по ссылкам, чтобы увидеть, на каких архитектурах поддерживаются конкретные инструкции. Кроме того, ознакомьтесь с руководствами по разработке архитектуры Intel и AMD , чтобы получить точные сведения о поддержке и реализации всех без исключения наборов инструкций.

4 голосов
/ 23 мая 2009

Первый вопрос С точки зрения программиста на C, в чем разница между Процессоры Intel Core и их эквиваленты в AMD?

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

Были бы характеристики лучше, если бы был какой-то специальный компилятор Intel только для семейства Core?

Не уверен, если вы знаете об этом, но есть компилятор специально для ядер Intel: icc . Обычно считается лучшим компилятором с точки зрения оптимизации.

Возможно, вы захотите проверить статью википедии .

1 голос
/ 23 мая 2009

Согласно статье Intel Core Википедии, были заметные улучшены инструкции SSE , SSE2 и SSE3 . Эти инструкции являются SIMD (одна и та же инструкция, несколько данных), что означает, что они предназначены для применения одной арифметической операции к вектору значений. Они, безусловно, важны и используются компиляторами, такими как GCC, для довольно давно .

Конечно, последние процессоры AMD приняли новейшие инструкции Intel, и наоборот. Это постоянная тенденция.

...