【发布时间】:2019-12-21 08:26:02
【问题描述】:
我正在尝试运行 Python 库中的示例:GeomLoss,它依赖于 Ubuntu 18.04.3 中的 CUDA、Pytorch 和 Keops。我使用 Anaconda 下载了 Python3.7,我使用的是 CUDA 10.1。 gcc 版本是 7.4.0。
当我从 GeomLoss 运行样本时,错误消息说:
RuntimeError: [KeOps] 此 KeOps 共享对象已编译 没有 cuda 支持:尝试将 tagHostDevice 设置为 0 或重新编译 带有工作版本的 cuda 的公式。
我无法将 tagHostDevice 更改为 0,因为这将根据他们的文档禁用 GPU 计算。我检查了 CUDA 和 Pytorch 安装,它们没有错误。 但是当我尝试从 KeOps 运行安装检查代码时:
import torch
import pykeops.torch as pktorch
x = torch.arange(1, 10, dtype=torch.float32).view(-1, 3)
y = torch.arange(3, 9, dtype=torch.float32).view(-1, 3)
my_conv = pktorch.Genred('SqNorm2(x-y)', ['x = Vi(3)', 'y = Vj(3)'])
print(my_conv(x, y))
我收到错误消息:
错误——不支持的 GNU 版本!不支持高于 6 的 gcc 版本! ^~~~~ CMake 错误在 keopslibKeOpstorch91c92bd508_generated_link_autodiff.cu.o.Release.cmake:219
我查看了 CUDA 文档,对于 Ubuntu 18.04.3,原生 linux 发行版支持应该是 gcc-7.3.0。对于 x86_64。我使用gcc --version 来检查系统中的默认gcc,它使用的是gcc-7.4.0。我不确定这是否是使用带有 CUDA 和 GPU 的 KeOps 的问题。另外,我相信 KeOps 不会支持 7 之前的 gcc 版本。所以我真的很困惑我现在应该如何解决这个问题。
我想知道是否有人遇到过 GeomLoss 和 KeOps 或其他库的类似问题。我真的很感激任何建议。谢谢!
【问题讨论】: