【问题标题】:What is the proper way to enable cub in cupy?在 Cupy 中启用 cub 的正确方法是什么?
【发布时间】:2020-11-15 12:05:18
【问题描述】:

我正在尝试找出在cupy 中启用cub 的正确方法,但到目前为止还没有成功。我查看了文档,但找不到任何东西。目前我像这样启用cub

import cupy.core._accelerator as _acc
_acc.set_routine_accelerators(['cub'])
_acc.set_reduction_accelerators(['cub'])

在执行上述代码之前,cub 被禁用。我通过运行确认:

cupy.core.get_reduction_accelerators()
cupy.core.get_routine_accelerators()

返回一个空列表 ([])。在第一个 sn-p 中运行代码后,上述函数返回 [1](无论这意味着什么)。此外,我可以注意到 cupy.nansum 等函数的巨大性能差异。

正如您所见,cupy.set_routine_acceleratorscupy.set_reduction_accelerators 函数属于私有 API (cupy.core._accelerator),这意味着我不应该调用它们。

  • cupy 中启用cub 的正确方法是什么?

我正在使用Python 3.7.6cupy 8.1.0

谢谢

【问题讨论】:

  • 记录在案的方法是通过CUPY_ACCELERATORS env var。 export CUPY_ACCELERATORS=cubdocs.cupy.dev/en/stable/reference/environment.html 正如您所注意到的,set_*_accelerators 主要是我们用于测试的私有 API。他们返回 1 的原因是我们使用了 Enum,我同意这令人困惑……也许我们可以更改它:)。
  • 哦,我错过了文档的那部分!傻我!非常感谢朋友的快速回答!随意添加此评论作为回复,我很乐意接受。再次感谢!

标签: python-3.x cupy cub


【解决方案1】:

记录在案的方法是通过 CUPY_ACCELERATORS env var。导出 CUPY_ACCELERATORS=cub。 docs.cupy.dev/en/stable/reference/environment.html 如您所见,set_*_accelerators 主要是我们用于测试的私有 API。他们返回 1 的原因是我们使用了 Enum,我同意这令人困惑……也许我们可以更改它:)。

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 2018-02-25
    相关资源
    最近更新 更多