亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

與numba的prange平行并沿元組傳遞

與numba的prange平行并沿元組傳遞

肥皂起泡泡 2021-04-28 22:13:44
我嘗試遵循以下已記錄的示例進行并行化,如下所示:@numba.jit(nopython=True)def foo(uIdx, grids):    return [email protected](nopython=True, parallel=True)def bar(grid, grids):    LIdxGrid = np.zeros(len(grid))    for uIdx in numba.prange(len(grid)):            LIdxGrid[uIdx] = foo(uIdx, grids)    return LIdxGridif __name__ == '__main__':    import numpy as np    grid = np.arange(12)    grids = (grid, grid)    bar(grid, grids)但這似乎行不通。這個問題似乎源于傳遞grids(甚至沒有在最終foo函數中使用它)。如果我在foo和中刪除該引用bar,它將起作用:bar(grid, 0)Out[47]: array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11.])如何解決/解決此問題?
查看完整描述

1 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

對引用計數項(如np.ndarrays)的支持是非常新的(自numba 0.39起),我不確定是否使用tupleref的s。計數項目已經有效。Afaik的參考書tuple。尚不支持計數的項目。因此,為確保您的代碼正常運行,您必須將替換tuple為list:


if __name__ == '__main__':

    import numpy as np

    grid = np.arange(12)

    grids = [grid, grid]

    bar(grid, grids)

并確保您已安裝numba版本0.39!否則,它將無法正常工作。

當然,列表不是元組,因此這只是一種解決方法。但是,只要引用元組,就沒有其他方法可以解決此問題。不完全支持計數的項目。


查看完整回答
反對 回復 2021-05-11
  • 1 回答
  • 0 關注
  • 295 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號