Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Intel C++ Compiler на процессоре AMD, есть ли смысл использовать? 
V
    Опции темы
ksili
Дата 20.5.2008, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Есть ли смысл использовать компилятор Intel C++ Compiler, если программа будет исполняться на процессоре AMD? И не станет ли от этого программа медленнее работать?
Я понимаю, что ответ может быть неоднозначным, что зависит от программы... Поэтому прошу поделиться личным опытом тех, кто сам сталкивался с такой связкой (Intel C++ Compiler + AMD processor)


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
ksili
Дата 26.5.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



В общем понятно, Intel C++ Compiler наверно почти никто никогда не использовал.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
xvr
Дата 26.5.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(ksili @ 26.5.2008,  10:35)
В общем понятно, Intel C++ Compiler наверно почти никто никогда не использовал.

Почему же, используют, но только тогда, когда знают, чего хотят и что получится  smile Так как для того, что бы его использовать надо УЖЕ иметь MS компилятор (на Windows) и дополнительно сделать массу телодвижений. Если у тебя программа не требует топовой производительности, то этим никто заниматься не станет.
По поводу AMD - привар даст, не такой большой, как для Intel'овского проца, но будет лучше, чем родной MS компилятор. Кстати, можно залезть на www.spec.org и посмотреть цифры производительности для AMD/Intel на Intel'овском компиляторе (для MS компилятора там цифр нет по причине одинаково плохой производительности относительно Intel компилятроа как для Intel CPU, так и для AMD)

PM MAIL   Вверх
KaraKum
Дата 27.5.2008, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Нет никакой разницы какой процессор, если он совместим с x86 архитектурой. У процессоров Intel и AMD абсолютно одинаковые команды, только их реализация и выполнение внутри процессора осуществлены по-разному.
PM MAIL WWW   Вверх
vinter
Дата 27.5.2008, 12:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(KaraKum @  27.5.2008,  13:49 Найти цитируемый пост)
Нет никакой разницы какой процессор, если он совместим с x86 архитектурой.

начнем с того что 86 архитектура доживает свой век, а это
Цитата(KaraKum @  27.5.2008,  13:49 Найти цитируемый пост)
 У процессоров Intel и AMD абсолютно одинаковые команды

абсолютно неверное утверждение, начиная с Phenom vs Quad команды одинаковыми не являются


--------------------
Мой блог
PM MAIL WWW   Вверх
bsa
Дата 27.5.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(vinter @ 27.5.2008,  12:56)
начиная с Phenom vs Quad команды одинаковыми не являются

Серьезно?  smile 
Может ты хотел сказать, что каждый из этих процессоров имеет свой собственной набор уникальных дополнительных инструкций.
PM   Вверх
KaraKum
Дата 27.5.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Цитата

Может ты хотел сказать, что каждый из этих процессоров имеет свой собственной набор уникальных дополнительных инструкций. 

Именно так и правильнее бы высказаться.

Цитата

начнем с того что 86 архитектура доживает свой век, а это


Смотря что понимать под архитектурой. Например, примером разных вариантов архитектур может быть разбиение процессоров на RISC и CISC архитектуры. Со времён  процессора 8086 сохраняется совместимая с ним архитектура и никаких потенциальных замен ей даже не предполагается (никто не станет выбрасывать миллионы созданных прог и купленных компов).
PM MAIL WWW   Вверх
bsa
Дата 27.5.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



KaraKum, я думаю, речь шла о x86_32, которая действительно доживает свой век. На смену ей идет x86_64.
PM   Вверх
vinter
Дата 27.5.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(bsa @  27.5.2008,  15:44 Найти цитируемый пост)
Может ты хотел сказать, что каждый из этих процессоров имеет свой собственной набор уникальных дополнительных инструкций.

именно
Цитата(bsa @  27.5.2008,  16:04 Найти цитируемый пост)
KaraKum, я думаю, речь шла о x86_32, которая действительно доживает свой век. На смену ей идет x86_64.

