下载
中文
注册
在ARM环境下,使用Rec SDK进行模型训练报错

在ARM环境下,使用Rec SDK进行模型训练报错

2025/01/07

37

暂无评分
我要评分

问题信息

问题来源产品大类产品子类关键字
官方模型训练Rec SDK模型训练报错

问题现象描述

在ARM环境下,使用Rec SDK进行模型训练并且导入了scikit-learn库时存在报错:ImportError: /usr/local/python3.7.5/lib/python3.7/site-packages/sklearn/__check_build/../../scikit_learn.libs/libgomp-d22c30c5.so.1.0.0: cannot allocate memory in static TLS bloc。

原因分析

Rec SDK编译使用了OpenMP,OpenMP将使用 ThreadLocalStorage(动态TLS)内存空间,sklearn在执行一些并行计算的时候需要使用静态TLS空间。在aarch64架构的机器上动态TLS和静态TLS使用的是相同的预分配池,先导入Rec SDK时导致预分配过多的内存空间,导致sklearn导入时libgomp.so空间不足。

解决措施

在模型代码中的main.py文件中将 import sklearn 置于导入Rec SDK之前,保证libgomp.so有足够的静态TLS空间。

本页内容