2012-02-21 6 views
2

AMD Bulldozer успешно работает на серверном пространстве, но плохо работает на рабочем столе. Насколько я понимаю, основной причиной этого является то, что серверные приложения были переписаны для использования специальных инструкций Bulldozer, которые до сих пор не используются в настольных приложениях. Будем ли мы ожидать, что компилятор Just in time (JIT) будет использовать их в версии 4.5, могут ли они вернутся к 4.0?.Настройка специальных спецификаций JIT и Bulldozer

Уточнение: Я понимаю, что JIT компилируется для машины, на которой он работает, а не на машине, на которой она была скомпилирована в инструкции IL. Утверждается, что из-за этого приложения JIT могут иметь более высокую производительность, чем обычный код, который скомпилирован и привязан прямо к двоичному.

+0

Нет, когда? Наверное, никогда. .NET даже не использует SSE IIRC. – leppie

+0

Он доступен только четыре месяца. «Специальные инструкции» - это не лекарство от архитектуры, которая преследуется в тестах. AMD может написать монофонический джиттер, если они хотят доказать свою точку зрения, похоже, что нет. –

+0

Если до того, как Bulldozer не получит достаточно большую базу, маловероятно, что Microsoft сделает для этого что-то особенное. Хотя верно, что .NET способен делать специальные оптимизации, они не являются бесплатными и требуют времени и денег для разработки. Если платформа достаточно мала, для MS нет значения для этого. AMD должна работать с MS, если они хотят поддерживать Bulldozer. Если AMD не может этого беспокоить, зачем MS? –

ответ

1

К сожалению, .NET JIT не является особенно сложным, когда речь идет о производительности:

  • Даже на серверах он не делает тяжелые оптимизации, как C++ компилятор делает, хотя он имеет ту же информацию, что и C++ компилятор имеет. Это просто не делать определенные вещи
  • Он использует специальные инструкции только для некоторых операций с плавающей точкой
  • х64 даже проблемы качества с недействительной оптимизацией делаются
  • Некоторых очевидных оптимизаций как анализ побега отсутствующих

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

+0

Надеюсь, они никогда не произойдут. Вся точка JIT заключается в том, что любая машина с установленной платформой .NET Framework может запускать указанное приложение. Если бы это делало особые вещи, потому что машина, на которой она была скомпилирована, могла их выполнять, она побеждала бы цель. –

+0

@ Ramhound см. Редактировать выше. –