AES Encryption Code Generator Undergraduate Research Project by Paul Magrath. Supervised by Dr David Gregg.
Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin What is AES? Why is it interesting? Widely used. New intrinsics. 2
Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin How do we write optimized code for these new instructions? Problem: Hand coded assembly. Solution: A domain specific code generator. 3
Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Why a domain specific code generator? Effective Proven Speed Maintainability Tunability 4
Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin So: AES Encryption Code Generator. 5
Background AES-NI arrives in ‘Westmere’ (due 2010) AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 6
AES Code Generator AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Takes in input AES encryption loop file. Generates variants of loop. Compiles, runs repeatedly and get median of runtimes of each variant. Reports best variant runtime achieved. 7
AES Code Generator AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 8
AES Code Generator AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Steaming store Unwind inner loop Use local variables Unwind outer loop Interleave Parallel (OpenMP) Prefetch to cache Prefetch to register Variant Options 9
AES Code Generator Implementation: Python wrapper C++ application PapiEx integration AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 10
AES Code Generator Testing: Intel C Compiler GNU C Compiler 32 Bit 64 Bit Simulator AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 11
AES Code Generator Experimental Results from: Intel Core 2 Quad Intel Core 2 Duo Intel Pentium 4 Dual AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 12
Experimental Results So...what was learnt? AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 13
The Basics AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Variant Applied Cycles vs Variants Applied 14
Unwinding Outer Loop AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Level of Unwinding and Local Variables 15
Parallel – Intel Core 2 Quad AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Level of Unwinding and Local Variables 16
Parallel – Intel Core 2 Duo AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Level of Unwinding and Local Variables 17
Generator Tunability AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Intel Core 2 Quad Core (64-bit) Intel Pentium 4 Dual Processor (64-bit) 18
Future Work AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Genetic search algorithms. Intel Shannon. 19
Questions? AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 20