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.puschm...@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.w...@ettus.com > > <mailto:michael.w...@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 > > <bistrom...@gmail.com > > <mailto:bistrom...@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@lists.ettus.com > > <mailto:usrp-users@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:supp...@ettus.com>. > > You have all helped contribute to the continued improvement > > of UHD. Thank you! > > > > Best regards, > > Michael > > _______________________________________________ > > USRP-users mailing list > > USRP-users@lists.ettus.com > > <mailto:USRP-users@lists.ettus.com> > > > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > > > > _______________________________________________ > > USRP-users mailing list > > USRP-users@lists.ettus.com > > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > > > > _______________________________________________ > Discuss-gnuradio mailing list > discuss-gnura...@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com