【发布时间】:2023-02-19 01:05:17
【问题描述】:
嘿,我在 AssemblyScript 中创建了一个 Box Blur 算法。
为了提高效率,我想使用 SIMD 操作。
例如我有它看起来像这样:
for(let column: i16 = x + deviationBase + 1; column < x + width - deviationBase; column++){
r += load<u8>(rowPosition + (column + deviationBase) * 4 )
g += load<u8>(rowPosition + (column + deviationBase) * 4 + 1)
b += load<u8>(rowPosition + (column + deviationBase) * 4 + 2)
r -= load<u8>(rowPosition + (column - deviationBase) * 4 )
g -= load<u8>(rowPosition + (column - deviationBase) * 4 + 1)
b -= load<u8>(rowPosition + (column - deviationBase) * 4 + 2)
store<u8>(rowPosition + column * 4 , (r / diameter) as u8)
store<u8>(rowPosition + column * 4 + 1, (g / diameter) as u8)
store<u8>(rowPosition + column * 4 + 2, (b / diameter) as u8)
}
如何使用 SIMD 使这个 for 循环更快?如果你也能给我一些解释就好了:)
【问题讨论】:
标签: webassembly simd assemblyscript