安装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
实际上在nopyson模式下不受Numba支持。只能使用回退实现(这大多违背了使用Numba的目的(。事实上,Scipy大部分还没有得到Numba的支持。因此,您也不能在Numba CUDA目标函数中使用它。你可以尝试自己实现这一点,但这很难做到