【问题标题】:How to activate google colab gpu using just plain python如何仅使用普通 python 激活 google colab gpu
【发布时间】:2020-06-27 00:50:42
【问题描述】:

我是谷歌 colab 的新手。

我正在尝试在那里进行深度学习。

我编写了一个类来仅使用 python 创建和训练 LSTM 网络 - 而不是任何特定的深度学习库,如 tensorflow、pytorch 等。

我以为我在使用 gpu,因为我在 colab 中正确选择了运行时类型。

然而,在代码执行期间,我有时会收到退出 gpu 模式的消息,因为我没有使用它。

所以,我的问题是:如何使用 google colab gpu,只使用普通的 python,而不使用特殊的 AI 库?是否有类似“装饰器代码”的东西可以放入我的原始代码中以便激活 gpu?

【问题讨论】:

    标签: python deep-learning gpu google-colaboratory


    【解决方案1】:

    使用 PyTorch 或 Tensorflow 等框架更容易。

    如果没有,你可以试试 pycuda 或 numba,它们更接近“纯”GPU 编程。这比仅使用 PyTorch 更难。

    【讨论】:

    • 感谢您的回答。假设我将我的纯 python 代码翻译成 tensorflow,在 tensorflow 中编写我自己的反向移植方法。你认为我会在不使用 tensorflow 优化工具的情况下获得 gpu 或 tpu 的好处吗?
    • 不,你不会。也许您可以使用 Swift for TensorFlow 快速完成。
    【解决方案2】:

    确保 Nvidia 驱动程序是最新的,您也可以安装 Cuda 工具包(不确定您是否需要协作)

    也麻木了

    如果你愿意,你可以使用 conda 来安装它们

    例子

    
    conda install numba & conda install cudatoolkit
    or
    pip install numba
    
    

    我们将为要在 GPU 上计算的函数使用 numba.jit 装饰器。装饰器有几个参数,但我们只使用目标参数。 Target 告诉 jit 为哪个源(“CPU”或“Cuda”)编译代码。 “Cuda”对应GPU。但是,如果 CPU 作为参数传递,那么 jit 会尝试优化代码在 CPU 上运行得更快,并提高速度。

    
    from numba import jit, cuda 
    import numpy as np
    
    @jit(target ="cuda")                          
    def func(a): 
        for i in range(10000000): 
            a[i]+= 1
    

    【讨论】:

    • 感谢您的回复。但是当我尝试使用 @jit(target ="cuda") 时,我收到错误“NotImplementedError:CUDA 不支持边界检查”,这会停止代码的执行。同样的错误还显示“UserWarning:autojit 已弃用,将在未来的版本中删除。请改用 jit。”。相反,如果我只使用@jit,则执行会一直持续到结束,但会发出巨大的警告
    • 继续前面的评论。我不确定这个巨大警告的原因是不是阻止了代码的预期加速。
    • 很抱歉评论了这么多次,但现在我确定 colab gpu 没有被使用,即使部署了@jit 装饰器,如第一条评论中所示。我仍然收到相同的消息来退出 gpu 模式,因为我没有使用它。
    • @AlessandroPereiraRodrigues 很抱歉回复晚了你能告诉我你使用的 Cuda 版本吗
    • 你能用Cuda 8版试试吗,我相信collab已经安装(默认)Cuda 9.0+
    猜你喜欢
    • 2020-07-27
    • 2021-08-07
    • 1970-01-01
    • 2020-04-14
    • 2020-08-28
    • 2020-12-04
    • 2018-11-06
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多