usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Running user application in X410

SV
Sakthivel Velumani
Thu, Jan 2, 2025 5:56 PM

Hi,

I am wondering if the user can run a custom linux application on the ARM
cores that can offload certain tasks to the PL? or does the RFNoC core
implementation allow a RFNoC block to interact with an application on
the PS via the AXI interface?

Regards,

Sakthi

Hi, I am wondering if the user can run a custom linux application on the ARM cores that can offload certain tasks to the PL? or does the RFNoC core implementation allow a RFNoC block to interact with an application on the PS via the AXI interface? Regards, Sakthi
MD
Marcus D. Leech
Thu, Jan 2, 2025 6:10 PM

On 02/01/2025 12:56, Sakthivel Velumani wrote:

Hi,

I am wondering if the user can run a custom linux application on the
ARM cores that can offload certain tasks to the PL? or does the RFNoC
core implementation allow a RFNoC block to interact with an
application on the PS via the AXI interface?

Regards,

Sakthi


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

You should be able to run UHD-using applications on the ARM on the X410,
just like any of the other platforms that provide
  an embedded ARM CPU.  HOWEVER, those ARMs are only dual core,
typically (I don't know for sure on the X410), and they
  cannot be expected to provide high-bandwidth sample streams
into/out-of the radio.

I don't know whether the Python API for UHD is installed by default on
the X410 system image, but that would be an
  easy pathway to do initial experiments.

Really though, for these high-end boxes, the ARM CPUs exist largely for
housekeeping and logistics management of
  the radio, via things like MPM, etc.   The fact that they can run a
user application is just kind of a side-effect, and
  that application would need to offload nearly-ALL of its actual DSP
work to RFNoC, since these ARM CPUs are not
  particularly capable in terms of computational and memory-bandwidth
performance.

On 02/01/2025 12:56, Sakthivel Velumani wrote: > Hi, > > I am wondering if the user can run a custom linux application on the > ARM cores that can offload certain tasks to the PL? or does the RFNoC > core implementation allow a RFNoC block to interact with an > application on the PS via the AXI interface? > > Regards, > > Sakthi > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com You should be able to run UHD-using applications on the ARM on the X410, just like any of the other platforms that provide   an embedded ARM CPU.  HOWEVER, those ARMs are only dual core, typically (I don't know for sure on the X410), and they   cannot be expected to provide high-bandwidth sample streams into/out-of the radio. I don't know whether the Python API for UHD is installed by default on the X410 system image, but that would be an   easy pathway to do initial experiments. Really though, for these high-end boxes, the ARM CPUs exist largely for housekeeping and logistics management of   the radio, via things like MPM, etc.   The fact that they *can* run a user application is just kind of a side-effect, and   that application would need to offload nearly-ALL of its actual DSP work to RFNoC, since these ARM CPUs are not   particularly capable in terms of computational and memory-bandwidth performance.
SV
Sakthivel Velumani
Thu, Jan 2, 2025 6:56 PM

Hi Marcus,

Thanks for the pointers. I am looking to offload all the DSP work to the
RFNoC and have the CPUs do trivial tasks like sequence generation so
that I don't have to write HDL for everything. I am still not entirely
sure of how this can be done but I found a software development guide
for E310
(https://kb.ettus.com/Software_Development_on_the_E310_and_E312) which
looks like something I want to achieve so it's a good start I guess.

Thanks again.

Sakthi

On 1/2/25 13:10, Marcus D. Leech wrote:

On 02/01/2025 12:56, Sakthivel Velumani wrote:

Hi,

I am wondering if the user can run a custom linux application on the
ARM cores that can offload certain tasks to the PL? or does the RFNoC
core implementation allow a RFNoC block to interact with an
application on the PS via the AXI interface?

Regards,

Sakthi


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com
You should be able to run UHD-using applications on the ARM on the
X410, just like any of the other platforms that provide
  an embedded ARM CPU.  HOWEVER, those ARMs are only dual core,
typically (I don't know for sure on the X410), and they
  cannot be expected to provide high-bandwidth sample streams
into/out-of the radio.

I don't know whether the Python API for UHD is installed by default on
the X410 system image, but that would be an
  easy pathway to do initial experiments.

Really though, for these high-end boxes, the ARM CPUs exist largely
for housekeeping and logistics management of
  the radio, via things like MPM, etc.   The fact that they can run
a user application is just kind of a side-effect, and
  that application would need to offload nearly-ALL of its actual DSP
work to RFNoC, since these ARM CPUs are not
  particularly capable in terms of computational and memory-bandwidth
performance.


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Hi Marcus, Thanks for the pointers. I am looking to offload all the DSP work to the RFNoC and have the CPUs do trivial tasks like sequence generation so that I don't have to write HDL for everything. I am still not entirely sure of how this can be done but I found a software development guide for E310 (https://kb.ettus.com/Software_Development_on_the_E310_and_E312) which looks like something I want to achieve so it's a good start I guess. Thanks again. Sakthi On 1/2/25 13:10, Marcus D. Leech wrote: > On 02/01/2025 12:56, Sakthivel Velumani wrote: >> Hi, >> >> I am wondering if the user can run a custom linux application on the >> ARM cores that can offload certain tasks to the PL? or does the RFNoC >> core implementation allow a RFNoC block to interact with an >> application on the PS via the AXI interface? >> >> Regards, >> >> Sakthi >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com > You should be able to run UHD-using applications on the ARM on the > X410, just like any of the other platforms that provide >   an embedded ARM CPU.  HOWEVER, those ARMs are only dual core, > typically (I don't know for sure on the X410), and they >   cannot be expected to provide high-bandwidth sample streams > into/out-of the radio. > > I don't know whether the Python API for UHD is installed by default on > the X410 system image, but that would be an >   easy pathway to do initial experiments. > > Really though, for these high-end boxes, the ARM CPUs exist largely > for housekeeping and logistics management of >   the radio, via things like MPM, etc.   The fact that they *can* run > a user application is just kind of a side-effect, and >   that application would need to offload nearly-ALL of its actual DSP > work to RFNoC, since these ARM CPUs are not >   particularly capable in terms of computational and memory-bandwidth > performance. > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com
MD
Marcus D. Leech
Thu, Jan 2, 2025 7:59 PM

On 02/01/2025 13:56, Sakthivel Velumani wrote:

Hi Marcus,

Thanks for the pointers. I am looking to offload all the DSP work to
the RFNoC and have the CPUs do trivial tasks like sequence generation
so that I don't have to write HDL for everything. I am still not
entirely sure of how this can be done but I found a software
development guide for E310
(https://kb.ettus.com/Software_Development_on_the_E310_and_E312) which
looks like something I want to achieve so it's a good start I guess.

Thanks again.

Sakthi

I think that the Python binding library for UHD IS installed in the
system image on the X410.

Go into Python3 and

import uhd

That should work.

On 1/2/25 13:10, Marcus D. Leech wrote:

On 02/01/2025 12:56, Sakthivel Velumani wrote:

Hi,

I am wondering if the user can run a custom linux application on the
ARM cores that can offload certain tasks to the PL? or does the
RFNoC core implementation allow a RFNoC block to interact with an
application on the PS via the AXI interface?

Regards,

Sakthi


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

You should be able to run UHD-using applications on the ARM on the
X410, just like any of the other platforms that provide
  an embedded ARM CPU.  HOWEVER, those ARMs are only dual core,
typically (I don't know for sure on the X410), and they
  cannot be expected to provide high-bandwidth sample streams
into/out-of the radio.

I don't know whether the Python API for UHD is installed by default
on the X410 system image, but that would be an
  easy pathway to do initial experiments.

Really though, for these high-end boxes, the ARM CPUs exist largely
for housekeeping and logistics management of
  the radio, via things like MPM, etc.   The fact that they can run
a user application is just kind of a side-effect, and
  that application would need to offload nearly-ALL of its actual DSP
work to RFNoC, since these ARM CPUs are not
  particularly capable in terms of computational and memory-bandwidth
performance.


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

On 02/01/2025 13:56, Sakthivel Velumani wrote: > Hi Marcus, > > Thanks for the pointers. I am looking to offload all the DSP work to > the RFNoC and have the CPUs do trivial tasks like sequence generation > so that I don't have to write HDL for everything. I am still not > entirely sure of how this can be done but I found a software > development guide for E310 > (https://kb.ettus.com/Software_Development_on_the_E310_and_E312) which > looks like something I want to achieve so it's a good start I guess. > > Thanks again. > > Sakthi I think that the Python binding library for UHD *IS* installed in the system image on the X410. Go into Python3 and import uhd That should work. > > On 1/2/25 13:10, Marcus D. Leech wrote: >> On 02/01/2025 12:56, Sakthivel Velumani wrote: >>> Hi, >>> >>> I am wondering if the user can run a custom linux application on the >>> ARM cores that can offload certain tasks to the PL? or does the >>> RFNoC core implementation allow a RFNoC block to interact with an >>> application on the PS via the AXI interface? >>> >>> Regards, >>> >>> Sakthi >>> _______________________________________________ >>> USRP-users mailing list -- usrp-users@lists.ettus.com >>> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> You should be able to run UHD-using applications on the ARM on the >> X410, just like any of the other platforms that provide >>   an embedded ARM CPU.  HOWEVER, those ARMs are only dual core, >> typically (I don't know for sure on the X410), and they >>   cannot be expected to provide high-bandwidth sample streams >> into/out-of the radio. >> >> I don't know whether the Python API for UHD is installed by default >> on the X410 system image, but that would be an >>   easy pathway to do initial experiments. >> >> Really though, for these high-end boxes, the ARM CPUs exist largely >> for housekeeping and logistics management of >>   the radio, via things like MPM, etc.   The fact that they *can* run >> a user application is just kind of a side-effect, and >>   that application would need to offload nearly-ALL of its actual DSP >> work to RFNoC, since these ARM CPUs are not >>   particularly capable in terms of computational and memory-bandwidth >> performance. >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com
MD
Marcus D. Leech
Thu, Jan 2, 2025 11:27 PM

On 02/01/2025 13:56, Sakthivel Velumani wrote:

Hi Marcus,

Thanks for the pointers. I am looking to offload all the DSP work to
the RFNoC and have the CPUs do trivial tasks like sequence generation
so that I don't have to write HDL for everything. I am still not
entirely sure of how this can be done but I found a software
development guide for E310
(https://kb.ettus.com/Software_Development_on_the_E310_and_E312) which
looks like something I want to achieve so it's a good start I guess.

Thanks again.

Sakthi

I've also been told that you can build UHD apps directly on the X410--it
has all the tooling like Make, GCC, UHD and other important
 libraries already on the system image.

On 1/2/25 13:10, Marcus D. Leech wrote:

On 02/01/2025 12:56, Sakthivel Velumani wrote:

Hi,

I am wondering if the user can run a custom linux application on the
ARM cores that can offload certain tasks to the PL? or does the
RFNoC core implementation allow a RFNoC block to interact with an
application on the PS via the AXI interface?

Regards,

Sakthi


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

You should be able to run UHD-using applications on the ARM on the
X410, just like any of the other platforms that provide
  an embedded ARM CPU.  HOWEVER, those ARMs are only dual core,
typically (I don't know for sure on the X410), and they
  cannot be expected to provide high-bandwidth sample streams
into/out-of the radio.

I don't know whether the Python API for UHD is installed by default
on the X410 system image, but that would be an
  easy pathway to do initial experiments.

Really though, for these high-end boxes, the ARM CPUs exist largely
for housekeeping and logistics management of
  the radio, via things like MPM, etc.   The fact that they can run
a user application is just kind of a side-effect, and
  that application would need to offload nearly-ALL of its actual DSP
work to RFNoC, since these ARM CPUs are not
  particularly capable in terms of computational and memory-bandwidth
performance.


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

On 02/01/2025 13:56, Sakthivel Velumani wrote: > Hi Marcus, > > Thanks for the pointers. I am looking to offload all the DSP work to > the RFNoC and have the CPUs do trivial tasks like sequence generation > so that I don't have to write HDL for everything. I am still not > entirely sure of how this can be done but I found a software > development guide for E310 > (https://kb.ettus.com/Software_Development_on_the_E310_and_E312) which > looks like something I want to achieve so it's a good start I guess. > > Thanks again. > > Sakthi I've also been told that you can build UHD apps directly on the X410--it has all the tooling like Make, GCC, UHD and other important  libraries already on the system image. > > On 1/2/25 13:10, Marcus D. Leech wrote: >> On 02/01/2025 12:56, Sakthivel Velumani wrote: >>> Hi, >>> >>> I am wondering if the user can run a custom linux application on the >>> ARM cores that can offload certain tasks to the PL? or does the >>> RFNoC core implementation allow a RFNoC block to interact with an >>> application on the PS via the AXI interface? >>> >>> Regards, >>> >>> Sakthi >>> _______________________________________________ >>> USRP-users mailing list -- usrp-users@lists.ettus.com >>> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> You should be able to run UHD-using applications on the ARM on the >> X410, just like any of the other platforms that provide >>   an embedded ARM CPU.  HOWEVER, those ARMs are only dual core, >> typically (I don't know for sure on the X410), and they >>   cannot be expected to provide high-bandwidth sample streams >> into/out-of the radio. >> >> I don't know whether the Python API for UHD is installed by default >> on the X410 system image, but that would be an >>   easy pathway to do initial experiments. >> >> Really though, for these high-end boxes, the ARM CPUs exist largely >> for housekeeping and logistics management of >>   the radio, via things like MPM, etc.   The fact that they *can* run >> a user application is just kind of a side-effect, and >>   that application would need to offload nearly-ALL of its actual DSP >> work to RFNoC, since these ARM CPUs are not >>   particularly capable in terms of computational and memory-bandwidth >> performance. >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com
PK
Piotr Krysik
Sun, Jan 5, 2025 10:53 AM

Hi Sakthivel,

As Marcus said you can run compilation of C++/UHD programs directly on
USRP X410 as it has all what is needed.

If you need a setup that is easier to integrate with DevOps you can
generate SDK for use on your PC using  infrastructure provided by yocto.
How to do that I've written in another thread ("KAS kirkstone build of
ni-titanium-rev5 on x410 with Vitis-AI ..."). As it was very long I'll
repeat the description here (for it to work you need to have docker and
git installed):


mkdir top_directory
chmod 777 top_directory
cd top_directory
git clone https://github.com/EttusResearch/meta-ettus.git
docker run --rm -it -w "$PWD" --mount
type=bind,source="$PWD",target="$PWD"
           --net=host
           --security-opt seccomp=unconfined
           ghcr.io/siemens/kas/kas:4.0
           bash -c "sudo apt update ; sudo apt install -y zip &&
./meta-ettus/contrib/kas_build_imgs_package.sh x4xx v4.7.0.0"

Then you can manually build sdk:

docker run --rm -it -w "$PWD" --mount
type=bind,source="$PWD",target="$PWD"
           --net=host
           --security-opt seccomp=unconfined
           ghcr.io/siemens/kas/kas:4.0
           bash

sudo apt update
sudo apt install -y zip
. oe-core/oe-init-build-env
bitbake gnuradio-image -cpopulate_sdk

This will produce an installer. You need to run it and install the SDK
somewhere.
Assuming it is installed in /opt/oecore-sdk before running
cross-compilation for USRP X410 with help of cmake you need first to
source the SDK's environment variables with following command:

source /opt/oecore-sdk/environment-setup-aarch64-oe-linux

Best Regards,
Piotr Krysik

W dniu 3.01.2025 o 00:27, Marcus D. Leech pisze:

On 02/01/2025 13:56, Sakthivel Velumani wrote:

Hi Marcus,

Thanks for the pointers. I am looking to offload all the DSP work to
the RFNoC and have the CPUs do trivial tasks like sequence generation
so that I don't have to write HDL for everything. I am still not
entirely sure of how this can be done but I found a software
development guide for E310
(https://kb.ettus.com/Software_Development_on_the_E310_and_E312)
which looks like something I want to achieve so it's a good start I
guess.

Thanks again.

Sakthi

I've also been told that you can build UHD apps directly on the
X410--it has all the tooling like Make, GCC, UHD and other important
 libraries already on the system image.

Hi Sakthivel, As Marcus said you can run compilation of C++/UHD programs directly on USRP X410 as it has all what is needed. If you need a setup that is easier to integrate with DevOps you can generate SDK for use on your PC using  infrastructure provided by yocto. How to do that I've written in another thread ("KAS kirkstone build of ni-titanium-rev5 on x410 with Vitis-AI ..."). As it was very long I'll repeat the description here (for it to work you need to have docker and git installed): ---------------------------------------------------------------------------------- mkdir top_directory chmod 777 top_directory cd top_directory git clone https://github.com/EttusResearch/meta-ettus.git docker run --rm -it -w "$PWD" --mount type=bind,source="$PWD",target="$PWD"            --net=host            --security-opt seccomp=unconfined            ghcr.io/siemens/kas/kas:4.0            bash -c "sudo apt update ; sudo apt install -y zip && ./meta-ettus/contrib/kas_build_imgs_package.sh x4xx v4.7.0.0" # Then you can manually build sdk: docker run --rm -it -w "$PWD" --mount type=bind,source="$PWD",target="$PWD"            --net=host            --security-opt seccomp=unconfined            ghcr.io/siemens/kas/kas:4.0            bash sudo apt update sudo apt install -y zip . oe-core/oe-init-build-env bitbake gnuradio-image -cpopulate_sdk ---------------------------------------------------------------------------------- This will produce an installer. You need to run it and install the SDK somewhere. Assuming it is installed in /opt/oecore-sdk before running cross-compilation for USRP X410 with help of cmake you need first to source the SDK's environment variables with following command: source /opt/oecore-sdk/environment-setup-aarch64-oe-linux Best Regards, Piotr Krysik W dniu 3.01.2025 o 00:27, Marcus D. Leech pisze: > On 02/01/2025 13:56, Sakthivel Velumani wrote: >> Hi Marcus, >> >> Thanks for the pointers. I am looking to offload all the DSP work to >> the RFNoC and have the CPUs do trivial tasks like sequence generation >> so that I don't have to write HDL for everything. I am still not >> entirely sure of how this can be done but I found a software >> development guide for E310 >> (https://kb.ettus.com/Software_Development_on_the_E310_and_E312) >> which looks like something I want to achieve so it's a good start I >> guess. >> >> Thanks again. >> >> Sakthi > I've also been told that you can build UHD apps directly on the > X410--it has all the tooling like Make, GCC, UHD and other important >  libraries already on the system image. >