使用Hugging Face BERT时出现OMP: Error #179报错的解决咨询
解决OMP: Error #179: Function Can't open SHM failed问题
这个错误源于OpenMP访问共享内存(SHM)时的异常,以下是几种可行的解决方法:
限制OpenMP线程数
多线程竞争共享内存是常见诱因,强制将OpenMP线程数设为1可避免冲突:- 修改运行命令:
CUDA_VISIBLE_DEVICES='GPU_ID' OMP_NUM_THREADS=1 python3 MNLI.py - 或在Python代码开头配置环境变量:
import os os.environ["OMP_NUM_THREADS"] = "1" from transformers import BertForSequenceClassification, BertTokenizer
- 修改运行命令:
检查并扩容共享内存
共享内存空间不足也会触发该错误:- 查看当前共享内存使用情况:
df -h /dev/shm - 临时扩容(需root权限):
mount -o remount,size=8G /dev/shm - 永久修改配置:编辑
/etc/fstab文件,找到tmpfs /dev/shm tmpfs defaults 0 0行,修改为tmpfs /dev/shm tmpfs defaults,size=8G 0 0,之后执行mount -o remount /dev/shm生效。
- 查看当前共享内存使用情况:
禁用PyTorch多线程并行
PyTorch默认多线程设置可能和OpenMP冲突,手动限制线程数:import torch torch.set_num_threads(1) torch.set_num_interop_threads(1) from transformers import BertForSequenceClassification, BertTokenizer
内容的提问来源于stack exchange,提问作者core_not_dumped
相关产品推荐
相关产品推荐

