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

VSCode中.ipynb文件torch.cuda.is_available()返回False问题求助

问题原因排查与解决方法

针对你遇到的VSCode中.ipynb文件无法识别GPU,但同环境.py文件和JupyterLab正常的问题,核心原因大概率是VSCode的Jupyter内核环境配置异常,具体分析和解决步骤如下:

可能的原因及对应解决方法

1. VSCode未正确关联conda环境的Jupyter内核

虽然sys.executable显示路径正确,但VSCode可能默认使用了其他内核(比如系统默认的Python),或者内核的环境变量未正确加载。

  • 解决:打开VSCode命令面板(Ctrl+Shift+P),执行Jupyter: Select Kernel,选择标注为Python (env2)的内核;如果没有该选项,先在终端激活env2环境,执行pip install ipykernel && python -m ipykernel install --user --name env2 --display-name "Python (env2)",再重新选择内核。

2. VSCode Jupyter扩展缓存了旧的环境信息

扩展缓存可能导致内核启动时未加载最新的CUDA环境变量,即使路径正确也无法识别GPU。

  • 解决:在命令面板执行Jupyter: Reset Kernels,关闭并重新打开.ipynb文件,再次测试torch.cuda.is_available()。

3. VSCode Remote-SSH连接时未加载CUDA环境变量

SLURM集群中,VSCode Remote连接的是非交互式Shell,可能不会自动加载~/.bashrc或~/.profile里的CUDA配置(比如LD_LIBRARY_PATH),而终端和JupyterLab是交互式Shell,能正常加载。

  • 临时测试:在.ipynb的第一个单元格手动添加环境变量:
    import os
    # 替换为你集群的CUDA 10.1路径
    os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda-10.1/lib64:' + os.environ.get('LD_LIBRARY_PATH', '')
    import torch
    print(torch.cuda.is_available())
    
    如果返回True,说明是环境变量问题。
  • 永久解决:打开VSCode设置,搜索remote.SSH.remoteEnv,添加CUDA相关环境变量:
    "remote.SSH.remoteEnv": {
        "LD_LIBRARY_PATH": "/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH",
        "PATH": "/usr/local/cuda-10.1/bin:$PATH"
    }
    
    保存后重新连接SLURM集群。

4. Jupyter内核启动时的资源绑定问题

部分SLURM节点需要显式绑定GPU资源,VSCode的Jupyter内核可能未自动获取GPU权限,但终端运行.py文件时环境已自动绑定。

  • 解决:在VSCode的终端中,先通过SLURM命令申请GPU资源(比如srun --gres=gpu:1 --pty bash),再在该终端中启动VSCode的Jupyter内核。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:15:38