如何在 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 目标函数中使用它。您可以尝试自己实现,但这很难做到。