我正在此笔记本上学习如何在GPU上加速python计算,其中一行让我感到困惑:
mandel_kernel[griddim, blockdim](-2.0, 1.0, -1.0, 1.0, d_image, 20)
在此,mandel_kernel
是一个装饰(通过cuda.jit
)的功能,griddim
和blockdim
是长度为2的元组:griddim=(32,16)
,blockdim=(32,8)
。
这个方括号位于python语法的函数名称和参数列表之间cuda.jit
吗,还是特定于修饰的内容?
这是有效的python语法,我会尽力为您分解:
mandel_kernel
是一个字典,其键为2元组(griddim,blockdim),值为method(这是有效的,因为method是python中的对象)
mandel_kernel[griddim, blockdim]
因此“返回”(或评估为)一种方法
mandel_kernel[griddim, blockdim](-2.0, 1.0, -1.0, 1.0, d_image, 20)
因此,请使用括号内的任何参数调用该方法。
可以用以下三行来重写这一行:
key = tuple(griddim, blockdim)
method = mandel_kernel[key]
method(-2.0, 1.0, -1.0, 1.0, d_image, 20)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句