discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] [GSoC2018][Standard FEC Decoders][Need Feedback]


From: Harshit Gupta
Subject: Re: [Discuss-gnuradio] [GSoC2018][Standard FEC Decoders][Need Feedback]
Date: Sun, 25 Mar 2018 04:43:19 +0000

Greetings,

Thanks Demel for the detailed feedback. I have updated most of the parts. Please have a look [0] and report for any ambiguity. 

[0] https://github.com/harshit4084/MyDoc/blob/master/gsoc2018_Harshit_Gupta.pdf


Best Regards,
Harshit Gupta

On Fri, Mar 23, 2018 at 10:06 AM, Johannes Demel <address@hidden> wrote:
Hi Harshit,

I read your proposal and I have quite a few suggestions for improvement.

General remarks
Your references must be updated. They do not point to the actual sources but some general landing page. Also, I found at least one reference that points to an incorrect source.

Introduction
This section needs to be better structured. Give a brief analysis of the current state and what you want to achieve.
e.g.: current GR codes. Why use LDPC? 5G standard. Overall goal.

Features
here you need to clearly state what you want to do. Which codes? What should they achieve? Tools? Language?

LDPC code theory [missing]
Discuss how LDPC codes are defined. This includes a short discussion on Gallager's and MacKay's work. Discuss how Tanner graphs work. Discuss known decoder algorithm.
Also: http://www.inference.org.uk/mackay/codes/data.html

Workflow
Discuss the `gr-fec` interface for encoder and decoder objects. You want to integrate your work into GNU Radio. Show us how you want to achieve this. And show us that you worked through the FECAPI.
>From theory to practice:
- Start with generic implementation of LDPC codes (Python?)
- Work through 5G standard to learn the complete code space.
- Start with one code and implement it in C++.
- Discuss how you want to ensure code quality. i.e. unittests.

You mention a GUI. I'd argue a GUI would be a distraction from your actual goal.

Deliverables
It is a difficult task to implement and optimize one code. Focus on LDPC codes. Drop the Turbo Code part. Also, be way more specific here. What will be the outcome of your project? Think of it in terms of milestones.
Discuss which parts you want to implement how. Python/C++. Also, discuss SIMD if you want to use this. There are quite a few different approaches. OpenMP, AVX/SSE, Neon, etc. How are they related to Python/C++?

This section should be accompanied by a detailed timeline. At least what you want to achieve each week. Show us how you envision your progress and what you want to do. Show us that you put some thought into this.
Start with your timeline from now on. Show us how you want to become part of our community.

Implementation
Create your own figures. Show us how you understand things.
There are good LaTeX tools to create Listings with C++ highlighting. Use them for your code example. So far your code example is very vague. I'd suggest you show us how you would implement a LDPC node. Or something similar.
Keep in mind GNU Radio does generally target CPUs. Thus, your GPU implementation part seems to be out of place. Unless, you want to implement LDPC codes on GPUs. In this case discuss the technologies you want to use. And also, how do you want to integrate your work into GNU Radio in this case? I'd suggest to go for a CPU implementation, though.
Do not copy code from other sources. Also, please do not copypasta equations into your proposal from other sources. Show us that you understand what you are talking about and make your proposal consistent. These suggestions apply to `algorithm 1` as well.

3GPP 5G/Release 15 discussion
Do not copy parts of the standard. Discuss the specifics of the LDPC codes in the standard and how they work. What are ptifalls? simplifications?

License
Do you want to publish all your code under GPLv3? Then state this. Also, discuss if you want to create an OOT or you want to merge your code into the main GNU Radio project. This would require a CLA I guess.

Your background
Please give us a short CV here and discuss your previous experience.

All in all, I'm happy you want to pick up this project.

Cheers
Johannes


On 22.03.2018 22:42, Harshit Gupta wrote:
Greeting Mr Muller and community,

I have made improvement in the proposal. Have a  glimpse of it,

Some queries:
What exactly should I include in 'Implementation'? I have put generic decoder code and sample code for optimal implementation of FEC codes.
What can be the outcome of a specific process?

Link to my git repo for proposal is [0].


[0] https://github.com/harshit4084/MyDoc/blob/master/gsoc2018_Harshit_Gupta.pdf <https://rb.tc/33Z7W#https://github.com/harshit4084/MyDoc/blob/master/gsoc2018_Harshit_Gupta.pdf>






