在Ubuntu18.04中使用CUDA使用Python库Keops时出错

在Ubuntu18.04中使用CUDA使用Python库Keops时出错,python,ubuntu,gcc,pytorch,Python,Ubuntu,Gcc,Pytorch,我正在尝试运行Python库中的示例:,它依赖于CUDA、Pytorch和Ubuntu 18.04.3。我使用Anaconda下载了Python3.7,现在使用的是CUDA10.1。gcc版本是7.4.0 当我运行GeomLoss的样本时,错误消息说: RuntimeError:[KeOps]此KeOps共享对象已编译 不支持cuda:尝试将tagHostDevice设置为0或重新编译 具有cuda工作版本的公式 我无法将tagHostDevice更改为0,因为这将根据其文档禁用GPU计算。我检

我正在尝试运行Python库中的示例:,它依赖于CUDA、Pytorch和Ubuntu 18.04.3。我使用Anaconda下载了Python3.7,现在使用的是CUDA10.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_生成_链接_自动差异.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或其他库中遇到过类似的问题。我非常感谢你的建议。谢谢

我做了以下步骤,它对我起了作用:

首先,通过检查本文中的依赖项,我注意到没有安装
nvcc
编译器。通过转到,我完成了以下步骤:

wgethttps://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run
sudo sh cuda_11.2.2_460.32.03_linux.run
然后我意识到
nvcc
命令不起作用,所以我确实使用以下命令将它们添加到路径中:

nano~/.bashrc
#添加以下两行:
export PATH=“$PATH:/usr/local/cuda/bin”
export LD_LIBRARY_PATH=“$LD_LIBRARY_PATH:/usr/local/cuda/lib64”
通常,查看
PyKeops
的日志来检查流程是很重要的。因此,您可以随时更改
verbose
debug
模式,查看详细信息以检查失败的原因:

#测试PyKeops安装
进口皮克奥普斯
#更改详细信息和模式
pykeops.verbose=True
pykeops.build_type='Debug'
#清理已编译的文件
pykeops.clean_pykeops()
#测试Numpy集成
pykeops.test_numpy_绑定()

在我忘记之前,如果您的
cmake
不是
pykeops
所需的版本,请使用以下链接重新安装: