Comments (4)
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.
from gr-clenabled.
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.
from gr-clenabled.
Related Issues (12)
- PFB Clock Recovery Block HOT 3
- GNC Window Crashes When Changing QT GUI Range HOT 6
- Discontinuities using Tap-based Filter HOT 9
- 3.10 Mint 21 build problems (boost and iomanip)
- Compiling Issues HOT 8
- FFT size > 4096 HOT 1
- using opencl 2 cl2.hpp HOT 5
- Compilation error: cerr is not a member of std HOT 1
- complex taps HOT 7
- AttributeError: 'module' object has no attribute 'myclSignalSource'
- GRC: Error in CL FFT block for GNURadio 3.8 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gr-clenabled.