【问题标题】:How to use numba in Colaboratory如何在 Colaboratory 中使用 numba
【发布时间】:2018-07-26 10:42:53
【问题描述】:

有人尝试在 google 协作中使用 numba 吗?我只是不知道如何在这种环境中设置它。 目前,我遇到了错误library nvvm not found

【问题讨论】:

    标签: numba google-colaboratory numba-pro


    【解决方案1】:

    如果你在 colab 笔记本的开头有这个块,你可以在一个简单的扫描中完成 @Stan 的工作(这也会随着 CUDA 的更新而自动更新)

    import os
    dev_lib_path = !find / -iname 'libdevice'
    nvvm_lib_path = !find / -iname 'libnvvm.so'
    assert len(dev_lib_path)>0, "Device Lib Missing"
    assert len(nvvm_lib_path)>0, "NVVM Missing"
    os.environ['NUMBAPRO_LIBDEVICE'] = dev_lib_path[0]
    os.environ['NUMBAPRO_NVVM'] = nvvm_lib_path[0]
    

    【讨论】:

      【解决方案2】:

      我不必安装@Algis 建议的软件包,但驱动程序的路径不同。所以我必须做以下事情。

      首先确定驱动程序的正确路径

      !find / -iname 'libdevice'
      !find / -iname 'libnvvm.so'
      
      # Output:
      # /usr/local/cuda-9.2/nvvm/lib64/libnvvm.so
      # /usr/local/cuda-9.2/nvvm/libdevice
      

      然后按照@Algis 描述的方式设置路径

      import os
      os.environ['NUMBAPRO_LIBDEVICE'] = "/usr/local/cuda-9.2/nvvm/libdevice"
      os.environ['NUMBAPRO_NVVM'] = "/usr/local/cuda-9.2/nvvm/lib64/libnvvm.so"
      

      【讨论】:

        【解决方案3】:

        将此代码复制到单元格中。它对我有用。

        !apt-get install nvidia-cuda-toolkit
        !pip3 install numba
        
        import os
        os.environ['NUMBAPRO_LIBDEVICE'] = "/usr/lib/nvidia-cuda-toolkit/libdevice"
        os.environ['NUMBAPRO_NVVM'] = "/usr/lib/x86_64-linux-gnu/libnvvm.so"
        
        from numba import cuda
        import numpy as np
        import time
        
        @cuda.jit
        def hello(data):
            data[cuda.blockIdx.x, cuda.threadIdx.x] = cuda.blockIdx.x
        
        numBlocks = 5
        threadsPerBlock = 10
        
        data = np.ones((numBlocks, threadsPerBlock), dtype=np.uint8)
        
        hello[numBlocks, threadsPerBlock](data)
        
        print(data)
        

        【讨论】:

        • 你也需要!apt-get -y吗?
        • 也不要忘记使用 GPU Runtime。否则会报错。
        • 可以通过跳过!apt install -y --no-install-recommends -q nvidia-cuda-toolkit 的“推荐”包来简化依赖关系。它仍然庞大且安装缓慢,但只安装了 100 个包而不是 600 多个,如字体等。
        • 我可以确认它不能再最小化了。如果 nvidia-cuda-toolkit 包被删除,即使所有其他 99 个依赖包仍然安装,numba 在内核重新启动后也会被破坏。
        • 工具包的安装对我不起作用,但幸运的是,当我使用较小的 @hynekcer 安装时,它确实以某种方式工作。
        猜你喜欢
        • 2018-07-02
        • 2019-07-02
        • 1970-01-01
        • 2016-06-17
        • 2023-03-04
        • 2021-05-16
        • 2018-10-03
        • 2019-01-16
        相关资源
        最近更新 更多