参考的https://zj-image-processing.readthedocs.io/zh_CN/latest/pytorch/cuda/%E5%AE%89%E8%A3%85%E5%93%AA%E4%B8%AA%E7%89%88%E6%9C%AC%E7%9A%84CUDA/
问题
最近在做课程的综合设计,方向是nlp,打算搞一下中文文本摘要相关的内容,想着跑一下https://github.com/qingkongzhiqian/GPT2-Summary这个例子,装好环境后,一直报“段错误(核心已转储)”之类的错误,一开始还以为是自己的显卡太拉跨了。。。没想到是CUDA版本出了问题。。
解决办法
装正确版本的CUDA!
版本选择
在终端输入
nvcc --version
可以看到CUDA版本为10.2,所以对应的
conda install pytorch torchvision cudatoolkit=10.2
需要安装10.2版本的cudatoolkit。
最后果然跑通了模型!!!
4. 最后说一下CUDA的两个版本
注:
- 安装后通过下面的代码,在Python命令行模式下执行,检测是否版本是否对应可用
import torch
print(torch.__version__) # 查看torch当前版本号
print(torch.version.cuda) # 编译当前版本的torch使用的cuda版本号
print(torch.cuda.is_available()) # 查看当前cuda是否可用于当前版本的Torch,如果输出True,则表示可用
可以看到nvcc -v 和 nvidia-smi 两个对应的CUDA版本并不一样,其实是因为CUDA 有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。 nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号,这里是 10.0。而nvcc的结果是对应 CUDA Runtime API。
而我们安装的时候,要和nvcc的保持一致。
参考:
- https://www.cnblogs.com/csbiao/p/13832546.html
- https://www.zhihu.com/question/378419173