Git Product home page Git Product logo

sw-optimizations-for-wifi-6-hew-soc's Introduction

SW Optimizations for WiFi-6 (HEW) SoC

Microprocessor-Application Term project (Park Jonghyuk, Ko Ryeowook)

0. Key objectives of this Term project

Optimizing reference QR Decomposition & LDPC Decoding C code

  • Pure-SW implementation (No HW block allowed to accelerate the function)

> Evaluation Criteria

  • Reproduibility
  • Accuracy (NSR)
  • Performance (How fast it got compared to the reference)
  • Novelty

> Things provided in class

  • Reference C code of QR Decomposition, LDPC Decoding algorithm
  • Benchmarking C code

> What we considered

  • Accuracy and time
  • Understanding of reference C code
  • Debugged into assembly level to find the part that takes long time.

1. Programming language & S/W tools & FPGA used

  • C programming language
  • Vivado 2017.4, Vivado SDK
  • ZYNQ Z7-20

2. Our idea

LDPC Decoding

  • Loop optimization (Loop order change, loop merge) - best performance improvement
  • Declared new variables in every loop
  • Minimize access to external global H arrays
  • Used temporary variables

QR Decomposition

  • Changed every multiply & division operation into shift operation
  • Reciprocal the variable and converted it into multiplication.
  • Used temporary variables (best performance improvement)
  • Utilized faster "sqrt()" algorithm (Float square root approximation)
  • Loop unrolling, loop order change
  • Tried to apply loop tiling, but showed low performance improvement.
  • More details : 16team_final.pdf

3. Result

LDPC Decoding result

ldpcd_result

  • 5.44 times faster than the reference with NSR of -inf [dB]

QR Decomposition

qrd_result

  • 2.16 times faster than the reference with NSR of -57.682 [dB]
  • More details : 16team_final.pdf

4. What I have learned

  • SW implementation on ZYNQ Z7-20
  • Usage of Vivado SDK
  • Improved my C programming skills
  • Learning of ways to optimize C code
    • Cache optimization
    • Loop optimization
    • Assembly level coding
    • Temporary variables
  • Understanding of assembly language (+ Neon)
  • Read IEEE articles related to software optimization

sw-optimizations-for-wifi-6-hew-soc's People

Contributors

kyleparkjong avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.