Performance analysis and optimization: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
(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...)
 
Fără descriere a modificării
 
(Nu s-au afișat 16 versiuni intermediare efectuate de același utilizator)
Linia 1: Linia 1:
Lucrarea 1:
= Results =
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:  
https://docs.google.com/spreadsheets/d/1GvZ-P-MEA9iPuBFx2onQ8qg0o2cDQSoWFV2Y0T11Fls/edit?usp=sharing
first implementation ~ 10 seconds
 
compiler optimized ~ 5 seconds
= Support materials =
loop unrolling
 
bit-tricks
http://www.agner.org/optimize/optimizing_cpp.pdf
optimizing variables into registers
 
256-entry 8-bit table of 1 KB
https://www.arm.com/files/pdf/AT_-_Better_C_Code_for_ARM_Devices.pdf
16-bit table of 64 k entries (256 KB)
 
32-bit table of 4 G entries (16 GB)
= Lab sessions =
 
# [[PC Lab 1]] - x86 C++ optimizations
# [[PC Lab 2]] - 8-bit MCU: PIC 10F200 asm optimizations
# [[PC Lab 3]] - x86 ???
# [[PC Lab 4]] - x86 U8 SAD/SSD
# [[PC Lab 5]] - x86 ASIFT C++ profiling and optimizations
# [[PC Lab 6]] - OpenCL
 
Contact: calin.bira_AT_upb.ro

Versiunea curentă din 26 aprilie 2018 16:29

Results

https://docs.google.com/spreadsheets/d/1GvZ-P-MEA9iPuBFx2onQ8qg0o2cDQSoWFV2Y0T11Fls/edit?usp=sharing

Support materials

http://www.agner.org/optimize/optimizing_cpp.pdf

https://www.arm.com/files/pdf/AT_-_Better_C_Code_for_ARM_Devices.pdf

Lab sessions

  1. PC Lab 1 - x86 C++ optimizations
  2. PC Lab 2 - 8-bit MCU: PIC 10F200 asm optimizations
  3. PC Lab 3 - x86 ???
  4. PC Lab 4 - x86 U8 SAD/SSD
  5. PC Lab 5 - x86 ASIFT C++ profiling and optimizations
  6. PC Lab 6 - OpenCL

Contact: calin.bira_AT_upb.ro