On Thu, Mar 22, 2018 at 8:01 PM, Müller, Marcus (CEL) <address@hidden <mailto:address@hidden>> wrote:

    Hi Harshit Gupta,

    thanks for showing up and being interested in GNU Radio!
    I'm very happy that someone with an information theory background
    decided to give channel code implementations a try.

     From a quick scan of the proposal, I'd say that you have not adhered to
    all the mandatory things on our GSoCStudentInfo wiki page; doing so is
    mandatory, so please make sure to really check of *all* the items on
    that list, or your proposal might simply not be eligible.

    I'm missing a bit on your personal experience and background. You
    really don't seem to follow the "Background on yourself" section on the
    aforementioned Wiki page at all. Is this the first time you're
    implementing channel codes or using C++, do you have experience in
    optimizing existing code? Can you show us code you've written? I'm
    really excited about all the cool stuff that we could do if you did
    your GSoC on this, but we need to know who we're dealing with, and what
    the skills are that you bring to this very challenging proposal.

    You cite a lot from two papers, which is very fine by me, but doesn't
    really allow myself to understand what part you're expecting to have to
    implement yourself, and what part is existing code? If I understand
    your proposal correctly, you aim to do all en- and decoding on GPU, not
    CPU, which is cool, but also raises the question of your experience in
    that field, and access to hardware you have.

     From an aesthetic point of view, the citing/copying from different
    sources doesn't really make for a consistent flow while reading. This
    isn't top priority, but you might want to get your proposal as nice as
    you would want a job application to be by the moment you finally upload
    it.

    Best regards,
    Marcus

    On Thu, 2018-03-22 at 19:06 +0000, Harshit Gupta wrote:
    > Greetings,
    >
    > My name is Harshit Gupta, graduated in Electrical Engineering. Currently pursuing masters from Indian Institute of Technology, Delhi.  Having studied information theory in my post-graduate coursework, I can understand FEC codes in a better manner. I want to contribute to GNU Radio with my coding skills and knowledge of channel coding.
    >  I am very interested to work on FEC decoders particularly starting from LDPC decoders. GNU Radio would benefit from these integrations.
    >
    > The gr-fec API by GNU is an implementation of a few channel coding techniques but are quite slow to be used in high throughput applications. The current issue is to use standardized decoders in the coding techniques to make gr-fec API suitable for high-performance applications and integrate it with GNU radio.
    >
    > I went through some recent research paper like in QPP-Block-LDPC Codes which proposes new approaches to implement the existing codes. The relevant list can be found here[1].
    >
    > I went through gr::fec::code::cc_encoder Class and gr::fec::code::ccsds_encoder, which implements the above code that is more highly optimized for specific settings (rate 1/2, K=7, and polynomials [109, 79]).
    >
    > Also, I went through the application of LDPC. It seems 5G will greatly benefit from fast LDPC code. A project on fast implementation of LDPC code will be a good experience. I searched through 3GPP 38 series of documents [2] and found the used LDPC algorithm.
    > I have listed out steps for optimal implementation.
    >
    > My queries are:
    > 1. what kind of generic code for decoder I should add in my proposal?
    > 2.Please look at my draft proposal[3]. Is there any redundant information?
    > 3. Fast LDPC decoder and optimal implementation of 3GPP used LDPC codes Both are good but which to choose?
    >
    >
    > Deadline is quite near. Hence I am diligently working on the proposal
    >
    > Links:
    > [1] http://aff3ct.github.io/hof_ldpc.html
    <http://aff3ct.github.io/hof_ldpc.html>
    > [2] http://www.3gpp.org/DynaReport/38-series.htm
    <http://www.3gpp.org/DynaReport/38-series.htm>
    > [3] https://github.com/harshit4084/MyDoc/blob/master/gsoc2018_Harshit_Gupta.pdf
    <https://github.com/harshit4084/MyDoc/blob/master/gsoc2018_Harshit_Gupta.pdf>
    >
    >
    > .
    >
    > Thank you,
    > Harshit Gupta
    >
    >
    >
     > _______________________________________________
     > Discuss-gnuradio mailing list
     > address@hidden <mailto:address@hiddenrg>
     > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
    <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>




_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


reply via email to

[Prev in Thread] Current Thread [Next in Thread]