树莓派安装带CUDA10的Torch失败,急求技术帮助
解决树莓派上安装带CUDA10的Torch时的编译错误与cutorch安装问题
折腾一周确实够头疼的,我来帮你一步步拆解解决这些问题:
一、先搞定编译时的lib_ffi.c缺失错误
这个报错的核心原因是Torch仓库里的luajit-rocks子模块没完整克隆,导致luajit的源码文件不全。按以下步骤修复:
- 进入你的Torch目录:
cd /home/pi/torch - 拉取所有子模块的完整代码:
这一步会把luajit-rocks下的luajit源码全部补全,直接解决git submodule update --init --recursiveNo rule to make target 'exe/luajit-rocks/luajit-2.1/src/lib_ffi.c'的问题。
二、清理编译残留后重新尝试自动安装
之前失败的编译可能留下了损坏的中间文件,先清干净再重新运行安装脚本:
- 执行Torch自带的清理脚本:
./clean.sh - 重新启动安装流程:
注意:如果你的设备是Jetson系列(带NVIDIA GPU的树莓派衍生板),可能需要在安装前指定CUDA架构参数。比如在./install.shinstall.sh里给cmake添加-DCUDA_ARCH_BIN=5.3(对应Jetson Nano的GPU架构),确保编译出来的文件适配你的硬件。
三、如果自动安装仍失败,手动搭建依赖后单独装cutorch
要是Torch的自动安装脚本还是卡壳,我们可以绕开它,手动装核心依赖后直接安装你需要的cutorch库:
1. 手动安装LuaJIT
# 克隆LuaJIT源码 git clone https://github.com/LuaJIT/LuaJIT.git cd LuaJIT # 编译并安装到系统 make && sudo make install # 设置环境变量(可以加到~/.bashrc里永久生效) export PATH=/usr/local/bin:$PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
2. 手动安装Luarocks
# 下载合适版本的luarocks(这里选3.9.1,你可以按需调整) wget https://luarocks.org/releases/luarocks-3.9.1.tar.gz tar xzf luarocks-3.9.1.tar.gz cd luarocks-3.9.1 # 配置并安装 ./configure --with-lua=/usr/local make && sudo make install
3. 手动安装cutorch
先确保CUDA10的环境变量配置正确:
# 替换成你的CUDA10实际安装路径,比如/usr/local/cuda-10.2 export CUDA_HOME=/usr/local/cuda-10.x export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
然后尝试通过luarocks安装:
luarocks install cutorch CUDA_INCDIR=$CUDA_HOME/include CUDA_LIBDIR=$CUDA_HOME/lib64
如果还是失败,直接从源码编译cutorch:
git clone https://github.com/torch/cutorch.git cd cutorch luarocks make rocks/cutorch-scm-1.rockspec CUDA_INCDIR=$CUDA_HOME/include CUDA_LIBDIR=$CUDA_HOME/lib64
额外提醒
- 确认你的设备支持CUDA:普通树莓派(比如Pi 4/5)没有NVIDIA GPU,根本跑不了CUDA,只有Jetson系列(Nano、Xavier等)才支持。如果是普通树莓派,建议直接放弃CUDA版本,改用CPU版Torch。
- 验证CUDA10是否正常:运行
nvcc --version和nvidia-smi确认CUDA工具链和GPU状态没问题。
内容的提问来源于stack exchange,提问作者Rehan
相关产品推荐
相关产品推荐

