根据CUDA可用性分发python软件包

问题描述

我写了一个python包,可以做一些事情(具体无关紧要)。使用该软件包时,用户可以指定是否使用可用的GPU。在我的代码中,我使用CuPy软件包来利用可用的GPU。

我现在想分发该软件包-理想情况是使用setuptools打包,将其放在PyPI上,并让用户使用pip进行安装。

问题:

我希望无论是否有CUDA,都可以将其安装在系统 上。问题是,如果系统没有没有CUDA,CuPy的安装(以及导入)将失败。因此,我收集到该软件包需要两个单独的版本,一个支持CUDA(并导入CuPy等),另一个不支持。而且,我需要一些机制来在安装过程中选择合适的版本。

我希望找到一种工具,该工具将(在安装过程中)检查CUDA是否可用(或更实际地,是否可以安装CuPy),并据此选择我的软件包的正确版本下载并安装。

任何想法是否存在某种东西,如果不存在,那么以正确的方式实现它?

注意:我假设无论系统是否具有CUDA,我都可以在setuptools的依赖项中列出CuPy,并且假设没有,我的软件包可以捕获由于尝试而引起的任何异常安装/导入/使用它。但是我觉得这很野蛮,希望能找到更优雅的东西。

注意2 :当然,我可以让用户为他的系统选择正确的版本,但我宁愿不这样做。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...