2015-09-18 221 views
1

第一次調用cufftPlanMany()時,大約需要0.7秒,但接下來的所有調用都很快。 任何想法如何加速第一次調用cufftPlanMany()?爲什麼cufftPlanMany()需要太長時間?

+2

該cufft庫有一個與之相關的初始化時間。這就是你正在經歷的。 [這個答案](http://stackoverflow.com/questions/31012941/cufft-is-1000x-slower-in-vs2013-cuda7-0-compared-to-vs2010-cuda4-2)可能是有趣的。我認爲你不能避免它。 –

+0

你說得對。我正在尋求任何方法來避免這種初始化懲罰。我試圖在開始時用一個小參數來製作一個虛擬調用來cufftPlanMany()。它沒有幫助! – Maghraby

+0

或者是否有任何庫不會受到這種初始化懲罰,並且會給出良好的處理性能? – Maghraby

回答

1

首先調用cufftPlanMany會導致libcufft.so被加載。如果需要,這會輪到cital背景,並加載所有的內核。根據圖書館的規模,這總是需要一些時間。秒的0.7是有點過分,它會在下一個版本的cuFFT中減少。我們也減少了每個後續cufftPlan *函數的時間。

爲什麼你需要低初始化時間?

+0

非常感謝您的回答。實際上,與非GPU實現相比,我希望實現大幅提速。這種初始化開銷減少了我顯着的整體加速。 – Maghraby

+0

謝謝llukas。如果您知道,能否請您提供您期望的FFT初始化性能改進版本? –

+0

我需要檢查確切的版本有顛簸。 r8.0在0.25秒內爲我初始化,這是你所看到的嗎? – llukas

相關問題