国产服务器使用1-tensorflow
国产服务器taishan2280,arm架构:kylinv10系统-kunpeng920cpu-T4-cuda11.2-cudnn8.1下编译tensorflow2.10,使用gpu
我需要使用tensorflow2.10版本调用T4显卡gpr训练,所以安装的cuda为11.2和cudnn8.1,比较适配,别的对应版本组要自己查找下载,其中主意下载的一定是aarch,别下错了
第一步检查系统:
cat /etc/os-release
如图可以看到是KylinV10:

uname -a
为arm架构

第二步,查看是否插入显卡
lspci | grep -i --color 'vga|3d|display'
我的输出结果为,我是T4显卡:
01:00.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
06:00.0 VGA compatible controller: Huawei Technologies Co., Ltd. Hi171x Series [iBMC Intelligent Management system chip w/VGA support] (rev 01)
第三步:安装显卡驱动
英伟达官网去下载,我下载的:nvidia-driver-local-repo-kylin10-560.35.03-1.0-1.aarch64.rpm
1.先安装这个本地仓库包
rpm -ivh nvidia-driver-local-repo-kylin10-560.35.03-1.0-1.aarch64.rpm
2.更新缓存
dnf clean all
dnf makecache
3.安装驱动,装好后重启
dnf install nvidia-driver
reboot
4.验证
rpm -qa | grep nvidia-driver
输出结果为
nvidia-driver-local-repo-kylin10-560.35.03-1.0-1.aarch64
nvidia-driver-libs-560.35.03-1.ky10.aarch64
nvidia-driver-560.35.03-1.ky10.aarch64

第四步安装cuda11.2和cudnn8.1
自行下载cuda对应版本,我这里是:cuda-repo-rhel8-11-2-local-11.2.0_460.27.04-1.aarch64.rpm
1.导入rpm,并刷新缓存,且安装
rpm -ivh cuda-repo-rhel8-11-2-local-11.2.0_460.27.04-1.aarch64.rpm
dnf clean all
dnf makecache
#r如果导入有多个cuda的rpm包,可以指定版本安装如:dnf install cuda-11-2
dnf install cuda
2.设置环境变量
我在root下运行,需要给所有用户使用
#创建全局环境变量脚本
echo 'export PATH=/usr/local/cuda-11.2/bin:$PATH' > /etc/profile.d/cuda.sh
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH' >> /etc/profile.d/cuda.sh
#赋予读取权限(所有用户都能读取)
chmod 644 /etc/profile.d/cuda.sh
#立即生效(当前会话)
source /etc/profile
3.检查
#常用命令
nvidia-smi
nvcc -V
#其他
echo $PATH
4.安装cudann8.1
下载cudnn-11.2-linux-aarch64sbsa-v8.1.1.33.tgz
tar -xzvf cudnn-11.2-linux-aarch64sbsa-v8.1.1.33.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.2/lib64/
sudo chmod a+r /usr/local/cuda-11.2/include/cudnn*.h /usr/local/cuda-11.2/lib64/libcudnn*
sudo ldconfig
cat /usr/local/cuda-11.2/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
最后一行验证输出为
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 1
第五步安装anaconda
我需要使用anaconda管理环境,如不需要可以不安装
官网下载:Anaconda3-2025.06-0-Linux-aarch64.sh
1.安装过程:
Enter 读协议
yes 同意协议
安装路径输入:
/opt/anaconda3
让它初始化可以选 no(我们会手动做全局配置)
2.全局环境变量配置
echo 'export PATH=/opt/anaconda3/bin:$PATH' > /etc/profile.d/anaconda.sh
chmod 644 /etc/profile.d/anaconda.sh
source /etc/profile
3.测试
conda --version
python --version
第六步搭建tensorflow2.10虚拟环境
首先系统安装一些依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y git gcc gcc-c++ make zip unzip autoconf libtool zlib-devel python3-devel cmake protobuf-devel
1.创建环境并安装一些包
清华源https://pypi.tuna.tsinghua.edu.cn/simple
conda crete -n zhsh python=3.10
conda activate zhsh
pip install numpy==1.21.6 cython==0.29.36 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pandas=1.3.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.gcc编译升级
gcc必须大于8,我这里选的9,由于本身自带gcc7.3,我没有覆盖,选择单独编译使用
下载:https://mirrors.sjtug.sjtu.edu.cn/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.xz
tar -xf gcc-9.5.0.tar.xz
cd gcc-9.5.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/opt/gcc-9.5 --disable-multilib --enable-languages=c,c++
make -j$(nproc)
make install
花费时间比较久
接下来配置环境变量
echo 'export PATH=/opt/gcc-9.5/bin:$PATH' >> /etc/profile.d/gcc9.sh
echo 'export LD_LIBRARY_PATH=/opt/gcc-9.5/lib64:$LD_LIBRARY_PATH' >> /etc/profile.d/gcc9.sh
source /etc/profile.d/gcc9.sh
gcc --version
#应该输出9.5.0
3.安装 Bazel(和 TF 版本匹配)比如 TF 2.10 需要 Bazel 5.3.0
我网络不好所以都是自己下载的,有网可以选择联网下载
下载地址:wget https://github.com/bazelbuild/bazel/releases/download/5.3.0/bazel-5.3.0-linux-arm64
#安装
chmod +x bazel-5.3.0-linux-arm64
sudo mv bazel-5.3.0-linux-arm64 /usr/local/bin/bazel
bazel --version
#下载tensorflow源码
#网不好的可以选择不运行,直接去下载tensorflow-2.10.0.zip
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.10
#设置环境
export CC=/opt/gcc-9.5/bin/gcc
export CXX=/opt/gcc-9.5/bin/g++
export PATH=/opt/gcc-9.5/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-9.5/lib64:$LD_LIBRARY_PATH
bazel clean --expunge
# 运行 ./configure 脚本,确认选择的 gcc 路径和 CUDA 版本
./configure
#编译
build --config=opt --config=cuda --action_env=CC=/opt/gcc-9.5/bin/gcc --action_env=CXX=/opt/gcc-9.5/bin/g++ --cxxopt='-std=c++17' --copt='-march=armv8-a' --define=with_xnnpack=false //tensorflow/tools/pip_package:build_pip_package
过程中如果网不好会出现有些依赖下不下来,我出现了
0538e5431afdb1fa05bdcedf70ee502ccfcd112a.tar.gz
6ca793b5d862ef6c50f242d77a811f06cce9b60a.tar.gz
可以在网站下载之后上传,然后修改third_party文件夹内部对应名字的文件找到对应的worksoace.bzl,将你下载的文件路径添加到里面的url


编译要很久,结束后生成包,然后在虚拟环境下安装
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tf_pkg
pip install /tmp/tf_pkg/tensorflow-2.10*.whl
测试
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
#输出[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
结束end
其他
为了使用TCN网络,需要编译addons-0.18.0.zip
tar -xzf tensorflow-addons-0.18.0.tar.gz
cd tensorflow-addons-0.18.0
export MAKEFLAGS=-j$(nproc)
python setup.py build
python setup.py install
pip install keras-tcn==3.5.0
本文地址:https://www.yitenyun.com/3737.html






