Hi, thanks for the great work. I was reading Sec. 3.2 and Algorithm 1, and I found a small notation ambiguity regarding the denoising step index.
In Algorithm 1, the update at denoising step (j) is written as:
$$
x_{t_{j+1}}^{(n)}
\leftarrow
x_{t_j}^{(n)}
+
v_\theta\left(
x_{t_j}^{(n)}, t_j \mid x_{t_{j+1}}^{(< n)}
\right)
\left(
\sigma_{t_{j+1}} - \sigma_{t_j}
\right).
$$
So, during the (j)-th denoising transition (t_j \rightarrow t_{j+1}), block (B_n) depends on:
$$
x_{t_j}^{(n)}
$$
from its own previous noise level, and on:
$$
x_{t_{j+1}}^{(< n)}
$$
from previous blocks after they have already completed the same denoising step.
However, in the pipelined parallelism paragraph, the paper states:
block (B_n) at step (j) depends only on (B_{<n}) at step (j) and on (B_n) at step (j-1)
This sentence seems to use “step (j)” to refer to the state after completing the (j)-th denoising update, i.e., (x_{t_{j+1}}), rather than the input noise level (x_{t_j}) used in Algorithm 1.
Equivalently, if we define:
$$
Y_j^{(n)} := x_{t_{j+1}}^{(n)},
$$
then the dependency becomes:
$$
Y_j^{(n)}
\leftarrow
\mathrm{Update}
\left(
Y_{j-1}^{(n)}
\mid
Y_j^{(< n)}
\right),
$$
which matches the pipeline description.
So I believe the algorithm and the pipeline description are consistent, but the indexing convention may be slightly confusing because Algorithm 1 uses (j) for the denoising transition (t_j \rightarrow t_{j+1}), while the pipeline paragraph seems to use “step (j)” for the state after that transition.
Would it be possible to clarify this in the text? For example, the pipeline paragraph could mention that “block (B_n) at step (j)” refers to the state after completing the (j)-th denoising update, corresponding to (x_{t_{j+1}}^{(n)}) in Algorithm 1.
Thanks!
Hi, thanks for the great work. I was reading Sec. 3.2 and Algorithm 1, and I found a small notation ambiguity regarding the denoising step index.
In Algorithm 1, the update at denoising step (j) is written as:
So, during the (j)-th denoising transition (t_j \rightarrow t_{j+1}), block (B_n) depends on:
from its own previous noise level, and on:
from previous blocks after they have already completed the same denoising step.
However, in the pipelined parallelism paragraph, the paper states:
This sentence seems to use “step (j)” to refer to the state after completing the (j)-th denoising update, i.e., (x_{t_{j+1}}), rather than the input noise level (x_{t_j}) used in Algorithm 1.
Equivalently, if we define:
then the dependency becomes:
which matches the pipeline description.
So I believe the algorithm and the pipeline description are consistent, but the indexing convention may be slightly confusing because Algorithm 1 uses (j) for the denoising transition (t_j \rightarrow t_{j+1}), while the pipeline paragraph seems to use “step (j)” for the state after that transition.
Would it be possible to clarify this in the text? For example, the pipeline paragraph could mention that “block (B_n) at step (j)” refers to the state after completing the (j)-th denoising update, corresponding to (x_{t_{j+1}}^{(n)}) in Algorithm 1.
Thanks!