第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

數(shù)組可以明顯慢于MATLAB中的顯式循環(huán)。為什么?

數(shù)組可以明顯慢于MATLAB中的顯式循環(huán)。為什么?

慕俠2389804 2019-06-20 15:34:47
數(shù)組可以明顯慢于MATLAB中的顯式循環(huán)。為什么?考慮以下簡單的速度測試arrayfun:T = 4000;N = 500;x = randn(T, N);Func1 = @(a) (3*a^2 + 2*a - 1);ticSoln1 = ones(T, N);for t = 1:T     for n = 1:N         Soln1(t, n) = Func1(x(t, n));     endendtocticSoln2 = arrayfun(Func1, x);toc在我的機(jī)器上(LinuxMint 12上的Matlab2011B),這個測試的輸出是:Elapsed time is 1.020689 seconds.Elapsed time is 9.248388 seconds.什么?!?arrayfun雖然無可否認(rèn),這是一個更干凈的解決方案,但速度卻慢了好幾個數(shù)量級。這里發(fā)生什么事情?此外,我還做了類似的測試cellfun發(fā)現(xiàn)它比一個顯式循環(huán)慢了大約3倍。同樣,這個結(jié)果與我所期望的相反。我的問題是:為什么arrayfun和cellfun這么慢?考慮到這一點(diǎn),是否有充分的理由使用它們(除了使代碼看起來很好)?注:我說的是標(biāo)準(zhǔn)版本的arrayfun這里,不是來自并行處理工具箱的GPU版本。編輯:我只想說清楚,我知道Func1如Oli所指出的,可以將上面的內(nèi)容矢量化。我之所以選擇它,只是因?yàn)闉榱藢?shí)際問題的目的,它產(chǎn)生了一個簡單的速度測試。編輯:按照格倫蓋塔的建議,我重新做了測試feature accel off..結(jié)果如下:Elapsed time is 28.183422 seconds.Elapsed time is 23.525251 seconds.換句話說,很大一部分區(qū)別在于JIT加速器在加速顯式方面做得更好。for循環(huán)arrayfun..這對我來說很奇怪,因?yàn)閍rrayfun實(shí)際上提供了更多的信息,即它的使用揭示了調(diào)用的順序Func1沒關(guān)系。另外,我注意到無論JIT加速器是打開還是關(guān)閉,我的系統(tǒng)都只使用一個CPU.
查看完整描述

2 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個贊

因?yàn)椋?/trans>

x = randn(T, N);

不是gpuarray類型;

你要做的就是

x = randn(T, N,'gpuArray');


查看完整回答
反對 回復(fù) 2019-06-20
  • 2 回答
  • 0 關(guān)注
  • 831 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號