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

如何在Colaboratory中使用Numba?遇“library nvvm not found”错误求助

在Google Colaboratory中解决Numba的"library nvvm not found"错误

我之前在Colab里折腾过好几次Numba的CUDA配置,这个"library nvvm not found"的坑确实容易踩,给你几个亲测有效的解决步骤:

  • 先安装对应版本的CUDA工具包
    nvvm是CUDA工具链里的核心组件,Colab默认环境往往没把它的路径配置到位。先运行下面的命令安装兼容性最好的CUDA工具包版本:

    !apt update && apt install -y cuda-toolkit-11-8
    

    选11.8是因为它和当前Colab的Python版本、GPU环境适配性拉满,别随便换更高版本,容易触发其他兼容问题。

  • 手动指定Numba需要的环境变量
    安装完工具包后,得明确告诉Numba去哪找nvvm和libdevice文件,运行这段Python代码设置环境变量:

    import os
    # 设置nvvm库的具体路径
    os.environ['NUMBAPRO_NVVM'] = '/usr/lib/nvidia-cuda-toolkit/nvvm/lib64/libnvvm.so'
    # 设置libdevice的目录路径
    os.environ['NUMBAPRO_LIBDEVICE'] = '/usr/lib/nvidia-cuda-toolkit/nvvm/libdevice/'
    

    要是找不到这个默认路径,你可以用!find / -name libnvvm.so命令在Colab里搜索实际的文件位置,再替换掉上面的路径就行。

  • 测试配置是否生效
    写一段极简的Numba CUDA代码验证一下:

    from numba import cuda
    import numpy as np
    
    @cuda.jit
    def add_kernel(x, y, result):
        idx = cuda.grid(1)
        if idx < x.size:
            result[idx] = x[idx] + y[idx]
    
    # 准备测试数据
    x = np.array([1,2,3,4])
    y = np.array([5,6,7,8])
    result = np.zeros_like(x)
    
    # 配置CUDA线程与块的数量
    threads_per_block = 2
    blocks_per_grid = (x.size + threads_per_block - 1) // threads_per_block
    
    # 执行核函数
    add_kernel[blocks_per_grid, threads_per_block](x, y, result)
    print(result)
    

    如果输出[ 6 8 10 12],说明问题已经彻底解决啦!

  • 额外小提示
    要是设置完环境变量还是报错,试试重启Colab的运行时(点击顶部菜单栏的「运行时」→「重启运行时」),有时候环境变量需要重启才能完全生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:28:39