我尝试使用cuda运行以下代码。它可以与target ='cpu'和target ='parallel'一起使用,但给与target ='cuda'错误并提供错误
我已经在终端上运行了numba -s,它显示一切都很好。
@vectorize([float64(float64), float32(float32)], target='cuda', nopython=True)
def closestDist(rij):
global gridsize
if (rij > gridsize / 2):
rij -= gridsize
elif (rij < -gridsize / 2):
rij += gridsize
return rij
这是我遇到的错误
AssertionError Traceback (most recent call last)
<ipython-input-3-85ebdde41444> in <module>
1 #helper function to calculate closest manhattan distance between two particles in line with PBC
----> 2 @vectorize([float64(float64), float32(float32)], target='cuda', nopython=True)
3 def closestDist(rij):
4 global gridsize
5 if (rij > gridsize / 2):
~/.local/lib/python3.6/site-packages/numba/npyufunc/decorators.py in wrap(func)
116
117 def wrap(func):
--> 118 vec = Vectorize(func, **kws)
119 for sig in ftylist:
120 vec.add(sig)
~/.local/lib/python3.6/site-packages/numba/npyufunc/decorators.py in __new__(cls, func, **kws)
36 cache = cls.get_cache(kws)
37 imp = cls.get_target_implementation(kws)
---> 38 return imp(func, identity=identity, cache=cache, targetoptions=kws)
39
40
~/.local/lib/python3.6/site-packages/numba/npyufunc/deviceufunc.py in __init__(self, func, identity, cache, targetoptions)
364 if cache:
365 raise TypeError("caching is not supported")
--> 366 assert not targetoptions
367 self.py_func = func
368 self.identity = parse_identity(identity)
AssertionError: