我正在寻找一种在不使用 cuda(或任何可安装软件)的情况下利用计算机 gpu 的方法。原因是我有一个应用程序,其中神经网络在用户的计算机上运行,我不能假设他们会有知识/花费时间和精力来安装 CUDA。我看到可以使用 WebGL 来使用 gpu,但从我的阅读中,听起来由于这种方法的其他限制,它实际上并不比使用 cpu 快。有谁知道如何使用openCL或其他方式来做到这一点?
如何使用 gpu(无 CUDA)在应用程序中运行模型
数据挖掘
Python
神经网络
张量流
显卡
2022-01-27 20:51:30
2个回答
我很确定你需要 CUDA 来使用 GPU,因为你已经包含了标签 tensorflow。tensorflow 中的所有ops内容都是用 C++ 编写的,它使用 CUDA API 与 GPU 对话。也许有一些库可以在没有 CUDA 的情况下在 GPU 上执行矩阵乘法,但我还没有听说过在 GPU 上执行时不使用 CUDA 的深度学习框架。
你可以做些什么找到一个使用 Docker 工作的解决方案。最新版本不需要安装任何额外的 Nvidia 软件。这意味着您的客户不需要自己弄乱 CUDA,他们只需要安装 docker,这通常不到 5 分钟的工作时间。这是初学者的 Tensorflow 文档。
此外,使用 Docker 可能是将代码交付给其他人的机器的最专业和孤立的方式。有很多好处,它适用于 Windows、Mac、Linux。您所做的任何更改都可以简单地推送到他们的机器上,而无需他们进行任何更改。它还可以任意扩展至多台机器,在本地或云端运行,不胜枚举……
有一些选项可以在无需用户安装 CUDA 的情况下在 GPU 上运行东西:
- 如果用户安装了 nvidia 驱动程序,您可以将 CUDA 库与您的应用程序捆绑在一起(以及任何其他间接依赖项,可能是 cublas 和类似的东西)。这就是一些像 PyTorch 这样的深度学习库所做的。
- 您可以使用通过 WebGL 在 GPU 上运行的 tensorflow.js。根据他们的网站,通过 WebGL 运行可以在 CPU 上运行 100 倍。
- 直接使用驱动程序nvidia 驱动程序 API,无需 CUDA。
决定取决于许多因素(团队的专业知识、截止日期等)。如果不了解这些因素,我建议捆绑 CUDA 库,假设 GPU 是 nvidia 并且您符合CUDA 许可证。
我不会去码头工人。默认情况下,docker 容器无法访问底层 GPU。您需要安装和配置docker nvidia 运行时并在运行映像时指定它。如果您的用户无法安装 CUDA,他们很可能也无法处理这个问题。
其它你可能感兴趣的问题