You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装SegmentAnything3D时遇PyTorch CUDA IndexError问题求助

解决SegmentAnything3D安装中python setup.py install的IndexError问题

我在安装SegmentAnything3D 3D分割项目时,执行python setup.py install命令出现如下错误:

!!
  self.initialize_options()
running bdist_egg
running egg_info
writing pointops.egg-info/PKG-INFO
writing dependency_links to pointops.egg-info/dependency_links.txt
writing requirements to pointops.egg-info/requires.txt
writing top-level names to pointops.egg-info/top_level.txt
reading manifest file 'pointops.egg-info/SOURCES.txt'
writing manifest file 'pointops.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/torch/utils/cpp_extension.py:425: UserWarning: There are no g++ version bounds defined for CUDA version 11.8
  warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
building 'pointops._C' extension
/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/torch/cuda/__init__.py:628: UserWarning: Can't initialize NVML
  warnings.warn("Can't initialize NVML")
Traceback (most recent call last):
  File "setup.py", line 16, in <module>
    setup(
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/__init__.py", line 103, in setup
    return distutils.core.setup(**attrs)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
    super().run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/install.py", line 84, in run
    self.do_egg_install()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/install.py", line 132, in do_egg_install
    self.run_command('bdist_egg')
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
    super().run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/bdist_egg.py", line 167, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/bdist_egg.py", line 153, in call_command
    self.run_command(cmdname)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
    super().run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/install_lib.py", line 11, in run
    self.build()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/command/install_lib.py", line 111, in build
    self.run_command('build_ext')
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
    super().run_command(command)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 88, in run
    _build_ext.run(self)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
    self.build_extensions()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 871, in build_extensions
    build_ext.build_extensions(self)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
    self._build_extensions_serial()
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 249, in build_extension
    _build_ext.build_extension(self, ext)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
    objects = self.compiler.compile(
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 675, in unix_wrap_ninja_compile
    cuda_post_cflags = unix_cuda_flags(cuda_post_cflags)
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 574, in unix_cuda_flags
    cflags + _get_cuda_arch_flags(cflags))
  File "/home/makogan/anaconda3/envs/sam3d/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1976, in _get_cuda_arch_flags
    arch_list[-1] += '+PTX'
IndexError: list index out of range

我已尝试重装CUDA并重启电脑,但问题仍未解决,以下是可行的解决方法:

  • 手动指定CUDA架构
    该错误是PyTorch的cpp_extension无法自动检测CUDA架构,导致arch_list为空。执行安装命令时手动指定你的GPU对应架构,比如RTX 30系列(安培架构)可执行:

    TORCH_CUDA_ARCH_LIST="8.0" python setup.py install
    

    常见GPU对应架构版本:

    • RTX 20系列/Titan V: 7.5
    • RTX 30系列/A100: 8.0/8.6
    • RTX 40系列: 8.9
    • GTX 10系列: 6.1
  • 检查PyTorch与CUDA版本兼容性
    确保当前PyTorch版本和CUDA 11.8兼容,运行以下命令查看PyTorch绑定的CUDA版本:

    import torch
    print(torch.version.cuda)
    

    若版本不匹配,重新安装适配CUDA 11.8的PyTorch:

    pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
    
  • 修改setup.py强制指定架构
    找到项目中的setup.py,在构建扩展部分给CUDAExtension添加架构参数:

    from torch.utils.cpp_extension import CUDAExtension
    ext_modules=[
        CUDAExtension(
            'pointops._C',
            sources=[...],  # 保留原文件中的sources内容
            extra_compile_args={
                'cxx': [...],  # 保留原文件中的cxx参数
                'nvcc': ['-arch=sm_80']  # 替换为你的GPU架构
            }
        )
    ]
    

    保存后重新执行python setup.py install

  • 修复NVML初始化问题
    错误中提示Can't initialize NVML,可能是NVIDIA驱动异常:

    • 重新安装适配CUDA 11.8的NVIDIA驱动
    • 运行nvidia-smi检查驱动状态,若命令报错优先解决驱动问题

内容的提问来源于stack exchange,提问作者Makogan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:53:14