The Arm RAN Acceleration Library (ArmRAL) contains a set of functions for accelerating telecommunications applications such as, but not limited to, 5G Radio Access Networks (RANs).
ArmRAL is an open-source code base under the permissive BSD license.
A development machine is required to build and run ArmRAL.
You can use a local Arm server or Arm laptop or desktop machine as a development platform.
Alternatively, you can use an Arm-based instance from a cloud service provider. Refer to Get started with Arm-based cloud instances for cloud options.
The instructions are for Ubuntu or Debian Linux distributions.
Install the necessary tools to build the code:
sudo apt update
sudo -E apt install -y build-essential cmake linux-tools-common gcovr doxygen
The source code is available from the GitLab repository
Use git
to download the code:
git clone https://git.gitlab.arm.com/networking/ral.git
Navigate to the source directory and create an empty build directory:
cd ral
mkdir build
cd build
The Arm Architecture defines three vector processing technologies.
asimd
)sve
)sve2
)To check which features are available on your platform, use:
cat /proc/cpuinfo
Look at the flags and check for values asimd
, sve
, or sve2
.
Use the features available on your hardware when you run cmake
in the next section.
If your platform supports only Neon (asimd
), set up the build with:
cmake -DBUILD_TESTING=On -DARMRAL_ARCH=NEON ..
If you have SVE support, set up the build with:
cmake -DBUILD_TESTING=On -DARMRAL_ARCH=SVE ..
If you have SVE2 support, set up the build with:
cmake -DBUILD_TESTING=On -DARMRAL_ARCH=SVE2 ..
The default install location is /usr/local
. If you do not have write access to this directory, set a different installation location by adding -DCMAKE_INSTALL_PREFIX=<path>
to the cmake
command.
For example:
cmake -DBUILD_TESTING=On -DARMRAL_ARCH=SVE -DCMAKE_INSTALL_PREFIX=/home/ubuntu/armral ..
Build the library using make
:
make
Install the library:
sudo make install
Build and run the supplied benchmark example by running:
make check
If everything runs correctly you see the message:
100% tests passed, 0 tests failed out of 56
You will see errors if you build for optimization features that are not available:
The output will be similar to:
...
61/64 Test #61: ldpc_awgn ............................ Passed 255.05 sec
Start 62: modulation_awgn
62/64 Test #62: modulation_awgn ...................... Passed 28.39 sec
Start 63: polar_awgn
63/64 Test #63: polar_awgn ........................... Passed 390.17 sec
Start 64: turbo_awgn
64/64 Test #64: turbo_awgn ........................... Passed 190.39 sec
100% tests passed, 0 tests failed out of 64
Total Test time (real) = 1095.82 sec
[100%] Built target check
...
You are now ready to create applications with ArmRAL.
For a full description of available build options, see the Arm RAN Acceleration Library Reference Guide .