记录一个报错
在我从官网编译安装完pytorch1.10.0以后,编译安装torchvision0.11.0的时候报错。完整报错是这样,我跟这个图片的报错一样
分析报错原因
可以ls /opt/venv/lib/python3.10/site-packages/torch/utils/cpp_extension.py,看一下 1793行附近, _get_cuda_arch_flags这个方法可以找到支持的算力列表,
可以发现当前列表不支持8.7算力
所以原因就是我的NVIDIA Orin NX 的 GPU 支持 CUDA 8.7 计算能力,所以编译pytorch的时候自适应了这个算力,编译了支持CUDA8.7算力的pytorch。但在 PyTorch 1.10.0 的默认设置中,8.7 并不在预设的支持列表中,所以产生这个报错。
解决办法
首先,使用这个代码查看自己编译的pytorch支持的CUDA哪个算力。我的输出是(8,7),说明我编译的就是支持CUDA8.7算力的pytorch。
import torch
print(torch.cuda.get_arch_list())
所以,我直接在supported_arches这个列表里加上'8.7',使它支持8.7这个问题就解决了。
随后可以验证一下torch和torchvision有没有问题。
我倒是想过手动添加8.7会不会导致编译的pytorch1.10.0并不适用。目前使用还没遇到问题,遇到问题后随时回来记录。