cupyx.time.repeat#

cupyx.time.repeat(func, args=(), kwargs={}, n_repeat=10000, *, name=None, n_warmup=10, max_duration=inf, devices=None)[源代码][源代码]#

用于测量CPU和GPU所花费时间的计时工具。

这个函数是一个非常方便的辅助工具,用于设置定时测试。通过同步内部流,GPU 时间被正确记录。因此,为了计时一个多 GPU 函数,所有参与的设备必须作为 devices 参数传递,以便这个辅助工具知道要记录哪些设备。下面给出一个简单的例子:

import cupy as cp
from cupyx.time import repeat

def f(a, b):
    return 3 * cp.sin(-a) * b

a = 0.5 - cp.random.random((100,))
b = cp.random.random((100,))
print(repeat(f, (a, b), n_repeat=1000))
参数:
  • func (callable) – 一个可调用的对象,用于计时。

  • args (tuple) – 要传递给可调用对象的位置参数。

  • kwargs (dict) – 传递给可调用对象的关键字参数。

  • n_repeat (int) – 可调用对象被调用的次数。增加这个值会提高收集到的统计数据的准确性,但会延长测试时间。

  • name (str) – 要报告的函数名称。如果未给出,则使用可调用对象的 __name__ 属性。

  • n_warmup (int) – 可调用对象被调用的次数。预热运行不计时。

  • max_duration (float) – 整个测试可以使用的最大时间(以秒为单位)。如果所用时间超过此限制,测试将停止,并报告截至断点收集的统计数据。

  • devices (tuple) – 设备ID(int)的元组,将在定时测试期间进行计时。如果未给出,则使用当前设备。

返回:

一个收集所有测试结果的对象。

返回类型:

_PerfCaseResult

警告

自 CuPy v10 起,此 API 已移至 cupyx.profiler.benchmark()。通过 cupyx.time 访问已弃用。