Bookshelf

On-core hardware accelerators are a worthwhile mean to increase compute performance. CPU vendors forge compute-intensive functions into hardware to shorten runtime, increase throughput or reduce energy consumption compared to pure software implementations. On the currently ubiquitous x 86 - 64 and ARM platforms a high number of developers for compilers, libraries and applications are aware of the existence of these accelerators and correct their usage. In this thesis is shown, that for accelerators on IBM's POWER 8 not only a smaller stock of literature exists but also their support in compilers and free software libraries is less sophisticated. Programmers with a strong knowledge of in-core acceleration on x 86 - 64 platforms are advised on how to adapt their software for POWER 8 , highlighting common traps at the example of AltiVec/VSX vector processing and Secure Hash Algorithm 2 in-core cryptography. For instance, this thesis shows AltiVec's shift instructions show undocumented behavior when operating in little-endian mode. Likewise, the auto-vectorization capabilities of the GNU C compiler are limited and cryptography intrinsics are unstable. How AltiVec can be beneficially integrated into an existing code base, is shown at the example of the Opus audio codec—accelerating compute-intensive parts up to four times and the entire encoding pipeline by 8 % in terms of processor cycles. This work introduces AltivecMM —a template library that overcomes found compiler limitations and offers an infix notation for vector operations, aligned allocators, and branch-free conditional programming for data-parallel algorithms. AltiVecMM allows for a compact implementation of a data-parallel Secure Hash Algorithm 2 that fully exploits POWER 8 's cryptographic accelerators. The major application field of this presented SIMD-SHA2 are Merkle trees and their specialized form of blockchains. The presented QuadSHA256 implementation yields up to 350 % throughput over a non-accelerated version. All showcased projects and implementations in this thesis are publicly accessible on GitHub. 1 , 2 , 3

1 https://github.com/tzwenn/altivecmm 2 https://github.com/tzwenn/learn_power8 3 https://github.com/tzwenn/opus/tree/ppc-altivec

Integrierte Hardwarebeschleuniger sind ein lohnendes Mittel um Rechenperfomanz zu steigern. CPU-Hersteller realisieren besonders rechenaufwendige Funktionen in Hardware, damit die Laufzeit im Vergleich zu reinen Softwarelösungen verringert, der Datendurchsatz erhöht oder der Energieverbrauch gesenkt wird. Viele Compiler-, Bibliotheks- und Anwendungsentwickler kennen die Beschleuniger der allgegenwärtigen x 86 - 64 und ARM Plattformen und wissen diese zu gebrauchen. In der vorliegenden Arbeit wird gezeigt, dass für Beschleuniger auf IBMs POWER 8 Plattform nicht nur weniger Literatur existiert, sondern auch deren Unterstützungen in Compilern und freier Software weniger ausgefeilt sind. Es wird dargelegt wie Programmierer (mit starken x 86 - 64 Hintergrund) ihre Programme für POWER 8 anpassen müssen. Häufige Fallstricke werden am Beispiel der Vektorverarbeitung AltiVec/VSX, sowie der Kryptografiebeschleuniger des Secure-Hash-Algorithm2 aufgezeigt. Diese Arbeit offenbart undokumentiertes Verhalten der AltiVec-Schiebeoperationen im LittleEndian-Betrieb. Auch zeigt sie, dass die Fähigkeiten des GNU C Compilers Quelltext automatisch zu vektorisieren beschränkt, sowie intrinsische Kryptografiefunktionen fehlerhaft implementiert sind. Am Beispiel des Audiocodecs Opus wird gezeigt wie AltiVec gewinnbringend in ein bestehendes Projekt integriert werden kann. Die Anzahl der benötigten Prozessorzyklen wird für rechenintensive Teile auf ein Viertel reduziert. Die gesamte Signalkodierung wird um 8 % beschleunigt. In dieser Arbeit wird die Templatebibliothek AltiVecMM vorgestellt. Sie hebt gefundene Kompilerbeschränkungen auf, und erlaubt es datenparallele Algorithmen mit einer Infixnotation und ohne bedingte Verzweigungen zu formulieren. AltiVecMM ermöglicht eine kompakte, datenparallele SHA2 Implementierung, die POWER 8 s Kryptografiebeschleuniger ausreizt. Der Hauptanwendungsbereich dieses SIMD-SHA2 sind Merkle-Bäume und deren Sonderform der Blockchains. Der vorgestellte QuadSHA256 liefert bis zu 350 % des Durchsatzes einer unbeschleunigten Implementierung. Alle in dieser Arbeit entstandenen Programme und Bibliotheken sind auf GitHub verfügbar 1 , 2 , 3 .

1 https://github.com/tzwenn/altivecmm 2 https://github.com/tzwenn/learn_power8 3 https://github.com/tzwenn/opus/tree/ppc-altivec

Titel On-Chip Accelerators on POWER8
Verfasst von Sven Köhler
Serien-Detail Masterarbeit
Verlag Hasso-Plattner-Institut an der Universität Potsdam
Datum 19. Mai 2017
Seitenzahl 82
HinzugefĂĽgt am 13. April 2021
HinzugefĂĽgt von sven.koehler
Buch-Verleih verfĂĽgbar
PDF-Download Fachgebiets-Angehörige+ sven.koehler