NumbaPro(Python)的Decorator上的NotImplementedError

时间:2014-02-13 20:32:54

标签: python cuda anaconda numba-pro

我是Python新手NumbaPro。我有以下代码,我想在CUDA(Anaconda Accelerate)的x,y网格中并行化,但是每次运行它都会在Decorator行给出一个NotImplementedError,我不确定有什么问题,有人可以帮帮我吗?非常感谢:

@cuda.jit(argtypes=(float64[:,:], float64[:,:,:], float64, float64, float64), device=True)
def computeflow(PMapping2, Array_hist2, Num_f1, p_depth1, image_width1):
    x, y = cuda.grid(2);
    for y in xrange(0,p_depth1):
        for x in xrange(0,image_width1):
            Array_H, bin_edges = numpy.histogram(Array_hist2[y,x,:], bins=Num_f1, range=None, normed=False, weights=None, density=None);
            Array_H = (numpy.imag(numpy.fft.ifft(Array_H,n=1024)));
            Array_H1 = Array_H[0:len(Array_H)/2];
            Array_H1[20:1024] = 0;
            PMapping2[y,x] = numpy.sum(Array_H1);            
Mapping1=cuda.to_device(PMapping);
Array_hist1=cuda.to_device(Array_hist);
computeflow[(3,3),(3,3)](PMapping, Array_hist, Num_f, p_depth, image_width);
PMapping1.to_host();

1 个答案:

答案 0 :(得分:0)

  

NotImplementedError:offset = 203 opcode = 2b opname = STORE_SLICE + 3

这意味着切片操作a[i:j] = b尚未实现。 ref

看看你尝试使用cuda的功能,看起来你并不完全了解cuda是如何工作的。我建议您查看一些常规指南,例如cuda/pycudaopencl/pyopencl,以便快速了解如何设计用于对ppu进行parallalizing的功能。这是一个太大的话题。对于这些类型的东西的文档在连续性页面上是非常糟糕的。可能是因为仍有很多发展正在进行中。