Diferență între revizuiri ale paginii „Performance analysis and optimization”
De la WikiLabs
Jump to navigationJump to searchCbira (discuție | contribuții) (Pagină nouă: Lucrarea 1: C/C++: increase the execution speed for the code that reverses the order of the bits composing a 100 M esantioane of unsigned 32-bit (eg. 10111...11 -> 11..11101) Exp...) |
Cbira (discuție | contribuții) |
||
Linia 1: | Linia 1: | ||
− | + | Session 1, x86 optimization: | |
+ | |||
C/C++: increase the execution speed for the code that reverses the order of the bits composing a 100 M esantioane of unsigned 32-bit (eg. 10111...11 -> 11..11101) | C/C++: increase the execution speed for the code that reverses the order of the bits composing a 100 M esantioane of unsigned 32-bit (eg. 10111...11 -> 11..11101) | ||
Expected/Presented techniques: | Expected/Presented techniques: | ||
+ | |||
first implementation ~ 10 seconds | first implementation ~ 10 seconds | ||
+ | |||
compiler optimized ~ 5 seconds | compiler optimized ~ 5 seconds | ||
+ | |||
loop unrolling | loop unrolling | ||
+ | |||
bit-tricks | bit-tricks | ||
+ | |||
optimizing variables into registers | optimizing variables into registers | ||
+ | |||
256-entry 8-bit table of 1 KB | 256-entry 8-bit table of 1 KB | ||
+ | |||
16-bit table of 64 k entries (256 KB) | 16-bit table of 64 k entries (256 KB) | ||
+ | |||
32-bit table of 4 G entries (16 GB) | 32-bit table of 4 G entries (16 GB) |
Versiunea de la data 7 martie 2018 22:52
Session 1, x86 optimization:
C/C++: increase the execution speed for the code that reverses the order of the bits composing a 100 M esantioane of unsigned 32-bit (eg. 10111...11 -> 11..11101)
Expected/Presented techniques:
first implementation ~ 10 seconds
compiler optimized ~ 5 seconds
loop unrolling
bit-tricks
optimizing variables into registers
256-entry 8-bit table of 1 KB
16-bit table of 64 k entries (256 KB)
32-bit table of 4 G entries (16 GB)