discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: Release Candidate v3.10.0.0-rc1


From: Ryan Volz
Subject: Re: Release Candidate v3.10.0.0-rc1
Date: Sun, 12 Dec 2021 00:48:50 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Hi all,

3.10.0.0-rc2 is now available as a conda package through the gnuradio_rc label 
on conda-forge. From an existing conda installation, you can create a new 
environment to test it out using the following commands:

conda create -n grtest -c conda-forge/label/gnuradio_rc -c conda-forge gnuradio
conda activate grtest

See https://wiki.gnuradio.org/index.php/CondaInstall for more details.

Hopefully this gives some of you an easier way to try out and stress test the 
release candidate, particularly on macOS and Windows (although I think it's 
nice for Linux users too!).

Cheers,
Ryan

On 12/11/21 8:51 AM, Josh Morman wrote:

3.10.0.0-rc2 is now available: 
https://github.com/gnuradio/gnuradio/releases/tag/v3.10.0.0-rc2 
<https://github.com/gnuradio/gnuradio/releases/tag/v3.10.0.0-rc2>
and you can see the current changelog here: 
https://github.com/gnuradio/gnuradio/blob/master/CHANGELOG.md 
<https://github.com/gnuradio/gnuradio/blob/master/CHANGELOG.md>
The plan is to make a final release mid-January, so this may involve one more 
RC if there are any more major issues to sort out.

Have a great weekend!

Josh

On Sat, Nov 27, 2021 at 10:29 AM Josh Morman <jmorman@gnuradio.org 
<mailto:jmorman@gnuradio.org>> wrote:

    Greetings GNU Radio Community!

    Release 3.10 is expected to drop sometime in the new year, but to get the ball 
rolling with testing and packaging - we are expecting a longer than usual Release 
Candidate cycle, and likely there will be /at least/ one more RC, so here is 
v3.10.0.0-rc1 <https://github.com/gnuradio/gnuradio/releases/tag/v3.10.0.0-rc1>

    We have been fortunate this year to have extremely active backporting and 
consistent maintenance releases from co-maintainter Jeff Long - so many of the 
fixes and smaller feature (and larger ones) have already seen the light of day 
in the 3.9.x.x and even 3.8.x.x releases.  Here are some of the bigger features 
that are bringing about this major release.

    _*gr-pdu*_
    PDUs (protocol data units) in GNU Radio are a special type of PMT that have a 
dictionary and a uniform vector type representing a burst of data with some metadata.  Up 
to this point, support of pdus has been scattered throughout the codebase with minimal 
support for handling this type of data consistently.  Fortunately, Jacob Gilbert has been 
able to upstream much of the amazing work from himself and the team at Sandia National Labs 
which brings in-tree a suite of tools for manipulating these data objects (see 
https://github.com/sandialabs/gr-pdu_utils 
<https://github.com/sandialabs/gr-pdu_utils>).  Also, many of the previous PDU 
processing blocks that existed in other in-tree modules have been migrated to this module, 
so there has been some block re-arrangement.  Please see 
https://www.youtube.com/watch?v=bT60hVVte48 
<https://www.youtube.com/watch?v=bT60hVVte48> for more detailed information

    _*gr-iio*_
    IIO is the industrial I/O framework that provides an industry standard 
method for communicating with a wide-range of devices including many of the ADI 
SDR platforms.  Analog Devices has supported out of tree a gr-iio module that 
brings this capability into GNU Radio and now upstreamed this module so support 
for devices like the PlutoSDR are available out of the box.  Special thanks 
here to Adam Horden, Travis Collins, Dave Winter, Volker Shroer, and Jeff Long 
for bringing this in-tree and working through many of the complexities.
    Please see https://www.youtube.com/watch?v=2gKbollW6wg 
<https://www.youtube.com/watch?v=2gKbollW6wg> for a more technical description 
of IIO and gr-iio.

    _*Custom Buffers Support*_
    NOTE: this is an advanced "experimental" feature that if not actively 
employed will not affect normal GNU Radio usage.
    David Sorber from Black Lynx has introduced a feature that enables streamlined data 
movement between GNU Radio blocks and hardware accelerators.  By creating a "custom 
buffer" class (or using one that is provided by someone else), blocks can be made to 
abstract the data movement behind the scenes so that when the `work` function is reached, 
data already exists in the device memory.
    Let me give a quick example - previously if you wanted to write a GPU accelerated 
block with CUDA, you would have to get into the work function, move the data from the 
GNU Radio circular buffers to GPU device memory, execute the CUDA kernels, then move 
the data back to GR buffers.  Now that data movement is done behind the scenes if the 
block is set up right so that when the work function is hit, the data is in GPU 
device memory and will get transferred back to CPU memory behind the scenes as well.  
This allows back to back HW accelerated blocks to not have to ingress/egress in and 
out of GR memory unnecessarily.  Also, the single mapped buffer abstraction brings 
huge performance benefits as can be seen here: 
https://www.youtube.com/watch?v=VO1zMXowezg 
<https://www.youtube.com/watch?v=VO1zMXowezg> for a much better description
      For examples of this in action, please see the following repositories:
    https://github.com/BlackLynx-Inc/gr-cuda_buffer 
<https://github.com/BlackLynx-Inc/gr-cuda_buffer>
    https://github.com/BlackLynx-Inc/gr-blnxngsched 
<https://github.com/BlackLynx-Inc/gr-blnxngsched>
    This out of tree support will soon find its way into the gnuradio github 
repo as a set of CUDA buffers and blocks.

    _*Logging Infrastructure*_
    Log4CPP has previously been our logging backend library, but has become a 
troublesome dependency.  A huge thanks to Marcus Müller for fixing all of this 
up, replacing Log4CPP with spdlog - a more modern logging library.  This also 
opens up the door for more modern logging statements that don't rely on 
Boost.format, and libfmt (which is now also a dependency) can be used for 
general string manipulation as well.  All the previous methods and macros still 
exist (except for the log4cpp specific ones), but there is now new capability 
to log in a more convenient way using the libfmt statements.
    Old: GR_LOG_INFO(this->d_logger, boost::format("this happened: %d") % code)
    New: this->d_logger->info("this happened {:d}", code)

    As always, please reach out here or on chat.gnuradio.org 
<http://chat.gnuradio.org> if you have any questions - and file GitHub issues 
if you find bugs or problems with the release.  The step from 3.9 should be pretty 
minimal, but if you are migrating your OOTs - please update the porting guide if you 
come across differences that need to be documented:
    https://wiki.gnuradio.org/index.php/GNU_Radio_3.10_OOT_Module_Porting_Guide 
<https://wiki.gnuradio.org/index.php/GNU_Radio_3.10_OOT_Module_Porting_Guide>

    Have a happy Holiday season and much thanks to all who have contributed 
toward this next major release.

    Josh





reply via email to

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