【问题标题】:NotImplementedError at Decorator of NumbaPro (Python)NumbaPro 装饰器中的 NotImplementedError (Python)
【发布时间】:2014-02-13 20:32:53
【问题描述】:

我是 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();

【问题讨论】:

  • 可能意味着您正在使用尚未在 numbapro 中实现的功能。它仍在开发中,所以还缺少一些东西。错误消息是否说明了未实施的内容?
  • NotImplementedError: offset=203 opcode=2b opname=STORE_SLICE+3 这是我得到的错误,谢谢!

标签: python cuda anaconda numba-pro


【解决方案1】:

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

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

查看您尝试使用 cuda 的功能,您似乎并不完全了解 cuda 的工作原理。我建议您查看一些通用指南,例如 cuda/pycudaopencl/pyopencl,以快速了解如何设计用于 gpu 的并行化功能。这是一个太大的话题,无法在这里讨论。可悲的是,此类事情的文档在连续页面上非常糟糕。可能是因为还有很多开发正在进行。

【讨论】:

  • 感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 2014-01-23
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多