именно smile


--------------------
Мой блог
PM MAIL WWW   Вверх
KaraKum
Дата 27.5.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Вы в другую сторону разговор увели - здорово, но не по теме. Изначально был вопрос про разницу между AMD и Intel, а не про разрядность. В первом случае со стороны программирования её вообще не видно и не нужно её учитывать, а во втором случае она конечно же есть.
PM MAIL WWW   Вверх
JackYF
Дата 27.5.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(KaraKum @  27.5.2008,  13:59 Найти цитируемый пост)
Со времён  процессора 8086 сохраняется совместимая с ним архитектура и никаких потенциальных замен ей даже не предполагается 

Arm(el)?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
KaraKum
  Дата 27.5.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Цитата

Arm(el)? 

?
PM MAIL WWW   Вверх
JackYF
Дата 27.5.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Архитектур существует явно больше, чем две (x86 и x86_64), в частности arm(el), sparc, powerpc.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
ksili
Дата 28.5.2008, 04:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Цитата(xvr @  26.5.2008,  16:19 Найти цитируемый пост)
Так как для того, что бы его использовать надо УЖЕ иметь MS компилятор (на Windows) и дополнительно сделать массу телодвижений

xvr, скажи про это чуть подробнее. Нужно настраивать MS VS для использования Intel C++ Compiler вместо своего родного компилятора? Других вариантов нет?


Цитата(bsa @  27.5.2008,  18:44 Найти цитируемый пост)
Может ты хотел сказать, что каждый из этих процессоров имеет свой собственной набор уникальных дополнительных инструкций.

Тут я думаю шла речь о том, что расширение SSE4 первыми предложили AMD, а не Intel как обычно. На сайте Intel есть презенташка с какой-то их конференции, там говорится об одном из их последних процессоров и в частности реализованном в нем расширении SSE4.2. Я так понимаю, то что в AMD называется SSE4.1, а то что в Intel - SSE4.2, вот в этом и различие
Но как уже правильно заметили, это не совсем в тему топика


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
xvr
Дата 28.5.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(ksili @ 28.5.2008,  04:46)
Цитата(xvr @  26.5.2008,  16:19 Найти цитируемый пост)
Так как для того, что бы его использовать надо УЖЕ иметь MS компилятор (на Windows) и дополнительно сделать массу телодвижений

xvr, скажи про это чуть подробнее. Нужно настраивать MS VS для использования Intel C++ Compiler вместо своего родного компилятора? 

Да

Цитата

Других вариантов нет?
Есть, можно использовать его с Platform SDK. У Intel компилятора нет своего линкера и системных библиотек. Не говоря уже об отсуствии у него своего IDE

Цитата(bsa @  27.5.2008,  18:44 Найти цитируемый пост)
Может ты хотел сказать, что каждый из этих процессоров имеет свой собственной набор уникальных дополнительных инструкций.

Вообще то они отличаются не только дополнительными инструкциями, даже разные Intel'овские процессоры отличаются друг от друга в планировании кода. Для получения максимальной производительности (для чего собственно и сделан Intel'овский компилятор) кодогенерация для разных процессоров отличается. Это не значит, что код сгенерированный для одного процессора не пойдет на другом, это значит, что его производительность будет меньше, чем если бы использовался код сгенерированный именно для этого процессора.

PM MAIL   Вверх
ksili
Дата 28.5.2008, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



xvr, спасибо

Цитата(xvr @  28.5.2008,  12:03 Найти цитируемый пост)
Вообще то они отличаются не только дополнительными инструкциями, даже разные Intel'овские процессоры отличаются друг от друга в планировании кода.

Ну это-то понятно. Я только заметил про разницу в наборах команд.



--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 28.5.2008, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(KaraKum @  27.5.2008,  12:49 Найти цитируемый пост)
Нет никакой разницы какой процессор, если он совместим с x86 архитектурой. У процессоров Intel и AMD абсолютно одинаковые команды, только их реализация и выполнение внутри процессора осуществлены по-разному. 

