Giter Club home page Giter Club logo

Comments (4)

ghostop14 avatar ghostop14 commented on June 3, 2024

Hi SvenKrebs, I took a look through the code and I think the best performance would be to just chain a decimator, the GPU filter, and a rotator (or use the freq shift block in gr-lfast that cuts the manual 2PI/samp_rate calc you have to add out of your flowgraph). That's all the XLATing filter is really doing anyway (just combining them in a single block). This would also benefit in that the rotator/freq shift blocks use volk whereas the XLATing blocks don't because they rotate/decimate in a for loop one sample at a time.

For the parallelism on the GPU I'd need to use sin/cos for the shift rather than what a basic rotator does sequentially, which would add cycles to the GPU code, and the decimation would have to be done outside the GPU anyway. So I think the best overall performance may be Decimate->FIR/FFT filter on the GPU->rotator/shift block (since they use volk).

I could add a hierarchical block in clenabled to do it but somehow that doesn't feel right since only one of the pieces would actually be on the GPU.

from gr-clenabled.

SvenKrebs avatar SvenKrebs commented on June 3, 2024

from gr-clenabled.

ghostop14 avatar ghostop14 commented on June 3, 2024

Hi SvenKrebs, there is a general block in gnuradio core. The best block for general decimation would be to look at the rational resampler. Just set the decimation to what you'd like and leave the interpolation at 1. Putting it first before the filter reduces downstream processing throughput by the decimation so it's best to do it first if you can. I haven't looks at the other GSM blocks. SIMD on GPUs is highly dependent on the algorithms. Anything you can do in parallel on a sample set (like general multiplication by a scalar at the simplest) scales well to a GPU. Calculations that have sequential calculations like PLL loops (things where out[n] is a function of out[n-1] for instance) doesn't scale to a GPU for parallel processing. So I'd have to look at the algorithms.

from gr-clenabled.

SvenKrebs avatar SvenKrebs commented on June 3, 2024

from gr-clenabled.

Related Issues (12)

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.