You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派64位系统导入torch触发libgomp.so.1静态TLS内存分配错误求助

解决方案
  • 第一步:先确认libgomp1依赖安装正常,执行命令:
sudo apt update && sudo apt install -y libgomp1

随后找到libgomp.so.1的真实路径,执行:

sudo find / -name "libgomp.so.1" 2>/dev/null

记录输出的路径,通常为/usr/lib/aarch64-linux-gnu/libgomp.so.1或者/lib/aarch64-linux-gnu/libgomp.so.1。

  • 第二步:测试临时环境变量生效情况,直接在当前终端执行(替换为上一步查到的真实路径):
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1${LD_PRELOAD:+:$LD_PRELOAD}

注意:原配置写法末尾的:/$LD_PRELOAD会在LD_PRELOAD为空时引入多余冒号,导致加载失败,上述写法可规避该问题
随后直接在当前终端启动python,执行导入语句测试是否报错:

from torch.nn.utils.rnn import pad_sequence

如果临时测试可以正常导入,再进行永久配置。

  • 第三步:永久生效配置任选一种即可:
    1. 单用户生效:将上述正确的export语句写入~/.profile文件,而非仅~/.bashrc(后者仅在交互式bash终端加载,运行脚本、定时任务等场景不会加载),写入后执行source ~/.profile生效。
    2. 虚拟环境专用:如果使用conda/venv等虚拟环境,将export语句写入虚拟环境的activate脚本中,每次激活环境时自动加载。
    3. 全局生效:将libgomp.so.1的完整路径写入/etc/ld.so.preload文件(需要root权限),全局所有程序都会优先加载该库。
  • 备用方案:如果上述配置仍无效,可尝试以下操作:
    • 启动python前先设置export OMP_NUM_THREADS=1,降低OpenMP线程数减少TLS内存占用
    • 替换为适配aarch64架构的PyTorch版本,优先从conda-forge安装arm版PyTorch,或使用树莓派社区编译好的适配whl包
    • 运行脚本时直接前缀指定环境变量,无需修改全局配置:
    LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1 python your_script.py
    

内容的提问来源于stack exchange,提问作者Fakhruddin Babar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:54:04