так в этом и заключается низкоуровневая оптимизация: использовать свойства CPU в рамках конкретной архитектуры
в качестве примера возьмем C2D (IA-32e)

за каждый такт Instruction Fetcher из кэша L1 для кода передает предекодеру 16 байт
предекодер определяет границы закодированных инструкций (или инструкции) в рамках данного блока
причем для C2D есть следующий инварианты: 
 - количество инструкций в блоке не может быть > 6
 - если количество инструкций = x > 6, то за следующий такт могут быть предекодированы x - 6 <= 6 инструкций
 - если инструкция лежит на 16-ти байтной границе, то ее предекодирование откладывается до загрузки следующего 16-ти байтного блока

предекодированные блоки помещаются в очередь декодера (есть суть кэш L0) размером 64 байта (отсюда можно сделать вывод, что если цикл можно разбить на 1, 2, 3, 4 части с учетом вышеназванных инвариантов и при этом общий его размер не будет превышать 64 байта, то он будет постоянно находится в L0, что в 2 раза увеличивает производительность (засчет того, что декодер за раз извлекает из L0 не 16, а 32 байта))

декодер состоит и 4 частей: 1-ая декодирует инструкции, состоящими из <= 4uops; 2,3,4-ая - из <= 1 uops
отсюда вывод, если на вход декодеру подаются инструкции в последовательности 1 uops <- 4 uops <-1 uops <- 1 uops
то вместо 7-ми декодированных uops за такт, мы получим только 3, т. е снижение производительности в 2.3 раза

возьмем теперь концепцию micro-op fusion (объединение пары микроопераций в micro-op fusion-микрооперацию и интерпретация ее всеми частями конвеера (за исключением execution unit-ов) как одной микрооперации)
т. к большинство компонентов конвеера могут за такт обработать фиксированное количество микроопераций, слияние 2-ух микроопераций в одну повышает общую производительность

таким образом, только лишь изменяя порядок инструкций, мы можем получить повышение пропускной способности конвеера, а значит и общей производительности CPU
причем все, что написано выше специфично для С2D, хотя архитектура команд (за исключением некоторых расширений) идентична, скажем K10 от AMD


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
MAKCim
Дата 28.5.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



из всего вышесказанного можно сделать вывод, что лучше специфическую интеловскую оптимизацию не применять к АМДешным процессорам, т. к производительность может снизиться


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ksili
Дата 28.5.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Мне вот ещё интересно. Этот компилятор перед компиляцией определяет на каком он проце работает и оптимизирует под него? Если да, то значит он каждому AMD-шному процу сопоставляет какой-то свой? А если не так, то наверно флагами компилятору указывается, под что оптимизировать, а значит вообще без разницы на каком процессоре это делать, т.к. можно сделать кучу сборок и проверить какя быстрее (или вообще может можно отключить оптимизацию?).


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
xvr
Дата 28.5.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(ksili @ 28.5.2008,  10:15)
Мне вот ещё интересно. Этот компилятор перед компиляцией определяет на каком он проце работает и оптимизирует под него? 

Нет. 
Цитата

А если не так, то наверно флагами компилятору указывается, под что оптимизировать, 
Да. Есть куча флагов для управления (linux версия, beta):
Цитата

-x<code1>[,<code2>,...]
          generate specialized code to run exclusively on processors
          indicated by <code> as described below
            Host generate instructions for the highest instruction set and
                 processor available on the compilation host machine
 
            SSE2 Intel Pentium 4 and compatible Intel processors.  Enables new
                 optimizations in addition to Intel processor-specific
                 optimizations
 
            SSE3    Intel® Core™ processor family with Streaming SIMD
                    Extensions 3 (SSE3) instruction support
            SSSE3   Intel® Core™2 processor family with SSSE3
            SSE4.1  Future Intel processors supporting SSE4 Vectorizing
                    Compiler and Media Accelerator instructions
 
