You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm running rtlamr on a four core Odroid C1. It has just enough horse power to work correctly but I do get a fair number of ll+ messages from rtl_tcp. I get a single core pegged at 100% CPU utilization.
Is it possible to split decode into go routines to better make use of multiple cores?
The main problem with building concurrency into rtlamr is that each stage depends on the result of the previous, the best we can do is pipe-lining. This doesn't necessarily help anyway because each block of data must be processed entirely by one section of code before it can be handed to the next.
Splitting the blocks into smaller pieces would increase granularity of execution and allow each section to spend more time processing and less time waiting but this will likely sacrifice throughput because most of the DSP related tasks are optimized to the point that main memory accesses are the bottleneck in most systems rather than the CPU.
I'll do some testing to see if this will help any on lower power systems, I'm betting the only place we can add concurrency would be splitting Pack and Search off from the rest of the execution.
I've done some investigation into this and there isn't much opportunity for performance improvement by separating portions of the signal chain into goroutines. There will be some benefit to this when multiple protocols per invocation is supported but until then I'm closing this issue.
I'm running rtlamr on a four core Odroid C1. It has just enough horse power to work correctly but I do get a fair number of ll+ messages from rtl_tcp. I get a single core pegged at 100% CPU utilization.
Is it possible to split decode into go routines to better make use of multiple cores?
The text was updated successfully, but these errors were encountered: