首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为没有root权限的nvcc指定GCC版本

为没有root权限的nvcc指定GCC版本
EN

Stack Overflow用户
提问于 2021-07-30 07:32:58
回答 1查看 147关注 0票数 1

我使用的是GPU集群,其中提交的作业由Slurm管理。我在该服务器上没有admin / root权限。我目前正在尝试构建一个包含.cpp.cu文件的项目。我通过调用TORCH_CUDA_ARCH_LIST=7.2 CC=gcc-7 CXX=g++-7 python setup.py install来做到这一点,因为集群使用CUDA 10.1并运行V100 GPU(因此gencode是sm_70)。

但是,构建会崩溃,并显示以下错误消息:

代码语言:javascript
复制
building <filename> extension
gcc-7 -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes (...): 
error: #error -- unsupported GNU version! gcc versions later than 8 are not supported!
  138 | #error -- unsupported GNU version! gcc versions later than 8 are not supported!
      |  ^~~~~
error: command '/<somepath>/anaconda3/envs/pytorch14/bin/nvcc' failed with exit status 1

因此,从第二行中的gcc-7调用可以看出,python脚本使用了正确的编译器,但不幸的是,nvcc调用使用了系统范围的/usr/bin/gcc: symbolic link to gcc-9符号链接。我已经在网上找到了几个答案(包括thisthis),并尝试了建议的步骤。但是:由于我没有超级用户访问权限,我无法创建新的符号链接/将现有符号链接更改为另一个已安装的gcc版本,例如/usr/bin/gcc-7:SO ln -s /usr/bin/gcc-7 /usr/bin/gcc SO a ln: failed to create symbolic link '/usr/bin/gcc': File exists error,并将文件复制到/usr/local/bin中,如SO上其他答案中所建议的那样,由于缺少权限,也无法工作。

我真的不知所措,觉得这可能是个死胡同。有人有什么建议吗?

作为参考,我的setup.py是这样的:

代码语言:javascript
复制
from setuptools import setup
from torch.utils.cpp_extension import BuildExtension, CUDAExtension

setup(
    name='noise_cuda',
    ext_modules=[
        CUDAExtension('noise_cuda', [
            'noise_cuda.cpp',
            'noise_cuda_kernel.cu',
        ]),
    ],
    cmdclass={
        'build_ext': BuildExtension
    })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-30 08:09:30

我不是pytorch用户,但是如果我没看错docs,这应该是可行的:

代码语言:javascript
复制
import sysconfig
from setuptools import setup
from torch.utils.cpp_extension import BuildExtension, CUDAExtension

setup(
    name='noise_cuda',
    ext_modules=[
        CUDAExtension('noise_cuda', [
            'noise_cuda.cpp',
            'noise_cuda_kernel.cu',
        ], extra_compile_args={'cxx': sysconfig.get_config_var('CFLAGS').split(), 
                               'nvcc': ['-ccbin=/usr/bin/gcc-7']}),
    ],
    cmdclass={
        'build_ext': BuildExtension
    })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68587087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档