-ax<code1>[,<code2>,...]
          generate code specialized for processors specified by <codes>
          while also generating generic IA-32 code.  <codes> includes
          one or more of the following:
 
            SSE2 Intel Pentium 4 and compatible Intel processors.  Enables new
                 optimizations in addition to Intel processor-specific
                 optimizations
 
            SSE3    Intel® Core™ processor family with Streaming SIMD
                    Extensions 3 (SSE3) instruction support
            SSSE3   Intel® Core™2 processor family with SSSE3
            SSE4.1  Future Intel processors supporting SSE4 Vectorizing
                    Compiler and Media Accelerator instructions
 
-mcpu=<cpu>
          same as -mtune=<cpu>
 
-mtune=<cpu>
          optimize for a specific <cpu>
            pentium3  - optimize for Pentium® III processors
            pentium4  - optimize for Pentium® 4 processor (DEFAULT)
 
-march=<cpu>
          generate code exclusively for a given <cpu>
            pentium3  - streaming SIMD extensions
            pentium4  - Pentium® 4 New Instructions
 
-mia32    generate generic IA-32 architecture code for Intel Pentium III
          and compatible Intel processors.  Disables any default or previously
          set extended instruction setting
 
-msse     generate code for Intel Pentium III and compatible Intel processors
 
-msse2    generate code for Intel Pentium 4 and compatible Intel processors
 
-msse3    generate code for Intel® Core™ Duo processors, Intel® Core™
          Solo processors, Intel Pentium 4 and compatible Intel processors with
          Streaming SIMD Extensions 3 (SSE3) instruction support
 
-mssse3   Intel® Core™2 processor family with SSSE3
 
-msse4.1  Future Intel processors supporting SSE4 Vectorizing Compiler and
          Media Accelerator instructions


Цитата

а значит вообще без разницы на каком процессоре это делать, т.к. можно сделать кучу сборок и проверить какя быстрее (или вообще может можно отключить оптимизацию?).
Можно

PM MAIL   Вверх
MAKCim
Дата 28.5.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(ksili @  28.5.2008,  10:15 Найти цитируемый пост)
Этот компилятор перед компиляцией определяет на каком он проце работает и оптимизирует под него? Если да, то значит он каждому AMD-шному процу сопоставляет какой-то свой? А если не так, то наверно флагами компилятору указывается, под что оптимизировать, а значит вообще без разницы на каком процессоре это делать

динамическое определение типа CPU (__intel_new_proc_init(), __intel_proc_init(), __intel_cpu_indicator(), ...)
+ возможность жесткой привязки через флаги на этапе компиляции


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
W4FhLF
Дата 28.5.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 20
Всего: 121



Интеграция последнего компилятора от Intel в студию >= 8.0 полностью автоматизирована. Я без проблем установил и чтобы переключаться между двумя компиляторами использую просто одну кнопочку(ну, грубо говоря). 

Что касается в общем уровня генерируемого кода в сравнении с компилятором от MS, то никаких гениальных и качественно новых идей в машинном коде, который генерируется компилятором от Intel, я не нашёл. Всё что я говорю связано, конечно, с тем спектром задач, которые решаю я. А пару месяцев назад я столкнулся с проблемой обоснования выбора языка и компилятора для реализации одной задачи. Я взял алгоритм, который в задаче используется достаточно часто. Алгоритмы называется SVD - singular value decomposition или сингулярное разложение матриц. Это достаточно ресурсоёмъкий и сложный алгоритм. 

Я брал матрицу 1681х1681 и применял к ней SVD. SVD алгоритм был реализован на 2х языках, в том числе на С++ он компилировался с использованием родного компилятора от MS из 2005 студии, и с использованием 10ой версии компилятора от Intel. На С++ он компилировался в одном случае с использованием SSE2 команд, а в другом без. 

Далее, все полученые модификации, были протестированы на 7ми разных процессорах. Вот сводная таблица(значения - время работы алгоритма в секундах):

user posted image

Я занимался профилированием алгоритма, основная часть(~80%) времени уходит на обращение к памяти и здесь C2D может быть быстрее только из-за того, что у него достаточно большой объём кеша по сравнению с AMD. В общем-то даже на самих процессорах от Intel их компилятор даёт весьма неоднозначный результат для процессоров разных семейств и поколений. 

Что касается машинного кода. Машинный код, полученный двумя этими компиляторами фактически оказался идентичным, т.е. в рамках этой задачи я не увидел, чтобы Intel C++ Compiler 10.0 проводил какую-то тонкую оптимизацию. Возможно из-за того, что я не указывал точно семейство процессоров для которых компилирую(т.к. алгоритм используется на разных процессорах в этом просто нет смысла). 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
georain
Дата 29.5.2008, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 28.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Я с VC не сравнивал, но вот разница между gcc4.1 и icc10.0 огромная.
Например у меня при оптимизации -О3 (без указания типа процессора, т.е. программа может работать как на intel так и на amd) программа от gcc весит 450кб, а от iсс 240кб (причём даже меньше чем при -О2 smile ), ну и соответственно выполняется процентов на 30 быстрее.
ИМХО тут важна не оптимизация под процессор, а оптимизация собственно кода.

Это сообщение отредактировал(а) georain - 29.5.2008, 02:03
PM MAIL   Вверх
W4FhLF
Дата 29.5.2008, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 20
Всего: 121



В общем случае, размер программы никак не влияет на скорость исполнения.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
georain
Дата 29.5.2008, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 28.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Я не говорил что размер влияет на скорость, я лишь привёл результаты на основе моего проекта. Не обращая внимания на размер, интегральный прирос в 30% это результат хороший.
Кроме того icc производит более глубокую диагностику и намного лучше придерживается стандарта, мне даже приходится не использовать некоторые возможности для совместимости с gcc.
В общем моё мнение такое, если позволяют возможности обязательно используйте icc.
PM MAIL   Вверх
ksili
Дата 29.5.2008, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Так сложилось, что я в MS VS практически не работал. Использую BCB6. У меня в нем установлено расширение С++ Compiler Enchancements 2.75. Служит оно в основном для увеличения скорости компиляции. Но я нашёл в нём настройки bcc32.exe replacement (C++ Compiler) и ilink32.exe replacement (Linker). Т.е. стандартные компилятор и линковщик можно заменить. 
Так может возможно использовать ICC не только с MS VS, но и Билдером? Как думаете, стоит попытаться их подружить или уже проверено, что не будут вместе работать?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
xvr
Дата 29.5.2008, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(ksili @ 29.5.2008,  05:33)
Так сложилось, что я в MS VS практически не работал. Использую BCB6. У меня в нем установлено расширение С++ Compiler Enchancements 2.75. Служит оно в основном для увеличения скорости компиляции. Но я нашёл в нём настройки bcc32.exe replacement (C++ Compiler) и ilink32.exe replacement (Linker). Т.е. стандартные компилятор и линковщик можно заменить. 
Так может возможно использовать ICC не только с MS VS, но и Билдером? Как думаете, стоит попытаться их подружить или уже проверено, что не будут вместе работать?

C VCL на 99% работать не будет - там используются нестандартные расширения языка, icc их не понимает

PM MAIL   Вверх
JackYF
Дата 29.5.2008, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(georain @  29.5.2008,  03:40 Найти цитируемый пост)
возможности обязательно используйте icc. 

Какие архитектуры поддерживает этот компилятор? насколько эффективный код он генерирует для процессоров AMD? Какая лицензия и цена у этого компилятора?

Добавлено через 52 секунды
Цитата(georain @  29.5.2008,  03:40 Найти цитируемый пост)
более глубокую диагностику и намного лучше придерживается стандарта, мне даже приходится не использовать некоторые возможности для совместимости с gcc.

Давай конкретику. gcc бери версии 4.3.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
W4FhLF
Дата 29.5.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 20
Всего: 121



Не совсем ясно, что за диагностику вообще компилятор призван проводить? И прямо-таки намного лучше по части стандарта? Последний компилятор от студии кстати, версия 9.0, очень даже неплох. У самого пока нет возможности перейти, но со слов очень грамотных коллег, занимающихся разработкой драйверов(т.е. люди много времени проводят за асм-листингами) компилятор неплохо эволюционировал.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
georain
Дата 29.5.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 28.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Цитата(JackYF @  29.5.2008,  14:52 Найти цитируемый пост)
Какие архитектуры поддерживает этот компилятор? насколько эффективный код он генерирует для процессоров AMD? Какая лицензия и цена у этого компилятора?

У меня работает на amd и intel 32-х и 64-х разрядных версиях. ОС: windows, linux, mac os x.
На данный момент для 64-х разрядных систем эффективность кода для intel и amd почти одинакова, наверное ввиду близкого набора команд. Как дальше будет не знаю. Для 32-х не проверял к сожалению.
Для некоммерческого использования под linux он бесплатный. Для остальных систем есть 30 дней тестового периода. А цена около 500. smile
А вообще лучше смотреть на www.intel.com ;)

Цитата(JackYF @  29.5.2008,  14:52 Найти цитируемый пост)
Давай конкретику. gcc бери версии 4.3. 

Не могу брать, 4.2.3 под 64 не протестин, а 4.3 вообще пока считается нестабильным. Мне кажется нужно говорить о том что есть.
Вот недавно столкнулся, в gcc не могу внутри класса определить явную специализацию для шаблонной функции.
PM MAIL   Вверх
MAKCim
Дата 29.5.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(georain @  29.5.2008,  21:11 Найти цитируемый пост)
На данный момент для 64-х разрядных систем эффективность кода для intel и amd почти одинакова, наверное ввиду близкого набора команд

господа
причем здесь вообще набор команд?  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
JackYF
Дата 30.5.2008, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(georain @  29.5.2008,  20:11 Найти цитируемый пост)
Не могу брать, 4.2.3 под 64 не протестин

Кем? Да и странно, а чем я программы собираю уже который месяц...

Цитата(georain @  29.5.2008,  20:11 Найти цитируемый пост)
4.3 вообще пока считается нестабильным.

Кем считается?

Добавлено @ 02:29
Цитата(georain @  29.5.2008,  20:11 Найти цитируемый пост)
У меня работает на amd и intel 32-х и 64-х разрядных версиях.

Как насчёт sparc, arm?

Добавлено @ 02:30
Цитата(georain @  29.5.2008,  20:11 Найти цитируемый пост)
Для некоммерческого использования под linux он бесплатный.

А gcc/g++ - свободный.

Это сообщение отредактировал(а) JackYF - 30.5.2008, 02:32


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
vinter
Дата 30.5.2008, 10:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



JackYF, блин задрали вы уже приводить примеры платформ на которых ничего кроме вашего любомого гцц, не пашет, это что показатель?
а вот знаешь такую ОС SOS, так вот там гцц пахать не будет.
Сорри, просто накипело уже, подобный бред читать.


--------------------
Мой блог
PM MAIL WWW   Вверх
ksili
Дата 30.5.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Господа, остыньте! Забыл в начале топика сказать. Интересно под Винду, и только...


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 30.5.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(vinter @  30.5.2008,  10:55 Найти цитируемый пост)
блин задрали вы уже приводить примеры платформ на которых ничего кроме вашего любомого гцц, не пашет, это что показатель?

один из

Добавлено через 11 минут и 31 секунду
Цитата(vinter @  30.5.2008,  10:55 Найти цитируемый пост)
а вот знаешь такую ОС SOS, так вот там гцц пахать не будет.

