如何使用cupy循环numpy ndarray?真的会提高执行时间吗?
Posted
技术标签:
【中文标题】如何使用cupy循环numpy ndarray?真的会提高执行时间吗?【英文标题】:How to loop numpy ndarray by using cupy? Is will really improve execution time? 【发布时间】:2019-04-26 02:38:59 【问题描述】:我有两个相同大小的 numpy ndarray [512 X 512]。我想根据其他数组值更改一个数组。但是执行时间真的很长。所以,我想将 numpy ndarray 更改为 cupy ndarray 并希望在 GPU 中执行。是否可以?是否会缩短执行时间?这是我当前的一段代码。
for n,val in enumerate(array_A.flat):
if val < 200:
Array_B.flat[n] = -1000
【问题讨论】:
【参考方案1】:如果您使用 NumPy 的内置函数对选项进行矢量化,您将体验到性能的巨大提升:
Array_B[array_A < 200] = -1000
这会将操作推到较低的级别,避免在 Python 中执行循环。
【讨论】:
非常感谢。我体验到了性能的巨大提升。以上是关于如何使用cupy循环numpy ndarray?真的会提高执行时间吗?的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:参数“x”的类型不正确(预期为cupy.core.core.ndarray,得到了numpy.ndarray)
基于唯一值对 2D Numpy/CuPy 数组进行更快的迭代
将数组的列作为向量执行“for循环”时,Cupy 比 numpy 慢