虚拟环境安装sionna
sionna是Nvidia推出的专用于通信领域的SDK,简单介绍windows中如何在虚拟环境中安装sionna
安装步骤-CPU
以下是CPU版的sionna安装步骤
sionna基于tensorflow,在虚拟环境中使用pip安装sionna时,会自动安装与其适配的最新版本tensorflow,因此不用事先安装tf
1 | pip install sionna |
安装完成后import sionna会报错,无法找到LLVM-C.dll,这是因为sionna中部分内容需要LLVM编译框架,缺少该动态链接库,报错信息如下
1 | AttributeError: jit_init_thread_state(): the LLVM backend is inactive because the LLVM shared library ("LLVM-C.dll") could not be found! Set the DRJIT_LIBLLVM_PATH environment variable to specify its path. |
LLVM是什么可以自行了解,简单说它是一个编译框架,以此为基础衍生出很多编译工具
解决方案:Windows: run one of the official installers (many files can be downloaded from this page, look for ones with the pattern LLVM-<version>-win64.exe). It is important that you let the installer adjust the %PATH% variable so that the file LLVM-C.dll can be found by Dr.Jit.
这是LLVM手册提供的安装LLVM教程,我们进入网页,寻找满足版本要求(大于等于8)的LLVM-<version>-win64.exe文件,下载后以管理员身份运行,在安装过程中勾选添加至环境变量中
安装完成后import sionna仍然会报同样的错,这是因为虚拟环境并不会去系统环境变量中查找需要的文件,因此找到LLVM的安装路径,找到LLVM-C.dll文件,复制粘贴至虚拟环境的目录下即可
安装步骤-GPU
以下是GPU版的sionna安装步骤。上述pip install sionna默认安装tensorflow 2.13-CPU。sionna支持的tensorflow为2.10-2.15。
截止2024年5月17日通过conda安装的tf-GPU版本最高为2.10,更高版本可从源码编译安装。
1 | conda create -n sionna python=3.9 |
安装完后进入python编程环境,import tensorflow as tf报错缺少cuda,exit()退出python
1 | conda install cuda # 自动寻找符合tf-2.10-GPU的cudatoolkit |
此时再进入python测试tf.test.is_gpu_available()显示True,则tf-GPU安装成功
1 | pip install sionna |
安装过程中,安装脚本会自动下载tf-2.13及其依赖库,安装完成后报错,红色报错提示四个依赖库的版本冲突,分别为keras,protobuf,tensorboard和tensorflow-estimator。
依次降低版本,优先满足tensorflow-gpu-2.10:
1 | pip install keras==2.10.0 # 安装完成后红色报错数量不会减少,但keras版本变成满足tensorflow-gpu而不满足tensorflow-intel |
上述四个版本降完后,仍然报tensorflow 2.13.0需要tensorflow-intel 2.13.0,这是因为sionna默认安装tensorflow2.13,因此降低版本
1 | pip install tensorflow==2.10.1 |
此时不再报错,进行测试
1 | python |
如果返回False,则
1 | pip uninstall tensorflow-gpu==2.10.0 |
如果在使用sionna过程中报错,
1 | from google.protobuf.internal import builder as _builder |
这是因为protobuf的版本问题,由于tensorflow-gpu需要的是protobuf==3.19.6,但是 protobuf v3.20.0 以来,python 类得到了简化,生成的 python 代码现在引用一个build模块,如果不是最新版本的protobuf是找不到该模块的。
因此可以在安装完sionna后(此时protobuf是最新版),在anaconda环境下找到该文件将它复制下来,在安装完tensorflow-gpu2.10后(protobuf变成了3.19.6版本),在粘贴回去即可。就我而言使用的是anaconda,build.py文件的位置在D:Programs\anaconda3\envs\envname\Lib\site-packages\google\protobuf\internal
