[USRP-users] [Discuss-gnuradio] [UHD] Announcing 3.14.0.0 Release Candidate 1

Nate Temple nate.temple at ettus.com
Thu Feb 14 13:55:17 EST 2019


Hi Andre,

The one example I can give at this time is limited and semi-anecdotal as
I've only tested it on a single machine.

With an i7-4790k / Intel x520-DA2 and N310, to stream at full duplex, over
two channels at 125 MS/s, the lowest I can run my CPU clock freq at without
flow control errors is 3.8 GHz using benchmark_rate and the native
networking stack. Using DPDK I can run 2x2 @ 125 MS/s with my CPU freq
locked at 1.5 GHz with no flow control errors.

Regards,
Nate Temple

On Thu, Feb 14, 2019 at 3:57 AM Andre Puschmann <
andre.puschmann at tu-ilmenau.de> wrote:

> Hey guys,
>
> any idea or numbers on the performance improvement using DPDK, e.g. CPU
> usage during rx/tx streaming, when compared to the legacy approach?
> Would be great to get a feeling for the achievable gains.
>
> Thanks
> Andre
>
>
> On 13/2/19 20:58, Nick Foster via USRP-users wrote:
> > Any plans to update to the latest API? Won't compile with anything after
> > 17.05.
> >
> > On Wed, Feb 13, 2019, 11:33 AM Michael West
> > <michael.west at ettus.com
> > <mailto:michael.west at ettus.com>> wrote:
> >
> >     Hi Nick,
> >
> >     Information on using DPDK can be found here:
> >     http://files.ettus.com/manual/page_dpdk.html
> >
> >     DPDK can be used with any example.  Think of it as an accelerator
> >     for Ethernet transports if using Intel NICs.
> >
> >     Regards,
> >     Michael
> >
> >     On Thu, Feb 7, 2019 at 10:29 AM Nick Foster
> >     <bistromath at gmail.com
> >     <mailto:bistromath at gmail.com>> wrote:
> >
> >         Great news! DPDK support is an interesting development. Is there
> >         any documentation or examples which show this capability?
> >
> >         Nick
> >
> >
> >         On Thu, Feb 7, 2019 at 10:05 AM Michael West via USRP-users
> >         <usrp-users at lists.ettus.com
> >         <mailto:usrp-users at lists.ettus.com>> wrote:
> >
> >             The release candidate of UHD version 3.14.0.0 has been
> >             tagged and is available for testing.  This API release
> >             introduces support for the N320 and N321 USRPs soon to be
> >             released (watch for the announcement on ettus.com
> >             <http://ettus.com>!), a DPDK-based transport, and several
> >             other features and bug fixes.  This release includes all bug
> >             fixes and enhancements in the 3.13.0.1, 3.13.0.2, and
> >             3.13.1.0 maintenance releases.
> >
> >             The tag for this release candidate:
> >
> https://github.com/EttusResearch/uhd/releases/tag/v3.14.0.0-rc1
> >
> >             There have been 406 commits since the last API release
> >             (3.13.0.0)which can be viewed here:
> >
> https://github.com/EttusResearch/uhd/compare/v3.13.0.0...v3.14.0.0-rc1
> >
> >             Please report any bugs found on the UHD issue tracker:
> >             http://github.com/EttusResearch/uhd/issues
> >             * Please do not use the issue tracker for help or support.
> >
> >             Pull requests for direct code changes may be submitted to
> >             the UHD or FPGA repositories:
> >             http://github.com/EttusResearch/uhd/pulls
> >             http://github.com/EttusResearch/fpga/pulls
> >
> >             CHANGELOG:
> >             ## 003.014.000.000
> >             * N320: Add N320 and N321
> >             * Test: Add Python API test
> >             * Device3: Move from packet-based to byte-based flow control
> >             * X300: Reduce default send_frame_size to 4000 over Ethernet
> >             * UHD: Release recv buffers earlier in rx_streamer
> >             * Device3: Constrain send_buff_size to input fifo size
> >             * X300: Change Ethernet buffering
> >             * MPMD: Parallelize broadcast-finding
> >             * Device: Parallelize device discovery
> >             * Docs: Fix Doxygen warnings
> >             * B100: Move fifo_ctrl_excelsior to b100 subdir
> >             * B100: Fix fifo_ctrl_excelsior not exiting
> >             * B100: Remove all Boostisms from fifo_ctrl_excelsior
> >             * B100: Demote some clocking-related log messages to trace
> >             * X300: Log git hash and compat number as debug message
> >             * N310: Modify AD9371 reset function to keep it in reset
> >             * N3xx: clocking API changes for transitioning clock and
> >             time sources
> >             * E320: bist: Fix ref_clock lock test implementation
> >             * UHD: Fix ADF400x driver for ref counter and charge pump
> mode
> >             * E320: bist: Add link_up test
> >             * MPM: Get list of temperatures from all thermal zones
> >             * E320: Add all 5 temp sensors, fan sensor and rssi sensors
> >             per channel
> >             * E320: Fix tx/rx atr - antenna and frequency settings
> >             * E320: Enable devtest for E320
> >             * X300: Move defaults to their own header
> >             * UHD: Improve constrained_device_args_t
> >             * X300: Use constrained_args
> >             * X300: Enable clock_source and time_source device args
> >             * Test: Integrate Python API Tester into Devtest
> >             * N3xx: Bump max rev to G/6
> >             * N3xx: Improve error messages for invalid clock/time
> settings
> >             * E320: images: Separate images package for Aurora image
> >             * B200: Remove superfluous fake lambda
> >             * B200: Add support for user regs
> >             * Docs: Add info on how to implement user regs on B200
> >             * UHD API: Add multi_usrp::get_user_settings_iface()
> >             * N310: move init_rf_cal before JESD de/framer bringup
> >             * UHD: Remove usage of time_t (except when required)
> >             * NIRIO: Demote RPC client cancel/abort to TRACE
> >             * RFNoC: Convert SR_READBACK_REG_FIFOSIZE to bytes
> >             * Utils: Add Zip test to downloader
> >             * Utils: Factor wait_for_lo_lock() out of cal utils
> >             * DPDK: Add DPDK-based sockets-like library
> >             * MPMD: add option to enum rfnoc blocks from args
> >             * E320: Get RFNoC crossbar baseport from FPGA
> >             * N3xx: Get RFNoC crossbar baseport from FPGA
> >             * UHD: add default xport params to udp_zero_copy
> >             * MPM: add link_speed xport_info
> >             * MPMD: add link speed to xport udp
> >             * Device3: remove tx_hint[send_buff_size]
> >             * X300: remove default_buff_args properties
> >             * RFNoC: Add ability to enable/disable RX timestamp
> >             * RFNoC: add async message handler
> >             * Examples: add rfnoc_radio_loopback example
> >             * UHD: Update rx_frontend_gen3.v controls for 1/4-rate mixer
> >             * UHD API: Move definition of ALL_MBOARDS and ALL_CHANS
> >             constants to
> >                        CPP file.
> >             * MPM: Add __mpm_device__ as usrp_hwd module variable
> >             * MPM: Add usrp_update_fs
> >             * UHD: Add traffic counter to null source sink
> >             * Examples: Add benchmark_streamer example
> >             * Tools: Add tool to analyze settling time of gain and freq
> >             changes
> >             * UHD API: Add multi_usrp::set_sync_source() API
> >             * UHD: Improve documentation for the UHD exception types
> >             * Examples: Add dual measurements to benchmark_streamer
> >             * MPM: Add i2c APIs for simple transfers
> >             * MPM: Add vector-based transfer function for i2c
> >             * UHD: Improve documentation for set_{time,clock,sync}_source
> >             * CMake: Bump CMake minimum version to 2.8.12
> >             * MPM: Add variable configuration support to nijesdcore
> >             * MPM: Add eyescan utility to nijesdcore
> >             * MPM: Add PRBS-31 testing to nijesdcore
> >             * CMake: Change SOVERSION and VERSION for the library files
> >             * Test: Add graph impl test to device3_test
> >             * RFNoC: Changes to traffic counter register names
> >             * X300: Remove 120 MHz master_clock_rate option
> >             * MPM: Add convenience function to pull i2c bus from device
> tree
> >             * UHD: add .clang-format file
> >             * MPM: Open and close i2c file descriptor on every access
> >             * UHD: Add device arg to enable dual ethernet for tx
> >             * Test: Retrofit sph test to use new mock transport
> >             * X300: Set minimum master clock rate to 184.32 MHz
> >             * RFNoC: Fix replay example port args
> >             * RFNoC: Fix default SPP for replay
> >             * RFNoC: Add halt to replay API
> >             * UHD API: Add sync source to Python API
> >             * Examples: Clean up rfnoc_radio_loopback example
> >             * UHD: Improve compatibility of abs() calls
> >             * UHD: include <stdint.h> for int64_t for time_spec
> >             * USRP-2974: Add support for USRP-2974
> >             * UHD API: Add support for Tx LO control to C API
> >             * E310: Fix initialization of antenna and frequency values
> >             * Test: Enable rx_samples_to_file in devtest for X300
> >             * Examples: Add keyboard controls to rx_ascii_art_dft
> >             * Examples: Add benchmark_streamer support for multi-channel
> >             streamer
> >             * MPM: Multiprocessing instead of threading for claimer loop
> >             * MPM: Factor out user EEPROM code into own module
> >             * RFNoC: Fix late packet errors
> >             * X300: Factor our PID -> MB type and MB type -> product
> >             name mapping
> >             * X300: Remove usage of boost::bind
> >             * Docs: Add manual page on compat numbers
> >             * UHD: Updates to coding guidelines
> >             * Examples: Optimize benchmark_rate start time
> >             * Examples: Improve formatting and comments in tx_waveforms
> >             * Examples: Optimize tx_waveforms memory allocations
> >             * UHD: Fix MSVC warnings by changing a size_t to unsigned
> int or
> >                    uint32_t
> >             * Test: Fix CMake `endif` warning for devtest
> >             * MPM: Add gpgga sensor function to GPSd iface
> >             * Test: Fix compiler warning about unused timestamp
> >             * X300: Fix compiler warnings related to type conversions
> >             * B200: Fix compiler warnings related to type conversions
> >             * Test: Add #include <thread> in system time test
> >             * Examples: change boost to std for time commands
> >             * UHD: Add potentially missing but sometimes inferred
> >             include for
> >                    experts
> >             * UHD: Add default xport params to udp_wsa_zero_copy
> >             * Examples: Add LO Offset to rx_samples_to_file
> >             * Examples: update lo-offset naming in tx from file
> >             * Examples: Add lo-offset to tx_waveforms
> >             * UHD: Move device3 flow control functions to header for
> >             benchmark
> >                    utility
> >             * Test: Add benchmark of streaming code paths
> >             * MPMD: Add API to set RPC timeout atomically
> >             * MPMD: Move timeout constants to header
> >             * MPMD: Use new RPC API with timeout
> >             * MPMD: Increase claim_rpc call timeout
> >             * Examples: Improved error message in tx_waveforms
> >             * UHD: Make sure BOOST_VERSION is always available
> >             * Docs: Add comments for TwinRX and MCR
> >             * DPDK: Add ARP responder, set MTU, and clean up API
> >             * DPDK: Add blocking recv calls to uhd-dpdk
> >             * DPDK: Add dpdk_zero_copy transport
> >             * Test: Add unit test for DPDK transport
> >             * Test: Add arguments to dpdk_test to control core mapping
> >             * DPDK: Move uhd-dpdk header to uhdlib
> >             * UHD: Make clang-format skip formatting for some data
> >             structures
> >             * UHD: Remove vim hints in headers
> >             * Examples: Move ascii_art_dft main function within include
> >             guard
> >             * UHD/MPM: Apply clang-format to all files
> >             * UHD: Add modified clang-format for headers
> >             * MPM: Add bridge mode support
> >             * RFNoC: Fix detection of outstanding acks by ctrl_iface
> >             * UHD: Replace uhd::math::log2 with std::log2
> >             * UHD: Replace boost::*::{lcm,gcd}() with portable versions
> >             * UHD API: Change get_{tx/rx}_dc_offset_range default from
> >             ALL_CHANS
> >                        to 0
> >             * UHD: Revert to boost instead of std for sleep in some
> >             instances
> >             * UHD: Replace Boost macros with custom ones for endianness
> >             * MPMD: implement get_*x_hints
> >             * MPMD: honor user supplied send/recv_frame_size args
> >             * UHD: muxed_zero_copy_if fixes
> >             * Examples: Fix boundary condition in ascii_art_dft plotting
> >             * CMake: Extend list of additional Boost versions
> >             * Device3: Replace NULL with 0 for empty function pointers
> >             * RFNoC: Add some missing virtual destructors
> >             * Test: replace has_key by using 'in'
> >             * Test: Add universal_newlines to subprocess call in devtest
> >             * MPMD: Use 4096 bytes for frame size for liberio transport
> >             * DPDK: Add xport_mgr for dpdk_zero_copy
> >             * DPDK: Cover all paths to request TX offloads
> >             * Test: Fix up dpdk_test to use current APIs
> >             * MPM: Parameterize max UDP link allocation
> >             * UHD: Replace Boost lock & mutex with std variety for
> >             AD9361 code
> >             * CPack: Fix RPM generation
> >             * Utils: Add check for gdb_eeprom before accessing
> >             * RFNoC: Update FIFO XML definition
> >             * MPMD: Use init timeout for update_component
> >             * Docs: Add manual page for DPDK
> >             * Docs: Add information about what dpdk_zero_copy is doing
> >             * Tools: Make the UHD source gen a plugin for the phase
> >             alignment test
> >             * CMake: fix variable usage
> >             * RFNoC: Prevent unnecessary FC ACK packets
> >             * RFNoC: More graph traversal fixes
> >             * Device3: Remove redundant function call
> >             * RFNoC: Fix scaling of M and N values in DDC/DUC
> >             * X300: Fix tick and sample rate setting
> >             * RFNoC: Fix typos in legacy_compat
> >             * RFNoC: Limit number of control packets in flight
> >             * Device3: Fix flow control window and interval
> >             * E3xx: Increase spp limit for E3xx radio
> >             * E31x: Destruct RFNoC before loading idle image
> >             * N3xx: init peripherals before loading FPGA (to fix SFP0
> >             init issues)
> >             * N3xx: Move Linux kernel to 4.15
> >             * N3xx/E320: Prepend SDK filename with device name
> >             * N310: Fix sporadic power on failures (requires firmware
> >             update)
> >
> >             ## 003.013.001.000
> >             * E320: Fix front panel GPIO readback
> >             * E320: Fix master_clock_rate setting
> >             * E320: Print extra ouptut for ref_clock BIST
> >             * E320: Fix gps_locked type
> >             * E320: Fix return value of get_fpga_type()
> >             * N3xx: Enable setting clock and time sources at runtime
> >             * N3xx: Add ref_clock BIST
> >             * N3xx: Improve set_time_source() and set_clock_source()
> >             * N3xx: Add exception for init failure
> >             * N3xx: Remove HA, XA images packages
> >             * N3xx: Change init() procedure to reduce configuration time
> >             * N310: Add frequency bounds
> >             * N310: Fix RX antenna mapping
> >             * N310: Add log messages when re-initializing dboards
> >             * N310: Add skip_rfic argument to reduce time of BIST
> >             * N310: Add initialization of TX bandwidth
> >             * E310: Fix initialization of antenna and frequency values
> >             * E310: Type-cast fix for Boost
> >             * X300: Improve firmware compat error message
> >             * X300: Updated niusrprio driver
> >             * X300: Add recovery for duplicate IP addresses in EEPROM
> >             * X300: Prevent duplicate MAC and IP addresses from being
> >             programmed
> >             * X300: New mode to configure master clock rate
> >             * X300: Implement RFNoC get antenna functions
> >             * B2xx: Fix values of MASK_GPIO_SHDN_SW and GPIO_AUX_PWR_ON
> >             in firmware
> >             * B2xx: Revert changes to DSP core to fix scaling factor
> >             adjustment
> >             * B2xx: Restore asynchronous reset of AD936x
> >                     (fixes LIBUSB_TRANSFER_OVERFLOW and unexpected sid
> >             errors)
> >             * TwinRX: enable ch1 lo amps if ch2 is using an external lo
> >             source
> >             * TwinRX: Correctly initialize antenna mapping on X300
> >             * TwinRX: Revise ADF5356 frac2 register calculation to
> >             prevent drifting spurs
> >             * TwinRX: Fix initialization
> >             * TwinRX: Tuning improvements
> >             * TwinRX: Enable phase resync on ADF535x
> >             * TwinRX: Make routing to LO1 and LO2 mutually exclusive
> >             * BasicRX/LFRX: Fix real mode in rx_frontend_core_3000
> >             * UHD: Define UHD_API as empty string when building static
> lib
> >             * UHD: Changed to 'all_matching' endpoint resolution for
> >             udp_simple transport
> >             * UHD: Add CMake flag for NEON SIMD
> >             * UHD: Fix usb_dummy_impl compilation in MSVC
> >             * UHD: Reconcile time_spec operators with boost concepts
> >             * UHD: Fix rounding in ddc/duc rate calculation
> >             * UHD: Increase MPMD RPC timeout when calling
> set_time_source()
> >             * UHD: Fix RX streamer SOB and EOB handling
> >             * UHD: Add UHD_SAFE_CALL to block_ctrl_base destructor
> >             * UHD: Change SOVERSION to ABI string and VERSION to full
> >             UHD version
> >             * UHD: Update cmake style to use lower case commands
> >             * UHD: Add SOURCE_DATE_EPOCH
> >             * UHD: Improve logic for UHD_IMAGES_DIR
> >             * UHD: Add RUNTIME_PYTHON_EXECUTABLE
> >             * UHD: Fix return value of get_rolloff() for filters
> >             * UHD: Properly register devtest
> >             * UHD: Fix log statement for Port number on RFNoC block
> >             * UHD: Use "MATCHES" instead of "STREQUAL" for "Clang"
> >             * UHD: Fix GPGGA string formatting for gpsd
> >             * Device3: Set default block control response SIDs
> >             * Device3: Fix block control flushing
> >             * RFNoC: Improved flushing mechanism in noc_shell and
> dma_fifo
> >             * RFNoC: Install missing dma_fifo_block_ctrl header
> >             * RFNoC: Replace some [] with .at() in radio_ctrl_impl
> >             * RFNoC: Fix graph traversal
> >             * MPM: Add Git hash, version to device info
> >             * MPM: Reset the RPC server upon reload
> >             * MPM: TDC: Update PDAC BIST and flatness test to use latest
> >             APIs
> >             * MPM: Fix handling of 0-valued dt-compat
> >             * MPM: Fix GPSD sensor names for N3xx and E320
> >             * MPM: Add args to update_ref_clock_freq to properly support
> >             dynamic setting
> >             *      of clock and time references
> >             * MPM: Fix Pylint warnings
> >             * MPM: Identify sysfs gpios more generically
> >             * MPM: Add lock_guard() function
> >             * MPM: Factor E320 and N3xx BIST code into common module
> >             * MPM: Add gpsd error handling
> >             * MPM: Add FPGA git hash to device info
> >             * MPMD: Increase RPC timeout during readng mb sensor
> >             * MPMD: Improve error message for compat number mismatches
> >             * Python API: Enable Python API on Windows
> >             * Python API: Change .dll to .pyd for Win32
> >             * Python API: Fixing Boost.Python initializer visibility
> >             * Python API: Fix duration of benchmark rate
> >             * Python API: Add missing constructors of time_spec_t
> >             * Python API: Expose streamer timeouts
> >             * Python API: Tighten the scope of releasing the GIL
> >             * Python API: Add device_addr_t
> >             * Python API: Populate the tune_result_t binding
> >             * Utils: Many fixes and enhancements for
> uhd_images_downloader
> >             * Utils: Update query_gpsdo_sensors to work on E310
> >             * Examples: Removed some legacy code patterns from RFNoC
> >             examples
> >             * Examples: Fix channel argument for rx_samples_to_file
> >             * Examples: Fix benchmark_rate MIMO synchronization
> >             * Examples: Add phase alignment example
> >             * Examples: Fix RX antenna not being applied in
> >             txrx_loopback_to_file
> >             * Test: Add more env vars, make Py3k compatible
> >             * Test: Add multi_usrp_test.py to devtest
> >             * Test: Clean up, refactor, and improve devtest
> >             * Test: Enable rx_samples_to_file in E320 devtest and N3xx
> >             devtest
> >             * Test: Reduce sample rate for E320 1G devtest
> >             * Test: Add unit test for eeprom_utils
> >             * Docs: Add clock_source and time_source to n3xx argument
> >             list and fix WR clock_source call
> >             * Docs: Minor tweaks to the Python API manual page
> >             * Docs: Add E320 test procedures
> >             * Docs: Added TwinRX page
> >             * Docs: Fix N210 MIMO Phase Alignment test command
> >             * Docs: Add E320 information
> >             * Docs: Improve sections on clock/time references
> >             * Docs: Add section on X300 motherboard clocking
> >             * Docs: Add more information on Salt for N3xx and E320
> >             * Docs: Adjust E310 functional verification tests
> >             * Docs: Add documentation on GIL release
> >             * Debian: Update control files
> >             * Images: Add N3xx CPLD file to manifest
> >
> >             ## 003.013.000.002
> >             * N3xx: Fix issue where changing the clock/time source could
> >             result in
> >                     clocks becoming unlocked
> >             * N3xx: Improve error messages for invalid clock/time
> settings
> >             * N3xx: Add support for Rev G mboard
> >             * MPM: Add function parameter to support holding AD9371 in
> reset
> >             * Docs: Add section on building fs/SD images for N3xx
> >             * Docs: Fix Doxygen warnings
> >
> >             ## 003.013.000.001
> >             * N3xx: Fix UIO usage in Aurora BIST
> >             * N3xx: Fix EEPROM parsing (for upcoming hardware)
> >             * UHD: Fix install path for Python API
> >
> >             As always, we at Ettus Research would like to thank all of
> >             the UHD users in the open source SDR community.  This
> >             release contains commits from users in the community that
> >             submitted pull requests against the UHD
> >             <https://github.com/EttusResearch/uhd> and FPGA
> >             <https://github.com/EttusResearch/fpga> repositories as well
> >             as many commits that are a direct result of issues reported
> >             back to us by users like you through the UHD
> >             <https://github.com/EttusResearch/uhd/issues> and FPGA
> >             <https://github.com/EttusResearch/fpga/issues> issue
> >             trackers, the USRP-users mailing list
> >             <
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com>,
> >             and Ettus support
> >             <mailto:support at ettus.com>.
> >             You have all helped contribute to the continued improvement
> >             of UHD.  Thank you!
> >
> >             Best regards,
> >             Michael
> >             _______________________________________________
> >             USRP-users mailing list
> >             USRP-users at lists.ettus.com
> >             <mailto:USRP-users at lists.ettus.com>
> >
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> >
> >
> > _______________________________________________
> > USRP-users mailing list
> > USRP-users at lists.ettus.com
> > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> >
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio at gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20190214/2a9774b9/attachment.html>


More information about the USRP-users mailing list