Presentation is loading. Please wait.

Presentation is loading. Please wait.

AES Encryption Code Generator Undergraduate Research Project by Paul Magrath. Supervised by Dr David Gregg.

Similar presentations


Presentation on theme: "AES Encryption Code Generator Undergraduate Research Project by Paul Magrath. Supervised by Dr David Gregg."— Presentation transcript:

1 AES Encryption Code Generator Undergraduate Research Project by Paul Magrath. Supervised by Dr David Gregg.

2 Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin  What is AES?  Why is it interesting?  Widely used.  New intrinsics. 2

3 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

4 Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin  Why a domain specific code generator?  Effective  Proven  Speed  Maintainability  Tunability 4

5 Motivation AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin  So: AES Encryption Code Generator. 5

6 Background  AES-NI arrives in ‘Westmere’ (due 2010) AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 6

7 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

8 AES Code Generator AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 8

9 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

10 AES Code Generator  Implementation:  Python wrapper  C++ application  PapiEx integration AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 10

11 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

12 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

13 Experimental Results  So...what was learnt? AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 13

14 The Basics AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Variant Applied Cycles vs Variants Applied 14

15 Unwinding Outer Loop AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Level of Unwinding and Local Variables 15

16 Parallel – Intel Core 2 Quad AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Level of Unwinding and Local Variables 16

17 Parallel – Intel Core 2 Duo AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin Level of Unwinding and Local Variables 17

18 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

19 Future Work AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin  Genetic search algorithms.  Intel Shannon. 19

20 Questions? AES Encryption Code Generator - Paul Magrath - Trinity College, Dublin 20


Download ppt "AES Encryption Code Generator Undergraduate Research Project by Paul Magrath. Supervised by Dr David Gregg."

Similar presentations


Ads by Google