# Sionna
**Repository Path**: dgut-smartcom/sionna
## Basic Information
- **Project Name**: Sionna
- **Description**: https://github.com/NVlabs/sionna
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-07-31
- **Last Updated**: 2024-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Sionna: An Open-Source Library for Next-Generation Physical Layer Research
Sionna™ is an open-source Python library for link-level simulations of digital communication systems built on top of the open-source software library [TensorFlow](https://www.tensorflow.org) for machine learning.
The official documentation can be found [here](https://nvlabs.github.io/sionna/).
## Installation
Sionna requires [Python](https://www.python.org/) and [Tensorflow](https://www.tensorflow.org/).
In order to run the tutorial notebooks on your machine, you also need [JupyterLab](https://jupyter.org/).
You can alternatively test them on [Google Colab](https://colab.research.google.com/).
Although not necessary, we recommend running Sionna in a [Docker container](https://www.docker.com).
Sionna requires [TensorFlow 2.10 or newer](https://www.tensorflow.org/install) and Python 3.6-3.9. We recommend Ubuntu 20.04. Earlier versions of TensorFlow may still work but are not recommended because of known, unpatched CVEs.
To run the ray tracer on CPU, [LLVM](https://llvm.org) is required by DrJit. Please check the [installation instructions for the LLVM backend](https://drjit.readthedocs.io/en/latest/firststeps-py.html#llvm-backend).
We refer to the [TensorFlow GPU support tutorial](https://www.tensorflow.org/install/gpu) for GPU support and the required driver setup.
### Installation using pip
We recommend to do this within a [virtual environment](https://docs.python.org/3/tutorial/venv.html), e.g., using [conda](https://docs.conda.io).
On macOS, you need to install [tensorflow-macos](https://github.com/apple/tensorflow_macos) first.
1.) Install the package
```
pip install sionna
```
2.) Test the installation in Python
```
python
```
```
>>> import sionna
>>> print(sionna.__version__)
0.15.0
```
3.) Once Sionna is installed, you can run the [Sionna "Hello, World!" example](https://nvlabs.github.io/sionna/examples/Hello_World.html), have a look at the [quick start guide](https://nvlabs.github.io/sionna/quickstart.html), or at the [tutorials](https://nvlabs.github.io/sionna/tutorials.html).
The example notebooks can be opened and executed with [Jupyter](https://jupyter.org/).
For a local installation, the [JupyterLab Desktop](https://github.com/jupyterlab/jupyterlab-desktop) application can be used which also includes the Python installation.
### Docker-based installation
1.) Make sure that you have [Docker]() installed on your system. On Ubuntu 20.04, you can run for example
```
sudo apt install docker.io
```
Ensure that your user belongs to the `docker` group (see [Docker post-installation]())
```
sudo usermod -aG docker $USER
```
Log out and re-login to load updated group memberships.
For GPU support on Linux, you need to install the [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-docker).
2.) Build the Sionna Docker image. From within the Sionna directory, run
```
make docker
```
3.) Run the Docker image with GPU support
```
make run-docker gpus=all
```
or without GPU:
```
make run-docker
```
This will immediately launch a Docker image with Sionna installed, running JupyterLab on port 8888.
4.) Browse through the example notebooks by connecting to [http://127.0.0.1:8888](http://127.0.0.1:8888) in your browser.
### Installation from source
We recommend to do this within a [virtual environment](https://docs.python.org/3/tutorial/venv.html), e.g., using [conda](https://docs.conda.io).
1.) Clone this repository and execute from within its root folder
```
make install
```
2.) Test the installation in Python
```
>>> import sionna
>>> print(sionna.__version__)
0.15.0
```
## License and Citation
Sionna is Apache-2.0 licensed, as found in the [LICENSE](https://github.com/nvlabs/sionna/blob/main/LICENSE) file.
If you use this software, please cite it as:
```bibtex
@article{sionna,
title = {Sionna: An Open-Source Library for Next-Generation Physical Layer Research},
author = {Hoydis, Jakob and Cammerer, Sebastian and {Ait Aoudia}, Fayçal and Vem, Avinash and Binder, Nikolaus and Marcus, Guillermo and Keller, Alexander},
year = {2022},
month = {Mar.},
journal = {arXiv preprint},
online = {https://arxiv.org/abs/2203.11854}
}
```