Не проходите мимо!

Нежно любимый всеми Agner Fog пишет

The optimization manuals at www.agner.org/optimize/#manuals have now been updated. The most important additions are:

AMD Piledriver and Jaguar processors are now described in the microarchitecture manual and the instruction tables.
Intel Ivy Bridge and Haswell processors are now described in the microarchitecture manual and the instruction tables.
The micro-op cache of Intel processors is analyzed in more detail
The assembly manual has more information on the AVX2 instruction set.

Уже качаю, будет чтение на ночь

Заодно от там AMD Pilediver обижает

Supports fused multiply-and-add instructions in both the FMA3 and FMA4 form. FMA3 is compatible with Intel processors. See Wikipedia for a discussion of the incompatibility between these instruction sets.

The throughput of FMA3 instructions is only half as much as the throughput of FMA4 instructions, even though they are doing exactly the same calculations.

Memory writes with the 256-bit AVX registers are exceptionally slow. The measured throughput is 5 - 6 times slower than on the previous model (Bulldozer), and 8 - 9 times slower than two 128-bit writes. No explanation for this has been found. This design flaw is likelty to negate any advantage of using the AVX instruction set.

The VMASKMOVPS instruction with a memory source operand takes more than 300 clock cycles on the Jaguar when the mask is zero, in which case the instruction should do nothing. This appears to be a design flaw. This instruction is not very common, though.

Таки что, детектить CPU и запрещать AVX для этих горшков?

Comments

Ого! Микроахитектура!

>детектить CPU и запрещать AVX для этих горшков?
Еще ядро при использовании АВХ может на пару бинов частоту понизить у некоторых цпу

Алексей, насколько я знаю, вы общаетесь с Андреем и Ильей. Вы не в курсе случайно, как у них обстоят дела с оптимизацией? А то ну очень уж медленно, по сравнению остальными конверторами..

Отдельно интересует вопрос: возможно ли как-то улучшить ситуацию с производительностью RPP, задействуя видяшку (я имею в виду изменения в внутренней работе рпп, а не текущие версии)?

С Андреем что-то давно не общались, да и вообще - не могу комментировать его планы (даже если бы их знал, а я - не знаю).

Спросите в профильном жж-сообществе (http://raw-rpp.livejournal.com/)

Могу сказать про себя: с момента апгрейда хакинтошной машины до SandyBridge (i7-2600k), производительность RPP перестала выбешивать. Да, могло быть побыстрее, но жить можно.

> С Андреем что-то давно не общались, да и вообще - не могу комментировать его планы (даже если бы их знал, а я - не знаю).

Нет-нет, я не про планы спрашиваю. Мне интересно именно есть ли резерв для ускорения за счет оптимизации (ну, например, как вы когда-то писали про бессмысленный и беспощадный 16-битный int в, кажется, dcraw). Ну и про вычисления силами видяшки тоже очень интересно, т.к. C1 после задействования OpenCL становится просто реактивным - 1-2 секунды на 22МП рав.

> Спросите в профильном жж-сообществе (http://raw-rpp.livejournal.com/ [link])

Там на такое не отвечают, к сожалению.

Да откуда ж мне знать, есть ли там резерв для существенного ускорения без потери качества?

И даже если я скажу, что "да, есть" - что это изменит?

> Да откуда ж мне знать, есть ли там резерв для существенного ускорения без потери качества?

Я просто поинтересовался, на всякий случай. Вдруг знаете?

> И даже если я скажу, что "да, есть" - что это изменит?

Ну, например, можно надеяться на ускорение. Когда-нибудь.

Кстати, а как вам то, что интел убрала поддержку avx2 и fma3 у всех core i3, пентиумов и селеронов?

Про i3 вы со зла:
http://ark.intel.com/ru/products/77771/Intel-Core-i3-4340-Processor-4M-C...
Расширения набора команд SSE4.1/4.2 AVX2.0

Хм, действительно. Помню пару дней назад встретил на википедии это http://en.wikipedia.org/wiki/Haswell_(microarchitecture)#cite_ref-comparison_37-1
(немного раньше прямым текстом даже писали http://en.wikipedia.org/w/index.php?title=Haswell_(microarchitecture)&diff=prev&oldid=571132400
* Core i3 parts do not support AVX2 and FMA3.)
перешёл по ссылке, и там не было avx2, видимо исправили.

256-bit memory writes
256-bit memory write operations are exceptionally slow on the Piledriver. So slow, indeed,
that it is better to not use 256-bit registers at all on the Piledriver.

Ooops...

Вот и я про то. А у меня тут чешется демозаику на AVX2 написать.

Напиши. У меня складывается впечатление, что ни один вменяемый человек вообще современный AMD в рабочую станцию брать не будет -- процессоры-то для офисных компов и интернет-браузилок, буквально.

Со временем и напишу, Haswell для того и купил. Только вот вместо простого детекта "есть AVX2 - фигачим", придется проверять а не AMD ли тут.