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

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

numba.jit 似乎對性能沒有影響的情況

numba.jit 似乎對性能沒有影響的情況

斯蒂芬大帝 2021-09-02 16:11:18
我正在運行簡單的測試,看看 numba.jit 是如何提高 numpy 數組循環函數的速度的。但是,在這兩個示例中:def f():    a=np.ones(1000)    for i in range(100000):        a+=np.random.normal(0,1,1000)%time f()和from numba import jit@jitdef g():    a=np.ones(1000)    for i in range(100000):        a+=np.random.normal(0,1,1000)%time g()我得到:CPU 時間:用戶 3.75 秒,系統:0 ns,總計:3.75 秒掛墻時間:3.75 秒CPU 時間:用戶 3.86 秒,系統:4.11 毫秒,總計:3.86 秒掛墻時間:3.84 秒所以 numba.jit 在這種情況下似乎沒有任何影響。這是為什么?
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

目前尚不清楚為什么您認為應該進行改進。我通過添加一個帶有 的內部循環看到了改進numba,這可能是因為 JIT 編譯可以使用更基本的、較低級別的類型優化操作。


# python 3.6.0, numpy 1.11.3, numba 0.30.1


np.random.seed(0)


def f(m, n):

    a = np.ones(n)

    for i in range(m):

        a += np.random.normal(0,1,n)

    return a


@jit

def g(m, n):

    a = np.ones(n)

    for i in range(m):

        x = np.random.normal(0,1,n)

        for j in range(n):

            a[j] += x[j]

    return a


%timeit f(10**5, 10**3)  # 6.53 s per loop

%timeit g(10**5, 10**3)  # 4.68 s per loop


查看完整回答
反對 回復 2021-09-02
  • 2 回答
  • 0 關注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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