Frage

Ich habe einige Inline-ASM für SSE Codierung vorher getan und es war nicht zu schwer, auch für jemanden, der nicht ASM nicht kennt. Ich stelle allerdings fest MS bietet auch intrinsics viele solche besonderen Anweisungen gewickelt wird.

Gibt es einen bestimmten Unterschied in der Leistung oder irgendwelchen anderen starken Grund, warum sollte man übereinander verwendet werden?

Um aus dem Titel zu wiederholen, dies speziell bedeckt ausgesetzt intrinsics von VC ++ 2008 für nicht verwaltete, native C ++.

War es hilfreich?

Lösung

In der Regel ist es besser zu Einsatz intrinsics - es für den Programmierer produktiver ist und ein guter Compiler (zB Intel ICC) einen anständigen Job der Registerzuweisung tun, Befehlsplanung usw. Die Microsoft-Compiler ist nicht so gut in dieser Hinsicht aber es wahrscheinlich macht immer noch einen angemessenen Job -. Sie immer später ICC wechseln, wenn Sie eine bessere Leistung erhalten müssen

Andere Tipps

Es gibt keine Inline-Assembly in Visual C ++ für x64. Intrinsics kann auch auf x64 verwendet werden. Wenn Sie jemals in den Hafen Ihren Code x64 wollen, müssen Sie intrinsics verwenden.

Intrinsics sind identisch mit ihren Äquivalent Montageanleitung und Sie sollten sie wenn möglich nutzen - der Compiler kennt sie direkt zu übersetzen, gibt es keinen Unterschied in der Leistung.

Mit intrinsics.

Montage Unter Verwendung wird in der Regel in mehreren Tagen ununterbrochener Arbeit führen, nur um herauszufinden, der Compiler schlägt Ihre beste Leistung um 5%. (5%, wenn Sie sind wirklich gut,. Höchstwahrscheinlich 30%)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top