【问题标题】:Python CUDA parallize multiple SVD's of small matricesPython CUDA 并行化多个小矩阵的 SVD
【发布时间】:2021-02-12 17:51:19
【问题描述】:

我在 stackoverflow 上看到过一篇类似的帖子,它解决了 C++ 中的问题:Parallel implementation for multiple SVDs using CUDA 我想在 python 中做同样的事情,这可能吗?我有多个矩阵(大约 8000 个,大小为 15x3),我想使用 SVD 分解它们中的每一个。这需要数年的 CPU 时间。有可能在python中做到这一点吗?我的电脑安装了 NVIDIA GPU。我已经看过几个库,例如 numba、pycuda、scikit-cuda、cupy,但没有找到用这些库实现我的计划的方法。我会很高兴得到一些帮助。

【问题讨论】:

  • 事实证明,cusolver 有一个批处理实现。我第一次看文档时错过了它。

标签: python cuda


【解决方案1】:

【讨论】:

  • 是的,我见过那个,但这只对大矩阵有意义。我的问题是我希望每个线程都执行这样的 SVD,如果我没记错的话,cuPy 不允许我在 python 中这样做。 (通过 ID 控制每个线程)
  • 我没有在 cuPy 中尝试过,但是在 numpy 中,输入数组可以是 > 2 维(在这种情况下为 8000 x 15 x 3)并且它会广播。理论上,cuPy 有类似的吗? numpy.org/doc/stable/reference/…
猜你喜欢
  • 2014-02-26
  • 2023-03-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 2013-07-31
相关资源
最近更新 更多