В документе из MSR приведен код ниже для расчета БПФ:
FFT_Rows(x, y, N, Ns, input)
{
base = floor(x / Ns) * (Ns / 2);
offset = x mod(Ns / 2);
x0 = base + offset;
x1 = x0 + N / 2;
(Re0, Im0) = input[x0][y];
(Re1, Im1) = input[x1][y];
angle = -2 * M_PI * (x / Ns);
(ReT, ImT) = (cos(angle), sin(angle));
return (Re0 + ReT * Re1 - ImT * Im1,
Im0 + ImT * Re1 + ReT * Im1);
}
как работают base
и offset
в реализации GPU? Я думаю, base + offset
выполняет работу по обращению бит, но я не мог понять, как она работает;