Pytorch nvcc fatal: 不支持的GPU架构 ‘compute_86’
在本文中,我们将介绍PyTorch中遇到的一个常见问题,即”nvcc fatal: 不支持的GPU架构 ‘compute_86′”。我们将解释此问题的原因,并提供解决方案来解决这个问题。
阅读更多:Pytorch 教程
问题描述
当在PyTorch中使用GPU进行训练或推理时,有时会遇到此错误消息:”nvcc fatal: 不支持的GPU架构 ‘compute_86′”。这通常在尝试使用较新的GPU架构进行深度学习任务时发生,因为PyTorch默认不支持该GPU架构。
问题原因
这个问题的原因是PyTorch的CUDA工具链版本与您的GPU架构不兼容。CUDA是一种用于在GPU上运行并行计算的平台,而nvcc是CUDA的编译器。当我们在PyTorch中使用CUDA进行GPU加速时,PyTorch会使用nvcc编译我们的代码并在GPU上执行。但是,默认情况下,PyTorch可能不支持最新的GPU架构,并且不包含与该架构兼容的nvcc编译器。
解决方案
要解决这个问题,我们需要更新PyTorch和CUDA工具链。下面是解决此问题的几种可能方法:
方法一:更新PyTorch和CUDA
首先,您可以尝试通过更新PyTorch和CUDA来解决这个问题。请确保您安装了与您的GPU架构兼容的PyTorch和CUDA版本。您可以从PyTorch官方网站下载最新的发行版本,并从NVIDIA官方网站下载与您的GPU架构兼容的CUDA版本。
方法二:降低GPU架构版本
如果您无法更新PyTorch和CUDA,或者您需要在较旧的GPU架构上运行代码,您可以尝试降低您的GPU架构版本。通过在PyTorch代码中指定所需的GPU架构版本,您可以使其与您的GPU兼容。
以下是一个示例,展示如何在PyTorch代码中指定所需的GPU架构版本:
在上面的示例中,我们使用torch.cuda.set_architecture()
函数将GPU架构设置为”sm_75″。请注意,您应该将”sm_75″替换为您所需的实际GPU架构版本。
一旦您将所需的GPU架构版本设置为正确的值,PyTorch将使用与您指定的版本兼容的nvcc编译器,从而解决了”nvcc fatal: 不支持的GPU架构 ‘compute_86′”错误。
总结
“nvcc fatal: 不支持的GPU架构 ‘compute_86′”是在PyTorch中使用GPU进行深度学习任务时常见的错误。通常,这是因为PyTorch默认不支持您的GPU架构,导致与nvcc编译器不兼容。为了解决这个问题,您可以尝试更新PyTorch和CUDA,或者降低所需的GPU架构版本。通过遵循上述解决方案,您将能够成功解决这个问题,使用PyTorch进行GPU加速的深度学习任务。