python向量化编程_Python-apython-end错误:nopython向量化失败

我正在尝试使用numbapro来运行一个基本的对象交互模拟。但我得到了这个错误,我不知道是什么问题。我对GPU加速很陌生:(

这是我的代码:from turtle import *

import numpy as np

from numbapro import vectorize

setup( width = 1920, height = 1080, startx = None, starty = None)

colormode(255)

G = 1 #6.67428*10**(-11)

AU = 1 #149597871 * 1000 # 1 AU in meters

dt = 0.1

dt = np.float64(dt)

SCALE = 1 #150 / Au

bodiesVx = np.random.randint(1,11,10)

bodiesVy = np.random.randint(1,11,10)

bodiesM = np.random.randint(1,11,10)

bodiesPx = np.random.randint(760,1060,10)

bodiesPy = np.random.randint(440,640,10)

bodiesM = bodiesM.astype('float64')

bodiesPx = bodiesPx.astype('float64')

bodiesPy = bodiesPy.astype('float64')

bodiesVx = bodiesVx.astype('float64')

bodiesVy = bodiesVy.astype('float64')

@vectorize(['float64(float64)'],target="gpu")

def UpdateX(i):

print (i)

global bodiesM, bodiesPx, bodiesVx, dt, G

PX = bodiesPx[bodiesPx-i == 0][0]

MArr = bodiesM[bodiesPx-bodiesPx[i] != 0]

PxArr = bodiesPx[bodiesPx != PX]

AccArrX = MArr*G/(PxArr-PX)**2

Vx = dt * np.sum(AccArrX) + bodiesVx[bodiesPx == PX][0]

return Vx * dt

@vectorize(['float64(float64)'],target="gpu")

def UpdateY(i):

global bodiesM, bodiesPy, bodiesVy, dt, G

PY = bodiesPy[bodiesPy-i == 0][0]

MArr = bodiesM[bodiesPy-bodiesPy[i] != 0]

PyArr = bodiesPy[bodiesPy != PY]

AccArrY = MArr*G/(PyArr-PY)**2

Vy = dt * np.sum(AccArrY) + bodiesVy[bodiesPy == PY][0]

return Vy * dt

def move(i):

Turtle.goto(bodiesPx[i], bodiesPy[i])

def main():

global bodiesPx, bodiesPy

while True:

bodiesPx += UpdateX

bodiesPy += UpdateY

for i in range(len(bodiesPx)):

move(i)

main()

错误就在这里:

^{pr2}$

任何想法都将不胜感激!

谢谢!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值