2012-01-04 81 views
1

IM應用的7x7卷積過濾器,我需要的是這個大,但即時通訊經歷了巨大的性能損失..GLSL的Texture2D加速比

是那裏而不是實現這一目標的嵌套的for循環更快的方法?即:

for(int i=0;i<7;i++) { 
    for(int p=0;p<7;p++) { 
     k += texture2D(...); 
    } 
} 

PS:使用#version 140

+0

你是如何確定此代碼是負責你的放緩?這是來自儀器還是其他GPU分析?訪問49個條目似乎不是什麼大問題。也許展開循環可能會有幫助,但我認爲你可能看錯了一些東西。 – 2012-01-04 16:27:41

+0

沒有它的肯定,這是毫無疑問的.. – user815129 2012-01-04 16:44:34

+0

aw是..我忘了提及我在一個'舊'GT330M(48核心)runnin它 – user815129 2012-01-04 16:44:59

回答

2

如果你的過濾器is separable然後separate it IM。

這樣,你只有7 + 7 = 14所,而不是查找的7×7 = 49

+0

太棒了。提起下有用的花絮:) – 2012-01-04 17:45:05

+0

不幸的是它不可分離:( – user815129 2012-01-05 09:09:15