我是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();
答案 0 :(得分:0)
NotImplementedError:offset = 203 opcode = 2b opname = STORE_SLICE + 3
这意味着切片操作a[i:j] = b
尚未实现。 ref
看看你尝试使用cuda的功能,看起来你并不完全了解cuda是如何工作的。我建议您查看一些常规指南,例如cuda/pycuda
或opencl/pyopencl
,以便快速了解如何设计用于对ppu进行parallalizing的功能。这是一个太大的话题。对于这些类型的东西的文档在连续性页面上是非常糟糕的。可能是因为仍有很多发展正在进行中。