【发布时间】: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_accelerators 和 cupy.set_reduction_accelerators 函数属于私有 API (cupy.core._accelerator),这意味着我不应该调用它们。
- 在
cupy中启用cub的正确方法是什么?
我正在使用Python 3.7.6 和cupy 8.1.0
谢谢
【问题讨论】:
-
记录在案的方法是通过
CUPY_ACCELERATORSenv var。export CUPY_ACCELERATORS=cub。 docs.cupy.dev/en/stable/reference/environment.html 正如您所注意到的,set_*_accelerators主要是我们用于测试的私有 API。他们返回 1 的原因是我们使用了 Enum,我同意这令人困惑……也许我们可以更改它:)。 -
哦,我错过了文档的那部分!傻我!非常感谢朋友的快速回答!随意添加此评论作为回复,我很乐意接受。再次感谢!
标签: python-3.x cupy cub