| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
determines that it is input blocked
Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Completion of custom buffer/accelerator device support changes:
* Improved custom buffer interface by removing awkward memory
allocation functions from the block class
* Increased flexibility for creating custom buffers by allowing
creation of buffer_single_mapped subclasses
* Fully incorporated data movement abstraction into the custom
buffer interface and the runtime itself; accelerated blocks are no
longer directly responsible for their own data movement
* Zero copy back-to-back accelerated blocks are now supported (data
no longer needs to be moved back to the host between each block)
Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
Signed-off-by: Mike Mason <mike.mason@blacklynx.tech>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Custom Buffer/Accelerator Device Support - Milestone 1 changes:
* Refactored existing single mapped buffer code and created single
mapped buffer abstraction; wrapping within single mapped buffers
is handled explicitly by input blocked and output blocked
callbacks that are called from block_executor
* Added simple custom buffer allocation interface (NOTE: this
interface will change for milestone 2)
* Accelerated blocks are still responsible for data transfer but the
custom buffer interface eliminates the double copy problem
Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
|
|
|
|
|
|
| |
Clean up includes on the way.
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
run
/usr/share/clang/run-clang-tidy.py -checks=file '-header-filter=.*'
-fix ..
from build directory.
Then,
clang-format -i $(git diff --name-only origin/master)
to clang-format changed files.
Then, refresh all header hashes in pybind bindings
(*/python/bindings/*.cc)
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
|
|
|
|
|
|
| |
Also, clean up includes
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
|
| |
|
|
|
|
|
|
| |
The remaining ones:
* `pmt_pool.cc`, which is a memory allocator so that makes sense
* the tricky and aptly named `sptr_magic.cc`.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang-format: ordering includes in gnuradio-runtime
clang-format: ordering includes in gr-filter
clang-format: ordering includes in gr-fft
clang-format: ordering includes in gr-audio
clang-format: ordering includes in gr-analog
clang-format: ordering includes in gr-fec
clang-format: ordering includes in gr-wavelet
clang-format: ordering includes in gr-zeromq
clang-format: ordering includes in gr-vocoder
clang-format: ordering includes in gr-video-sdl
clang-format: ordering includes in gr-trellis
clang-format: ordering includes in gr-blocks
clang-format: ordering includes in gr-digital
clang-format: ordering includes in gr-uhd
clang-format: ordering includes in gr-dtv
clang-format: ordering includes in gr-channels
clang-format: ordering includes in gr-qtgui
clang_format.py: re-enable include reordering
|
| |
|
|
|
|
|
|
|
|
|
| |
During the fix for long long on 32bit architectures a bug was introduced
which lead to offset being multiplied by (mp_rrate + one_half).
The correct solution is to multiply with mp_rrate and then add one_half.
Fixes #2201
|
|
|
|
|
|
|
|
| |
C++ bindings for MPIR/GMP don't provide conversion for uint64_t, also
known as "long long" on 32-bit architectures.
Using the underlying (GMP/MPIR) C library directly allows usage of these
types.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid floating point precision problems in propagation of tags for
the following cases:
- Common relative rates that are non-terminating in binary (1/3, 1/5, 1/7, ...)
- Large tag offsets
- Inexact floating point reciprocals when specifying the relative rate
This change to the runtime only fixes the tag propagation problems for
blocks with a fixed/unchanging relative rate.
This change adds a dependency on the MIPR library (a fork of the GMP
library) to perform multiple precision interger rational arithmetic.
MIPR was chosen as it purports to maintain a properly working Windows
build for cross-platform compatability. Optimizations in MIPR are
also targeted to ARM in additional to x86-64.
|
|
|
|
| |
Luzpaz went ahead and found typos using `codespell -q 3`.
|
|
|
|
|
|
|
|
|
| |
Optimize some reference counted buffer[_reader]_sptr grabs and releases
that show up as minor CPU wasters in profiling when there are a lot of
tags or some blocks that "return 0" often.
At high sample rates (e.g. 160 Msps), this can save ~2% CPU on
blocks that propagate a fair number of tags.
|
| |
|
|
|
|
|
|
|
| |
Executor uses information about the number of items produced/consumed to
update the relative rate. This makes sure tags are being propagated by
all blocks correctly. Needed for pfb_clock_sync to use the
correlate_and_sync block's tags.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because of the data types in use here, d_ninput_items_required can
overflow and become negative, which then causes bad addressing of the
input buffer in a block's work function. Even if we were using
unsigned types, we might still have situations of overflow; it
wouldn't crash in this case but cause wrong addressing, anyways.
We might be able to catch and handle this situation better. This fix
tests for the condition and shuts down the flowgraph with an error
message. Basically, parameters that cause this effect are well out of
bounds of what we want to handle, anyways.
|
|
|
|
| |
We should be more careful about letting these into the code in the future. In emacs, we can use (add-hook 'before-save-hook 'delete-trailing-whitespace).
|
| |
|
|
|
|
| |
included rounding behavior
|
|
|
|
|
|
| |
When enabled, uses nitems_written/nitems_read to update the relative_rate of a block. Useful for blocks that change their relative rate based on activity in the work function. Disabled by default.
digital: PFB clock sync blocks set update_rate to True.
|
|
|
|
| |
to update the relative rate. This makes sure tags are being propagated by all blocks correctly. Needed for pfb_clock_sync to use the correlate_and_sync block's tags.
|
|
|
|
| |
that the value is always an output_multiple.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Catches up runtime_pimpl branch with changes on next since
the initial branch start.
Conflicts:
gnuradio-runtime/include/gnuradio/constants.h
gnuradio-runtime/include/gnuradio/tags.h
gnuradio-runtime/include/gr_block_detail.h
gnuradio-runtime/include/gr_buffer.h
gnuradio-runtime/lib/CMakeLists.txt
gnuradio-runtime/lib/gr_block.cc
gnuradio-runtime/lib/gr_block_detail.cc
gnuradio-runtime/lib/gr_block_executor.cc
gnuradio-runtime/lib/gr_buffer.cc
gnuradio-runtime/lib/gr_realtime.cc
gr-blocks/lib/interleaved_short_to_complex_impl.cc
|
|
|