Frage

Wo finde ich Informationen über gemeinsame SIMD Tricks finden? Ich habe einen Befehlssatz und weiß, wie nicht-tricky SIMD-Code zu schreiben, aber ich weiß, SIMD jetzt viel mächtiger ist. Es kann komplexen bedingten branchless Code halten.
Zum Beispiel (ARMv6), setzt die folgende Sequenz von Anweisungen, wobei jedes Byte von Rd gleich zu dem unsigned Minimum des entsprechenden Bytes von Ra und Rb:

USUB8 Rd, Ra, Rb
SEL Rd, Rb, Ra

Links zu Tutorials / ungewöhnlich SIMD Techniken gut sind auch :) ARMv6 ist die interessanteste für mich, aber x86 (SSE, ...) / Neon (in ARMv7) / andere sind gut zu.

War es hilfreich?

Lösung

Eines der besten SIMD Ressourcen war immer die alte AltiVec-Mailingliste. Obwohl PowerPC / AltiVec-spezifische vermute ich, dass eine Menge des Materials auf dieser Liste von allgemeinem Interesse für alle Arbeiten mit anderen SIMD-Architekturen sein würde. Leider scheint diese Liste nun nicht mehr existierenden zu sein, nachdem auf power.org zu einem Forum verschoben werden, aber Sie können archiviert werden können Versionen davon finden. (Wenn nicht, dann lass es mich wissen - ich habe so ziemlich alle Beiträge von 2000 - 2007)

Es gibt auch viele potenziell nützliche Informationen über AltiVec, SSE, SIMD-Vektorisierung und Leistung im Allgemeinen bei http://developer.apple.com/hardwaredrivers/ve/index.html , ein gutes Geschäft, von denen anderen SIMD-Architekturen übertragbar sein kann.

Andere Tipps

Versuchen AMDs SSEPlus Projekt auf Source

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