Thanks to visit codestin.com
Credit goes to ocudu-docs-604e90.gitlab.io

Skip to main content

Installation

To download and build OCUDU:

  1. Install dependencies
  2. Install RF driver (only required for Split 8 deployments)
  3. Clone the repository
  4. Build the codebase

note

OCUDU requires a Linux-based OS with realtime kernel support.

Coming from srsRAN Project?

Complete this installation first, then follow the Migration Guide to port your existing srsRAN Project modifications to OCUDU.

Build Tools and Dependencies

OCUDU uses CMake and C++17. Recommended build tools:

OCUDU requires these dependencies:

Install build tools and dependencies:

sudo apt-get install cmake make gcc g++ pkg-config libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev

These packages are optional but recommended:

  • Ccache: This will help to speed up re-compilation
  • backward-cpp: This library helps to generate more informative backtraces in the stdout if an error occurs during runtime

FFT Library

OCUDU requires one of the following libraries for FFT calculation:

libfftw

sudo apt-get install libfftw3-dev

oneMKL

sudo apt update
sudo apt install -y gpg-agent wget
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-oneapi-mkl-devel libomp-dev

AOCL-FFTZ

AOCL_FFTZ_VERSION="5.2"
sudo apt update && sudo apt install -y wget autoconf automake make libtool
cd /tmp
wget --no-check-certificate -O - "https://github.com/amd/aocl-fftz/archive/refs/tags/${AOCL_FFTZ_VERSION}.tar.gz" | tar -xz
cd aocl-fftz-${AOCL_FFTZ_VERSION}
cmake -B buildFFTZ
cmake --build buildFFTZ --target install -j"${nproc}"

ARMPL (for ARM architectures)

sudo apt update && sudo apt install -y environment-modules wget
cd /tmp
wget --no-check-certificate -O - https://developer.arm.com/-/cdn-downloads/permalink/Arm-Performance-Libraries/Version_24.10/arm-performance-libraries_24.10_deb_gcc.tar | tar -x
cd arm-performance-libraries_24.10_deb/
./arm-performance-libraries_24.10_deb.sh --accept
cd ~ && rm -Rf /tmp/arm-performance-libraries_24.10_deb
source /usr/share/modules/init/bash
export MODULEPATH=$MODULEPATH:/opt/arm/modulefiles
module avail
module load armpl/24.10.0_gcc

RF-drivers

note

UHD and/or ZMQ are only required for Split 8 deployments, if you are planning on using a Split 7.2 deployment you may skip this step.

OCUDU uses RF drivers to support different radio types. Currently, only UHD and ZMQ are supported:


Clone and Build

OCUDU supports several build configurations, controlled via CMake flags. The tabs below cover the available options.

Clone the OCUDU repository:

git clone https://gitlab.com/ocudu/ocudu.git

Then build the code-base:

cd ocudu
mkdir build
cd build
cmake ../
make -j $(nproc)
make test -j $(nproc)

The binary is at ocudu/build/apps/gnb/. To install system-wide:

sudo make install

See Running OCUDU for configuration and next steps.


Vector Tests

Most PHY components, as well as a few components from other layers, are tested by injecting vectors of input data and comparing the results with vectors of expected output data. Since data vectors can be quite heavy, vector tests are not included in the main repository and, instead, are offered as an external plugin that is part of the OCUDU MATLAB companion repository. All the details for installing and running the vector tests are explained in our MATLAB Testing Tools tutorial.