如何在 GPU 上调用 Scipy Numba 函数?
How to call Scipy Numba functions on GPU?
安装 numba-scipy 软件包后,以下代码片段有效:
import numba
import scipy.special as sc
@numba.vectorize(['float64(float64, float64)'])
def t_quantile(df, p):
return sc.stdtrit(df, p)
t_quantile(2., 0.975)
如何在 GPU 上执行 t_quantile()
,因为我在以下代码中尝试失败?
import numba
import scipy.special as sc
@numba.vectorize(['float64(float64, float64)'], target='cuda') # move to GPU here
def t_quantile(df, p):
return sc.stdtrit(df, p)
t_quantile(2., 0.975)
scipy.special.stdtrit
is actually not supported 由 Numba 在 nopython 模式下提供。只能使用回退实现(这主要违背了使用 Numba 的目的)。事实上,Scipy 大部分还不受 Numba 支持。因此,您也不能在 Numba CUDA 目标函数中使用它。您可以尝试自己实现,但这很难做到。
安装 numba-scipy 软件包后,以下代码片段有效:
import numba
import scipy.special as sc
@numba.vectorize(['float64(float64, float64)'])
def t_quantile(df, p):
return sc.stdtrit(df, p)
t_quantile(2., 0.975)
如何在 GPU 上执行 t_quantile()
,因为我在以下代码中尝试失败?
import numba
import scipy.special as sc
@numba.vectorize(['float64(float64, float64)'], target='cuda') # move to GPU here
def t_quantile(df, p):
return sc.stdtrit(df, p)
t_quantile(2., 0.975)
scipy.special.stdtrit
is actually not supported 由 Numba 在 nopython 模式下提供。只能使用回退实现(这主要违背了使用 Numba 的目的)。事实上,Scipy 大部分还不受 Numba 支持。因此,您也不能在 Numba CUDA 目标函数中使用它。您可以尝试自己实现,但这很难做到。