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)的元组,将在定时测试期间进行计时。如果未给出,则使用当前设备。
- 返回:
一个收集所有测试结果的对象。
- 返回类型:
警告
自 CuPy v10 起,此 API 已移至
cupyx.profiler.benchmark()。通过cupyx.time访问已弃用。