однако для создания модулей и компиляции ядра используется GCC  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
xvr
Дата 30.5.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Заглянул на www.spec.org (чего и всем рекомендую), для AMD'ных процов в основном используются QLogic PathScale и gcc

PM MAIL   Вверх
JackYF
Дата 30.5.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(vinter @  30.5.2008,  09:55 Найти цитируемый пост)
подобный бред

Где бред? Я что-то неправильно сказал?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
georain
Дата 30.5.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 28.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Цитата(JackYF @  30.5.2008,  02:27 Найти цитируемый пост)
Кем? Да и странно, а чем я программы собираю уже который месяц...

Временем. Я пользуюсь некоторыми не протестированными программами, чтобы сказать другим стабильны они или нет. Но вот только компилирую их протестированным gcc. А если и то и другое "работает не на 100%", то бывает непонятно что из них работает не правильно.

Цитата(JackYF @  30.5.2008,  02:27 Найти цитируемый пост)
А gcc/g++ - свободный.

+1  smile 

Это сообщение отредактировал(а) georain - 30.5.2008, 17:52
PM MAIL   Вверх
vinter
Дата 30.5.2008, 22:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(JackYF @  30.5.2008,  16:07 Найти цитируемый пост)
Я что-то неправильно сказал?

ты все правильно сказал, сорри за слово "бред", не сдержался


--------------------
Мой блог
PM MAIL WWW   Вверх
marcusmae
Дата 8.7.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



ksili, я использую icc для Visual Studio на AMD Athlon. Разница по сравнению с M$ бывает, что видна. Оптимизацию в этом случае нужно настраивать на SSE3. Посмотрите компиляторы pgroup (Portland Group) - они вроде бы считаются лучше для AMD.


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
UnrealMan
Дата 8.7.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(W4FhLF @  29.5.2008,  17:08 Найти цитируемый пост)
Не совсем ясно, что за диагностику вообще компилятор призван проводить?

К диагностическим сообщениям относятся предупреждения и сообщения об ошибках.

Цитата(georain @  29.5.2008,  21:11 Найти цитируемый пост)
Вот недавно столкнулся, в gcc не могу внутри класса определить явную специализацию для шаблонной функции. 

Стандарт не разрешает это. Но нарушения стандарта, касающиеся шаблонов, у GCC всё же имеются.

Это сообщение отредактировал(а) UnrealMan - 8.7.2008, 16:45
PM MAIL   Вверх
GoldFinch
Дата 21.4.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



up!

Недавно читал статью Агнера Фога, где он пишет, что Intel Compiler генерирует код, который применяет инструкции SSE только для процессоров Intel, а не для любых процессоров которые поддерживают SSE.
http://agner.org/optimize/blog/read.php?i=49
PM MAIL ICQ   Вверх
JackYF
Дата 23.4.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



GoldFinch, собственно, ничего удивительного smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
GoldFinch
Дата 23.4.2010, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



JackYF, вобщем-то да, но это как-то сразу убирает всю ценность Intel Compiler для софта ориентированного на широкую аудиторию пользователей.
PM MAIL ICQ   Вверх
JackYF
Дата 24.4.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(GoldFinch @  23.4.2010,  13:57 Найти цитируемый пост)
но это как-то сразу убирает всю ценность Intel Compiler для софта ориентированного на широкую аудиторию пользователей. 

:yes


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
borisbn
Дата 24.4.2010, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



честно говоря, не знаю, в тему или нет, но юзаю библиотеку IPP ( Intel Performance Primitives ). Вызываю функцию FFTGetSize_C (получить размер буфера для FFT). На Intel-процессоре возвращает правильное  значение, на AMD - возвращает какую-то чушь, после чего падает функция FFTFwd_CToC, отлично работающая на Intel. Впечатление, что специально. Если размер буфера задать руками, то всё отрабатывает как надо


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1104 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.