Thanks for your reply again!
I'm using Skia to make a gradient-blur filter like this (blur radius gets bigger and bigger from left to right):

The current solution is:
1. a base radius r0 (e.g. 60).
2. use skGradientShader::MakeLinear() to make a gradientShader which returns a linear gradient alpha-channel value.
3. each pixel i has a specific blur radius (equals to r0 * alpha_i), then do a sperate boxblur (one horizontal and one vertical) :
Now, I want to keep the first and second step. And speed up the third step.
My idea is using 2D prefix sum (aka integra; image). Then, each pixel can be blurred by 4 times additions using 2D prefix sum, instead of looping in SKSL.
Is there any better idea to speed up the whole process?