Skip to content

Instantly share code, notes, and snippets.

@yoyolicoris
Last active June 30, 2025 21:08
Show Gist options
  • Save yoyolicoris/b67407ffb56fa168c59275aea548fe96 to your computer and use it in GitHub Desktop.
Save yoyolicoris/b67407ffb56fa168c59275aea548fe96 to your computer and use it in GitHub Desktop.
Notebook for Block-based Fast Differentiable IIR in PyTorch
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "170fc102",
"metadata": {},
"source": [
"# Block-based Fast Differentiable IIR in PyTorch\n",
"\n",
"I recently came across a presentation by Andres Ezequiel Viso from GPU Audio at ADC 2022, in which he talked about how they accelerate IIR filters on the GPU.\n",
"The approach they use is to formulate the IIR filter as a state-space model (SSM) and augment the transition matrix so that each step processes multiple samples at once.\n",
"The primary speedup stems from the fact that GPUs are very good at performing large matrix multiplications, and the SSM formulation enables us to leverage this capability.\n",
"\n",
"<iframe width=\"1024px\" height=\"576px\"\n",
"src=\"https://www.youtube.com/embed/UmYnoFo0Bb8?start=1356\"\n",
"allowfullscreen>\n",
"</iframe><br>\n",
"\n",
"Speeding up IIR filters while maintaining differentiability has always been my interest.\n",
"The most recent method I worked on is from my recent [submission](https://arxiv.org/abs/2504.14735) to DAFx 25, where my co-author Ben proposed using parallel associative scan to speed up the recursion on the GPU.\n",
"Nevertheless, since PyTorch does not have a built-in associative scan operator (in contrast to JAX), we must implement custom kernels for it, which is non-trivial.\n",
"It also requires that the filter has distinct poles so that the state-space transition matrix is diagonalisable.\n",
"The method that GPU Audio presented appears to be feasible solely using the PyTorch Python API and doesn't have the restrictions I mentioned; thus, I decided to benchmark it and see how it performs.\n",
"\n",
"Since it's just a proof of concept, the filter I'm going to test is a **time-invariant all-pole IIR filter**, which is the minimal case of a recursive filter.\n",
"This allows us to leverage some special optimisations that won't work with time-varying general IIR filters, but that won't affect the main idea I'm going to present here.\n"
]
},
{
"cell_type": "markdown",
"id": "b5b10fde",
"metadata": {},
"source": [
"## Naive implementation of an all-pole IIR filter\n",
"\n",
"The difference equation of an $M$-th order all-pole IIR filter is given by:\n",
"\n",
"$$\n",
"y[n] = x[n] -\\sum_{m=1}^{M} a_m y[n-m].\n",
"$$\n",
"\n",
"Let's implement this in PyTorch:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "c379420f",
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"from torch import Tensor\n",
"\n",
"\n",
"@torch.jit.script\n",
"def naive_allpole(x: Tensor, a: Tensor) -> Tensor:\n",
" \"\"\"\n",
" Naive all-pole filter implementation.\n",
"\n",
" Args:\n",
" x (Tensor): Input signal.\n",
" a (Tensor): All-pole coefficients.\n",
"\n",
" Returns:\n",
" Tensor: Filtered output signal.\n",
" \"\"\"\n",
" assert x.dim() == 2, \"Input signal must be a 2D tensor (batch_size, signal_length)\"\n",
" assert a.dim() == 1, \"All-pole coefficients must be a 1D tensor\"\n",
"\n",
" # list to store output at each time step\n",
" output = []\n",
" # assume initial condition is zero\n",
" zi = x.new_zeros(x.size(0), a.size(0))\n",
"\n",
" for xt in x.unbind(1):\n",
" # use addmv for efficient matrix-vector multiplication\n",
" yt = torch.addmv(xt, zi, a, alpha=-1.0)\n",
" output.append(yt)\n",
"\n",
" # update the state for the next time step\n",
" zi = torch.cat([yt.unsqueeze(1), zi[:, :-1]], dim=1)\n",
"\n",
" return torch.stack(output, dim=1)"
]
},
{
"cell_type": "markdown",
"id": "ca6c42ed",
"metadata": {},
"source": [
"In this implementation, I didn't use any in-place operations for speedup since it would break the differentiability of the function.\n",
"This naive implementation is not very efficient, as `torch.addmv` and `torch.cat` are called at each time step. \n",
"Typically, the audio signal is hundreds of thousands of samples long, resulting in a significant amount of function call overhead.\n",
"For details, please take a look at my [tutorial on differentiable IIR filters](https://intro2ddsp.github.io/filters/iir_torch.html) at ISMIR 2023.\n",
"\n",
"Notice that I used `torch.jit.script` to compile the function for some slight speedup.\n",
"I tried the newer compilation feature `torch.compile`, but it didn't work.\n",
"The compilation hangs forever, I don't know why...\n",
"I never found `torch.compile` to be useful in my research projects, and `torch.jit.*` has proven to be way more reliable.\n",
"\n",
"Let's benchmark its speed on my Ubuntu with an Intel i7-7700K.\n",
"We'll use a batch size of 8, a signal length of 16384, and $M=2$, which is a reasonable setting for audio processing."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d49eec12",
"metadata": {},
"outputs": [],
"source": [
"from torch.utils.benchmark import Timer\n",
"\n",
"batch_size = 8\n",
"signal_length = 16384\n",
"order = 2\n",
"\n",
"def order2a(order: int) -> Tensor:\n",
" a = torch.randn(order)\n",
" # simple way to ensure stability\n",
" a = a / a.abs().sum()\n",
" return a\n",
"\n",
"a = order2a(order)\n",
"x = torch.randn(batch_size, signal_length)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "71b56202",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<torch.utils.benchmark.utils.common.Measurement object at 0x7f5b4423b260>\n",
"naive_allpole\n",
"Naive All-Pole Filter\n",
" Median: 168.93 ms\n",
" IQR: 0.54 ms (168.57 to 169.11)\n",
" 6 measurements, 1 runs per measurement, 4 threads"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"naive_allpole_t = Timer(\n",
" stmt=\"naive_allpole(x, a)\",\n",
" globals={\"naive_allpole\": naive_allpole, \"x\": x, \"a\": a},\n",
" label=\"naive_allpole\",\n",
" description=\"Naive All-Pole Filter\",\n",
" num_threads=4,\n",
")\n",
"naive_allpole_t.blocked_autorange(min_run_time=1.0)"
]
},
{
"cell_type": "markdown",
"id": "af322a8a",
"metadata": {},
"source": [
"182.59 ms is relatively slow, but it is expected.\n",
"\n",
"## State-space model formulation\n",
"\n",
"Before we proceed to showing the sample unrolling trick, let's first introduce the state-space model (SSM) formulation of the all-pole IIR filter.\n",
"The model is similar to the one in my previous blogpost on [TDF-II filter](https://iamycy.github.io/posts/2025/04/differentiable-tdf-ii/):\n",
"\n",
"$$\n",
"\\begin{align}\n",
"\\mathbf{h}[n] &= \\begin{bmatrix}\n",
" -a_1 & -a_2 & \\cdots & -a_{M-1} & -a_M \\\\\n",
" 1 & 0 &\\cdots & 0 & 0 \\\\\n",
" 0 & 1 & \\cdots & 0 & 0 \\\\\n",
" \\vdots & \\vdots & \\ddots & \\vdots & \\vdots \\\\\n",
" 0 & 0 & \\cdots & 1 & 0 \\\\\n",
"\\end{bmatrix} \\mathbf{h}[n-1] + \\begin{bmatrix}\n",
" 1 \\\\\n",
" 0 \\\\\n",
" 0 \\\\\n",
" \\vdots \\\\\n",
" 0 \\\\\n",
"\\end{bmatrix} x[n] \\\\\n",
"&= \\mathbf{A} \\mathbf{h}[n-1] + \\mathbf{B} x[n] \\\\\n",
"\n",
"y[n] &= \\mathbf{B}^\\top \\mathbf{h}[n].\n",
"\\end{align}\n",
"$$\n",
"\n",
"Here, I simplified the original SSM by omitting the direct path, as it can be derived from the state vector (for the all-pole filter only).\n",
"Below is the PyTorch implementation of it:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "cde4d9f0",
"metadata": {},
"outputs": [],
"source": [
"@torch.jit.script\n",
"def a2companion(a: Tensor) -> Tensor:\n",
" \"\"\"\n",
" Convert all-pole coefficients to a companion matrix.\n",
"\n",
" Args:\n",
" a (Tensor): All-pole coefficients.\n",
"\n",
" Returns:\n",
" Tensor: Companion matrix.\n",
" \"\"\"\n",
" assert a.dim() == 1, \"All-pole coefficients must be a 1D tensor\"\n",
" order = a.size(0)\n",
" c = torch.diag(a.new_ones(order - 1), -1)\n",
" c[0, :] = -a\n",
" return c\n",
"\n",
"\n",
"@torch.jit.script\n",
"def state_space_allpole(x: Tensor, a: Tensor) -> Tensor:\n",
" \"\"\"\n",
" State-space implementation of all-pole filtering.\n",
"\n",
" Args:\n",
" x (Tensor): Input signal.\n",
" a (Tensor): All-pole coefficients.\n",
"\n",
" Returns:\n",
" Tensor: Filtered output signal.\n",
" \"\"\"\n",
" assert x.dim() == 2, \"Input signal must be a 2D tensor (batch_size, signal_length)\"\n",
" assert a.dim() == 1, \"All-pole coefficients must be a 1D tensor\"\n",
"\n",
" c = a2companion(a).T\n",
"\n",
" output = []\n",
" # assume initial condition is zero\n",
" h = x.new_zeros(x.size(0), c.size(0))\n",
"\n",
" # B * x\n",
" x = torch.cat(\n",
" [x.unsqueeze(-1), x.new_zeros(x.size(0), x.size(1), c.size(0) - 1)], dim=2\n",
" )\n",
"\n",
" for xt in x.unbind(1):\n",
" h = torch.addmm(xt, h, c)\n",
" # B^T @ h\n",
" output.append(h[:, 0])\n",
" return torch.stack(output, dim=1)"
]
},
{
"cell_type": "markdown",
"id": "04e71034",
"metadata": {},
"source": [
"`a2companion` converts the all-pole coefficients to a [companion matrix](https://en.wikipedia.org/wiki/Companion_matrix), which is $\\mathbf{A}$ in the SSM formulation.\n",
"\n",
"Before we benchmark the speed of this implementation, let's predict how fast it will be.\n",
"Intuitively, since the complexity of vector-dot product is $O(M)$ and matrix-vector multiplication is $O(M^2)$, the SSM implementation uses more computational resources, so it should be slower than the naive implementation.\n",
"Let's benchmark its speed:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1e24c12e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<torch.utils.benchmark.utils.common.Measurement object at 0x7f5a02eaf4a0>\n",
"state_space_allpole\n",
"State-Space All-Pole Filter\n",
" Median: 118.41 ms\n",
" IQR: 1.17 ms (117.79 to 118.96)\n",
" 9 measurements, 1 runs per measurement, 4 threads"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"state_space_allpole_t = Timer(\n",
" stmt=\"state_space_allpole(x, a)\",\n",
" globals={\"state_space_allpole\": state_space_allpole, \"x\": x, \"a\": a},\n",
" label=\"state_space_allpole\",\n",
" description=\"State-Space All-Pole Filter\",\n",
" num_threads=4,\n",
")\n",
"state_space_allpole_t.blocked_autorange(min_run_time=1.0)"
]
},
{
"cell_type": "markdown",
"id": "48ea53a8",
"metadata": {},
"source": [
"Interestingly, the SSM implementation is approximately 50 ms faster."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9d529e45",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:2025-06-28 23:59:13 247710:247710 init.cpp:107] function cbapi->getCuptiStatus() failed with error CUPTI_ERROR_INVALID_DEVICE (2)\n",
"WARNING:2025-06-28 23:59:13 247710:247710 init.cpp:108] CUPTI initialization failed - CUDA profiler activities will be missing\n",
"INFO:2025-06-28 23:59:13 247710:247710 init.cpp:110] If you see CUPTI_ERROR_INSUFFICIENT_PRIVILEGES, refer to https://developer.nvidia.com/nvidia-development-tools-solutions-err-nvgpuctrperm-cupti\n"
]
}
],
"source": [
"from torch.profiler import profile, ProfilerActivity\n",
"\n",
"with profile(\n",
" activities=[ProfilerActivity.CPU],\n",
" profile_memory=True,\n",
" record_shapes=True,\n",
" # with_flops=True\n",
") as naive_prof:\n",
" naive_allpole(x, a)\n",
"\n",
"with profile(\n",
" activities=[ProfilerActivity.CPU],\n",
" profile_memory=True,\n",
" # record_shapes=True,\n",
" # with_flops=True\n",
") as state_space_prof:\n",
" state_space_allpole(x, a)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "6285468a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ -------------------------------------------- \n",
" Name Self CPU % Self CPU CPU total % CPU total CPU time avg CPU Mem Self CPU Mem # of Calls Input Shapes \n",
"-------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ -------------------------------------------- \n",
" naive_allpole 16.56% 79.351ms 100.00% 479.094ms 479.094ms 512.00 Kb -175.50 Kb 1 [[8, 16384], [2]] \n",
" aten::cat 19.26% 92.271ms 36.35% 174.143ms 10.629us 175.44 Kb 175.44 Kb 16384 [[], [], [], []] \n",
" aten::narrow 6.17% 29.578ms 17.09% 81.872ms 2.499us 0 b 0 b 32768 [[8, 2], [], [], []] \n",
" aten::slice 12.73% 60.993ms 15.56% 74.563ms 2.275us 0 b 0 b 32768 [[], [], [8, 1], [8, 2], [], [], [], []] \n",
" aten::slice 8.24% 39.476ms 10.92% 52.294ms 1.596us 0 b 0 b 32768 [[8, 2], [], [], [], []] \n",
" aten::addmv 9.52% 45.632ms 9.52% 45.632ms 2.785us 512.00 Kb 512.00 Kb 16384 [[], [], [8], [8, 2], [2], [], []] \n",
" aten::stack 4.34% 20.770ms 9.21% 44.138ms 44.138ms 0 b -512.00 Kb 1 [[], []] \n",
" aten::unsqueeze 5.89% 28.220ms 7.30% 34.989ms 2.136us 0 b 0 b 16384 [[], [], [8], []] \n",
" aten::as_strided 5.51% 26.388ms 5.51% 26.388ms 0.403us 0 b 0 b 65536 [[8, 2], [], [], []] \n",
" aten::unbind 1.78% 8.525ms 5.48% 26.238ms 26.238ms 0 b 0 b 1 [[8, 16384], []] \n",
" aten::unsqueeze 3.02% 14.462ms 3.97% 19.041ms 1.162us 0 b 0 b 16384 [[8], []] \n",
" aten::select 2.90% 13.905ms 3.70% 17.713ms 1.081us 0 b 0 b 16384 [[8, 16384], [], []] \n",
" aten::as_strided 2.37% 11.349ms 2.37% 11.349ms 0.346us 0 b 0 b 32768 [[8], [], [], []] \n",
" aten::cat 0.90% 4.312ms 0.90% 4.327ms 4.327ms 512.00 Kb 512.00 Kb 1 [[], []] \n",
" aten::as_strided 0.80% 3.810ms 0.80% 3.810ms 0.233us 0 b 0 b 16385 [[8, 16384], [], [], []] \n",
" aten::new_zeros 0.00% 20.973us 0.01% 39.671us 39.671us 64 b 0 b 1 [[8, 16384], [], [], [], [], []] \n",
" aten::new_empty 0.00% 6.574us 0.00% 17.806us 17.806us 64 b 0 b 1 [[8, 16384], [], [], [], [], []] \n",
" aten::narrow 0.00% 5.425us 0.00% 14.761us 14.761us 0 b 0 b 1 [[8, 16384], [], [], []] \n",
" aten::empty 0.00% 11.232us 0.00% 11.232us 11.232us 64 b 64 b 1 [[], [], [], [], [], []] \n",
" aten::slice 0.00% 6.981us 0.00% 9.336us 9.336us 0 b 0 b 1 [[8, 16384], [], [], [], []] \n",
"-------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ -------------------------------------------- \n",
"Self CPU time total: 479.094ms\n",
"\n"
]
}
],
"source": [
"print(\n",
" naive_prof.key_averages(group_by_input_shape=True).table(\n",
" sort_by=\"cpu_time_total\", row_limit=20\n",
" )\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "0711f5ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"----------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ \n",
" Name Self CPU % Self CPU CPU total % CPU total CPU time avg CPU Mem Self CPU Mem # of Calls \n",
"----------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ \n",
" state_space_allpole 13.88% 31.898ms 100.00% 229.844ms 229.844ms 512.00 Kb -1.19 Mb 1 \n",
" aten::mm 19.88% 45.686ms 20.74% 47.671ms 2.910us 1023.94 Kb 1023.94 Kb 16384 \n",
" aten::select 15.34% 35.262ms 20.52% 47.156ms 1.439us 0 b 0 b 32769 \n",
" aten::add 17.37% 39.914ms 17.37% 39.914ms 2.436us 189.94 Kb 189.94 Kb 16384 \n",
" aten::stack 7.75% 17.812ms 13.18% 30.287ms 30.287ms -512.00 Kb -1.00 Mb 1 \n",
" aten::unbind 4.60% 10.564ms 11.41% 26.230ms 26.230ms 0 b 0 b 1 \n",
" aten::slice 7.37% 16.945ms 9.59% 22.031ms 1.344us 0 b 0 b 16387 \n",
" aten::as_strided 9.11% 20.930ms 9.11% 20.930ms 0.319us 0 b 0 b 65543 \n",
" aten::unsqueeze 2.35% 5.400ms 4.07% 9.345ms 0.570us 0 b 0 b 16385 \n",
" aten::cat 1.43% 3.286ms 1.44% 3.302ms 1.651ms 1.00 Mb 1.00 Mb 2 \n",
" aten::resolve_conj 0.86% 1.985ms 0.86% 1.985ms 0.061us 0 b 0 b 32768 \n",
" aten::new_zeros 0.00% 3.646us 0.04% 82.891us 41.445us 512.06 Kb 0 b 2 \n",
" aten::zero_ 0.00% 1.303us 0.03% 76.858us 25.619us 0 b 0 b 3 \n",
" aten::fill_ 0.03% 76.828us 0.03% 76.828us 38.414us 0 b 0 b 2 \n",
" aten::diag 0.00% 3.150us 0.02% 39.884us 39.884us 12 b -4 b 1 \n",
" aten::diag_embed 0.01% 15.298us 0.02% 36.734us 36.734us 16 b 0 b 1 \n",
" aten::new_ones 0.00% 6.760us 0.01% 20.771us 20.771us 4 b 0 b 1 \n",
" aten::narrow 0.00% 9.106us 0.01% 16.032us 8.016us 0 b 0 b 2 \n",
" aten::new_empty 0.00% 4.355us 0.01% 15.543us 5.181us 512.07 Kb 0 b 3 \n",
" aten::copy_ 0.01% 14.018us 0.01% 14.018us 7.009us -8 b -8 b 2 \n",
"----------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ \n",
"Self CPU time total: 229.844ms\n",
"\n"
]
}
],
"source": [
"print(state_space_prof.key_averages().table(sort_by=\"cpu_time_total\", row_limit=20))"
]
},
{
"cell_type": "markdown",
"id": "2586986e",
"metadata": {},
"source": [
"By using `torch.profiler.profile`, I found that, in the naive implementation, `torch.cat` for updating the last M outputs accounts for a significant portion of the total time (~20%).\n",
"The actual computation, `torch.addmv`, takes only about 10% of the time.\n",
"Regarding memory usage, the most memory-intensive operation is `torch.addmv`, which consumes approximately 512 Kb of memory.\n",
"In contrast, the SSM implementation uses more memory (> 1 Mb) due to matrix multiplication, but roughly 38% of the time is spent on filtering since it no longer has to call `torch.cat` at each time step.\n",
"The state vector (a.k.a the last M outputs) is automatically updated during the matrix multiplication.\n",
"\n",
"**Conclusion**: Tensor concatenation (including `torch.cat` and `torch.stack`) is computationally expensive, and it is advisable to avoid it whenever possible.\n",
"\n",
"## Unrolling the SSM\n",
"\n",
"Now we can apply the unrolling trick to the SSM implementation.\n",
"The idea is to divide the input signal into blocks of size $T$ and perform the recursion on these blocks instead of processing them sample-by-sample.\n",
"Each recursion takes the last vector state $\\mathbf{h}[n-1]$ and predicts the next $T$ states $[\\mathbf{h}[n], \\mathbf{h}[n+1], \\ldots, \\mathbf{h}[n+T-1]]^\\top$ at once.\n",
"To see how to calculate these states, let's unroll the SSM recursion for $T$ steps:\n",
"\n",
"$$\n",
"\\begin{align}\n",
"\\mathbf{h}[n] &= \\mathbf{A} \\mathbf{h}[n-1] + \\mathbf{B} x[n] \\\\\n",
"\\mathbf{h}[n+1] &= \\mathbf{A} \\mathbf{h}[n] + \\mathbf{B} x[n+1] \\\\\n",
"&= \\mathbf{A} (\\mathbf{A} \\mathbf{h}[n-1] + \\mathbf{B} x[n]) + \\mathbf{B} x[n+1] \\\\\n",
"&= \\mathbf{A}^2 \\mathbf{h}[n-1] + \\mathbf{A} \\mathbf{B} x[n] + \\mathbf{B} x[n+1] \\\\\n",
"\\mathbf{h}[n+2] &= \\mathbf{A} \\mathbf{h}[n+1] + \\mathbf{B} x[n+2] \\\\\n",
"&= \\mathbf{A} (\\mathbf{A}^2 \\mathbf{h}[n-1] + \\mathbf{A} \\mathbf{B} x[n] + \\mathbf{B} x[n+1]) + \\mathbf{B} x[n+2] \\\\\n",
"&= \\mathbf{A}^3 \\mathbf{h}[n-1] + \\mathbf{A}^2 \\mathbf{B} x[n] + \\mathbf{A} \\mathbf{B} x[n+1] + \\mathbf{B} x[n] \\\\\n",
"& \\vdots \\\\\n",
"\\mathbf{h}[n+T-1] &= \\mathbf{A}^{T} \\mathbf{h}[n-1] + \\sum_{t=0}^{T-1} \\mathbf{A}^{T - t -1} \\mathbf{B} x[n+t] \\\\\n",
"\\end{align}\n",
"$$\n",
"\n",
"We can rewrite the above equation in matrix form as follows:\n",
"\n",
"$$\n",
"\\begin{align}\n",
"\\begin{bmatrix}\n",
" \\mathbf{h}[n] \\\\\n",
" \\mathbf{h}[n+1] \\\\\n",
" \\vdots \\\\\n",
" \\mathbf{h}[n+T-1]\n",
"\\end{bmatrix} &= \\begin{bmatrix}\n",
" \\mathbf{A} \\\\\n",
" \\mathbf{A}^2 \\\\\n",
" \\vdots \\\\\n",
" \\mathbf{A}^T \\\\\n",
"\\end{bmatrix} \\mathbf{h}[n-1]\n",
"+ \\begin{bmatrix}\n",
" \\mathbf{I} & 0 & \\cdots & 0 \\\\\n",
" \\mathbf{A} & \\mathbf{I} & \\cdots & 0 \\\\\n",
" \\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
" \\mathbf{A}^{T-1} & \\mathbf{A}^{T-2} & \\cdots & \\mathbf{I}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" \\mathbf{B}x[n] \\\\\n",
" \\mathbf{B}x[n+1] \\\\\n",
" \\vdots \\\\\n",
" \\mathbf{B}x[n+T-1]\n",
"\\end{bmatrix} \\\\\n",
"& = \\begin{bmatrix}\n",
" \\mathbf{A} \\\\\n",
" \\mathbf{A}^2 \\\\\n",
" \\vdots \\\\\n",
" \\mathbf{A}^T \\\\\n",
"\\end{bmatrix} \\mathbf{h}[n-1]\n",
"+ \\begin{bmatrix}\n",
" \\mathbf{I}_{.1} & 0 & \\cdots & 0 \\\\\n",
" \\mathbf{A}_{.1} & \\mathbf{I}_{.1} & \\cdots & 0 \\\\\n",
" \\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
" \\mathbf{A}_{.1}^{T-1} & \\mathbf{A}_{.1}^{T-2} & \\cdots & \\mathbf{I}_{.1}\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" x[n] \\\\\n",
" x[n+1] \\\\\n",
" \\vdots \\\\\n",
" x[n+T-1]\n",
"\\end{bmatrix} \\\\\n",
"& = \\mathbf{M} \\mathbf{h}[n-1] + \\mathbf{V} \\begin{bmatrix}\n",
" x[n] \\\\\n",
" x[n+1] \\\\\n",
" \\vdots \\\\\n",
" x[n+T-1]\n",
"\\end{bmatrix} \\\\\n",
"\\end{align}\n",
"$$\n",
"\n",
"Notice that in the second line, I utilised the fact that $\\mathbf{B}$ has only one non-zero entry to simplify the matrix.\n",
"(This is not possible if the filter is not strictly all-pole.)\n",
"$\\mathbf{I}_{.1}$ denotes the first column of the identity matrix and so on.\n",
"\n",
"Now, the number of autoregressive steps is reduced from $T$ to $\\frac{N}{T}$ and the matrix multiplication is done in parallel for every $T$ samples.\n",
"There are added costs for pre-computing the transition matrix $\\mathbf{M}$ and the input matrix $\\mathbf{V}$, though.\n",
"However, as long as the extra cost is relatively small compared to the cost of $T$ autoregressive steps, we should observe a speedup.\n",
"\n",
"Here's the PyTorch implementation of the unrolled SSM:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1669e150",
"metadata": {},
"outputs": [],
"source": [
"@torch.jit.script\n",
"def state_space_allpole_unrolled(\n",
" x: Tensor, a: Tensor, unroll_factor: int = 1\n",
") -> Tensor:\n",
" \"\"\"\n",
" Unrolled state-space implementation of all-pole filtering.\n",
"\n",
" Args:\n",
" x (Tensor): Input signal.\n",
" a (Tensor): All-pole coefficients.\n",
" unroll_factor (int): Factor by which to unroll the loop.\n",
"\n",
" Returns:\n",
" Tensor: Filtered output signal.\n",
" \"\"\"\n",
" if unroll_factor == 1:\n",
" return state_space_allpole(x, a)\n",
" elif unroll_factor < 1:\n",
" raise ValueError(\"Unroll factor must be >= 1\")\n",
"\n",
" assert x.dim() == 2, \"Input signal must be a 2D tensor (batch_size, signal_length)\"\n",
" assert a.dim() == 1, \"All-pole coefficients must be a 1D tensor\"\n",
" assert (\n",
" x.size(1) % unroll_factor == 0\n",
" ), \"Signal length must be divisible by unroll factor\"\n",
"\n",
" c = a2companion(a)\n",
"\n",
" # create an initial identity matrix\n",
" initial = torch.eye(c.size(0), device=c.device, dtype=c.dtype)\n",
" c_list = [initial]\n",
" # TODO: use parallel scan to improve speed\n",
" for _ in range(unroll_factor):\n",
" c_list.append(c_list[-1] @ c)\n",
"\n",
" # c_list = [I c c^2 ... c^unroll_factor]\n",
" M = torch.cat(c_list[1:], dim=0).T\n",
" flatten_c_list = torch.cat(\n",
" [c.new_zeros(c.size(0) * (unroll_factor - 1))]\n",
" + [xx[:, 0] for xx in c_list[:-1]],\n",
" dim=0,\n",
" )\n",
" V = flatten_c_list.unfold(0, c.size(0) * unroll_factor, c.size(0)).flip(0)\n",
"\n",
" # divide the input signal into blocks of size unroll_factor\n",
" unrolled_x = x.unflatten(1, (-1, unroll_factor)) @ V\n",
"\n",
" output = []\n",
" # assume initial condition is zero\n",
" h = x.new_zeros(x.size(0), c.size(0))\n",
" for xt in unrolled_x.unbind(1):\n",
" h = torch.addmm(xt, h, M)\n",
" # B^T @ h\n",
" output.append(h[:, :: c.size(0)])\n",
" h = h[\n",
" :, -c.size(0) :\n",
" ] # take the last state vector as the initial condition for the next step\n",
" return torch.cat(output, dim=1)"
]
},
{
"cell_type": "markdown",
"id": "dfa4cd9f",
"metadata": {},
"source": [
"The `unroll_factor` parameter controls the number of samples to process in parallel.\n",
"If it is set to 1, the function is the original SSM implementation.\n",
"\n",
"Let's first make sure that the unrolled SSM implementation is equivalent to the original one."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "637a2c76",
"metadata": {},
"outputs": [],
"source": [
"y1 = naive_allpole(x, a)\n",
"y2 = state_space_allpole_unrolled(x, a, unroll_factor=8)\n",
"assert torch.allclose(y1, y2, atol=5e-6), \"Outputs are not close enough\"\n",
"# print(y2[0, -10:] - y1[0, -10:])"
]
},
{
"cell_type": "markdown",
"id": "db1f3402",
"metadata": {},
"source": [
"Now let's benchmark the speed of the unrolled SSM implementation.\n",
"We'll use `unroll_factor=128` since I already tested that it is the optimal value :)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "d63b82d7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<torch.utils.benchmark.utils.common.Measurement object at 0x7f5a01d75160>\n",
"state_space_allpole_unrolled\n",
"State-Space All-Pole Filter Unrolled\n",
" Median: 1.89 ms\n",
" IQR: 0.08 ms (1.88 to 1.96)\n",
" 6 measurements, 100 runs per measurement, 4 threads"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"state_space_allpole_unrolled_t = Timer(\n",
" stmt=\"state_space_allpole_unrolled(x, a, unroll_factor=unroll_factor)\",\n",
" globals={\n",
" \"state_space_allpole_unrolled\": state_space_allpole_unrolled,\n",
" \"x\": x,\n",
" \"a\": a,\n",
" \"unroll_factor\": 128,\n",
" },\n",
" label=\"state_space_allpole_unrolled\",\n",
" description=\"State-Space All-Pole Filter Unrolled\",\n",
" num_threads=4,\n",
")\n",
"state_space_allpole_unrolled_t.blocked_autorange(min_run_time=1.0)"
]
},
{
"cell_type": "markdown",
"id": "b0ee10d8",
"metadata": {},
"source": [
"1.91 ms! What sorcery is this? That's a whopping 70x speedup compared to the standard SSM implementation!"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "3b519301",
"metadata": {},
"outputs": [],
"source": [
"with profile(\n",
" activities=[ProfilerActivity.CPU], \n",
" profile_memory=True,\n",
" # record_shapes=True,\n",
" # with_flops=True\n",
") as unrolled_prof:\n",
" state_space_allpole_unrolled(x, a, unroll_factor=128)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "9fa4d5de",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-------------------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ \n",
" Name Self CPU % Self CPU CPU total % CPU total CPU time avg CPU Mem Self CPU Mem # of Calls \n",
"-------------------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ \n",
" state_space_allpole_unrolled 16.38% 840.515us 100.00% 5.133ms 5.133ms 512.00 Kb -1.08 Mb 1 \n",
" aten::mm 25.38% 1.303ms 26.33% 1.351ms 5.258us 2.00 Mb 2.00 Mb 257 \n",
" aten::slice 16.89% 867.017us 22.32% 1.145ms 1.781us 0 b 0 b 643 \n",
" aten::matmul 1.82% 93.325us 17.67% 906.709us 7.029us 898.00 Kb -128.00 Kb 129 \n",
" aten::cat 8.45% 433.905us 13.68% 702.018us 234.006us -511.00 Kb -511.00 Kb 3 \n",
" aten::add 8.78% 450.775us 8.78% 450.775us 3.522us 80.00 Kb 80.00 Kb 128 \n",
" aten::select 6.62% 339.652us 8.57% 439.668us 1.711us 0 b 0 b 257 \n",
" aten::as_strided 7.47% 383.528us 7.47% 383.528us 0.424us 0 b 0 b 904 \n",
" aten::narrow 2.01% 103.309us 5.22% 268.113us 2.062us 0 b 0 b 130 \n",
" aten::unbind 1.68% 86.022us 4.96% 254.820us 254.820us 0 b 0 b 1 \n",
" aten::resolve_conj 0.95% 48.722us 0.95% 48.722us 0.076us 0 b 0 b 643 \n",
" aten::flip 0.52% 26.760us 0.87% 44.541us 44.541us 126.01 Kb -1.99 Kb 1 \n",
" aten::eye 0.52% 26.449us 0.85% 43.830us 21.915us 32 b 0 b 2 \n",
" aten::diag 0.07% 3.375us 0.73% 37.458us 37.458us 12 b -4 b 1 \n",
" aten::diag_embed 0.18% 9.223us 0.66% 34.083us 34.083us 16 b 0 b 1 \n",
" aten::new_ones 0.17% 8.569us 0.49% 25.367us 25.367us 4 b 0 b 1 \n",
" aten::new_empty 0.12% 6.200us 0.41% 20.969us 6.990us 1.06 Kb 0 b 3 \n",
" aten::empty_like 0.07% 3.456us 0.34% 17.331us 17.331us 128.00 Kb 0 b 1 \n",
" aten::empty 0.33% 16.792us 0.33% 16.792us 3.358us 1.07 Kb 1.07 Kb 5 \n",
" aten::copy_ 0.32% 16.361us 0.32% 16.361us 8.180us -8 b -8 b 2 \n",
"-------------------------------- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ \n",
"Self CPU time total: 5.133ms\n",
"\n"
]
}
],
"source": [
"print(\n",
" unrolled_prof.key_averages().table(sort_by=\"cpu_time_total\", row_limit=20)\n",
")"
]
},
{
"cell_type": "markdown",
"id": "27d9d59c",
"metadata": {},
"source": [
"A closer look at the profiling results shows that in total, 38% of the time is spent on matrix multiplication and addition.\n",
"The speedup comes with a cost of increased memory usage, requiring more than 2 MB for filtering.\n",
"Not a significant cost for modern Hardwares.\n",
"\n",
"For convenience, I ran the above benchmarks using the CPU, which has very limited parallelism compared to the GPU.\n",
"Thus, the significant speedup we observe indicates that function call overhead is the major bottleneck for running recursions.\n",
"\n",
"\n",
"## More comparison\n",
"\n",
"Since $T$ is an essential parameter for the unrolled SSM, I did some benchmarks to see how it affects the speed.\n",
"\n",
"### Varying sequence length\n",
"\n",
"In this benchmark, I fixed the batch size to 8 and the order to 2, and varied the sequence length from 4096 to 262144.\n",
"The results suggest that the best unroll factor increases as the sequence length increases, and it's very likely to be $\\sqrt{N}$.\n",
"Additionally, the longer the sequence length, the greater the speedup we achieve from the unrolled SSM."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "84311402",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"from torch.utils.benchmark import Compare\n",
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "5d5d38a1",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:07<00:00, 1.24s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.47s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.36s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:11<00:00, 1.84s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[--------------------- State-Space All-Pole Unrolled ----------------------]\n",
" | 4096 | 16384 | 65536 | 262144 \n",
"4 threads: -----------------------------------------------------------------\n",
" unroll factor: 1 | 27191.0 | 118571.2 | 513106.7 | 2159240.8\n",
" unroll factor: 32 | 1201.2 | 4142.5 | 16838.3 | 69831.7\n",
" unroll factor: 64 | 889.3 | 2456.3 | 9469.4 | 38095.0\n",
" unroll factor: 128 | 954.5 | 1896.8 | 6388.2 | 24019.4\n",
" unroll factor: 256 | 1418.1 | 2108.4 | 5675.1 | 18562.1\n",
" unroll factor: 512 | 2571.3 | 3314.9 | 6876.7 | 20691.5\n",
"\n",
"Times are in microseconds (us).\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"factors = [1, 32, 64, 128, 256, 512]\n",
"signal_lengths = [4096, 16384, 65536, 262144]\n",
"order = 2\n",
"a = order2a(order)\n",
"\n",
"results = []\n",
"\n",
"label = \"State-Space All-Pole Unrolled\"\n",
"for signal_length in signal_lengths:\n",
" x = torch.randn(batch_size, signal_length)\n",
" for unroll_factor in tqdm(factors):\n",
" sub_label = f\"unroll factor: {unroll_factor}\"\n",
" results.append(\n",
" Timer(\n",
" stmt=\"state_space_allpole_unrolled(x, a, unroll_factor=unroll_factor)\",\n",
" globals={\n",
" \"state_space_allpole_unrolled\": state_space_allpole_unrolled,\n",
" \"x\": x,\n",
" \"a\": a,\n",
" \"unroll_factor\": unroll_factor,\n",
" },\n",
" num_threads=4,\n",
" label=label,\n",
" sub_label=sub_label,\n",
" description=f\"{signal_length}\",\n",
" ).blocked_autorange(min_run_time=1)\n",
" )\n",
"\n",
"compare = Compare(results)\n",
"compare.print()\n",
"\n",
"naive_result = [x.median for x in results]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "f6f35b44",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"for i, signal_length in enumerate(signal_lengths):\n",
" baseline, *rest = naive_result[i * len(factors) : (i + 1) * len(factors)]\n",
" normalise = [baseline / x for x in rest]\n",
" ax.plot(\n",
" factors[1:],\n",
" normalise,\n",
" marker=\"o\",\n",
" label=f\"N={signal_length}\",\n",
" )\n",
"\n",
"ax.set_title(f\"M={order}, batch size={batch_size}\")\n",
"ax.set_yscale(\"log\")\n",
"ax.set_xscale(\"log\")\n",
"ax.set_xticks(factors[1:])\n",
"ax.get_xaxis().set_major_formatter(plt.ScalarFormatter())\n",
"ax.legend()\n",
"ax.set_xlabel(\"Unroll Factor\")\n",
"ax.set_ylabel(\"Speedup (vs standard SSM)\")\n",
"ax.grid()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "0c431b72",
"metadata": {},
"source": [
"### Varying filter order\n",
"\n",
"To examine the impact of filter order on speed, I set the batch size to 8 and the sequence length to 16384, and then varied the filter order from 2 to 16.\n",
"It appears that my hypothesis that the best factor is $\\sqrt{N}$ still holds, but the peak gradually shifts to the left as the order increases.\n",
"Moreover, the speedup is less significant for higher orders, which is expected as the $\\mathbf{V}$ matrix becomes larger."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "09ee2e5b",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/6 [00:00<?, ?it/s]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.42s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.37s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.47s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:07<00:00, 1.31s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[--------------- State-Space All-Pole Unrolled ----------------]\n",
" | 2 | 4 | 8 | 16 \n",
"4 threads: -----------------------------------------------------\n",
" unroll factor: 1 | 120.3 | 118.3 | 120.3 | 126.9\n",
" unroll factor: 32 | 4.0 | 4.4 | 5.5 | 7.5\n",
" unroll factor: 64 | 2.4 | 2.8 | 3.7 | 5.6\n",
" unroll factor: 128 | 1.9 | 2.2 | 3.2 | 5.2\n",
" unroll factor: 256 | 2.1 | 2.6 | 3.8 | 6.2\n",
" unroll factor: 512 | 35.3 | 4.4 | 6.4 | 10.1\n",
"\n",
"Times are in milliseconds (ms).\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"factors = [1, 32, 64, 128, 256, 512]\n",
"signal_length = 16384\n",
"orders = [2, 4, 8, 16]\n",
"batch_size = 8\n",
"\n",
"x = torch.randn(batch_size, signal_length)\n",
"results = []\n",
"\n",
"label = \"State-Space All-Pole Unrolled\"\n",
"for order in orders:\n",
" a = order2a(order)\n",
" for unroll_factor in tqdm(factors):\n",
" sub_label = f\"unroll factor: {unroll_factor}\"\n",
" results.append(\n",
" Timer(\n",
" stmt=\"state_space_allpole_unrolled(x, a, unroll_factor=unroll_factor)\",\n",
" globals={\n",
" \"state_space_allpole_unrolled\": state_space_allpole_unrolled,\n",
" \"x\": x,\n",
" \"a\": a,\n",
" \"unroll_factor\": unroll_factor,\n",
" },\n",
" num_threads=4,\n",
" label=label,\n",
" sub_label=sub_label,\n",
" description=f\"{order}\",\n",
" ).blocked_autorange(min_run_time=1)\n",
" )\n",
"\n",
"compare = Compare(results)\n",
"compare.print()\n",
"\n",
"factor_vs_order = [x.median for x in results]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "81260990",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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GhrKhx9+yMaNG9m8eTPXX399kzaLNFbNqODFFEW57OPefPNNjh49yjPPPMOFCxd4/PHH6d27d72SMxerqKhg1qxZWFtb891332FhUTv5U/P6/vKXv7B58+YGb2FhYQDo9fpGfQ1mZGSYvF/vvvsuAwcOJCAgwCSuW265hdLSUg4dOnTZ+IXoaGT6VYgO7tlnn+WLL7645GL5GTNmsGPHjite5/777+eTTz5p8vNHRESwefNmUlNT6d69u/F4WloagHHn5+WUlZWZJJWZmZno9fp659Vs+KiqqgLg3Llz5OXlGctd1PXqq6/y6quvcujQIQYMGNCk11QTf0lJicli/DNnzgC1O3ZXrVpF165dWbNmjcl06QsvvGByrUtt3ujatSsAx48fb3J8TdW3b1/69u3Ls88+y549e7juuutYtmwZf/vb3y75mMcff5zDhw+zc+fOekl7TeyWlpZMmDDhss+dnJxMSEhIo+Lctm2bcdNMZmZmgyVLLv46EKKzkKROiA4uNDSUe+65h/fff5/g4GCT0RRo/jV1t912G6+//joffvgh119/vfH4ihUrsLCwMP6CLikpQaPR1FvTtXr1avLy8kxG5bp168amTZvYvn27ya7Yr7/+GsBYo+7xxx9n+vTpJtfLysrioYceYvbs2UybNq3RycTFqqqqeP/991m4cCGAcY2gp6cnERERQO3ImaIoxsRt37597N2712SNXM1rrlu2BdSEd/To0Xz00UcsXLjQ5DF1r3ktCgsLsbOzM/m66Nu3L1qtlvLy8ks+7uOPP+b9999nxYoVREZG1rvfy8uLsWPH8v777/PYY4/VW9OZnZ1tTOivdk1dzdfBmTNn6Natm/H4119/jVarNe4gFqKzkKROiE5gyZIlfP755/zxxx/1Rq1qEpCm2rlzJzt37gTUX9AlJSXGUZ3Ro0czevRoQE2wHnzwQT766COqqqoYM2YM27dvZ+XKlSbFkWNjY5kwYQK33347PXr0QKvVcvDgQb744gu6dOnCE088YXzuRx99lI8//pibb76Zxx57jODgYHbs2MHXX3/NDTfcwNChQwEYNGgQgwYNMom7poZa79696yV8NSNsdeusXYqfnx9vvPEGiYmJdOvWjW+//ZbDhw/zwQcfGEtu3HTTTaxZs4aoqChuvPFGEhISWLZsGb169TLZ/GFra0uvXr349ttv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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"for i, order in enumerate(orders):\n",
" baseline, *rest = factor_vs_order[i * len(factors) : (i + 1) * len(factors)]\n",
" normalise = [baseline / x for x in rest]\n",
" ax.plot(\n",
" factors[1:],\n",
" normalise,\n",
" marker=\"o\",\n",
" label=f\"M={order}\",\n",
" )\n",
"ax.set_title(f\"N={signal_length}, batch size={batch_size}\")\n",
"ax.set_yscale(\"log\")\n",
"ax.set_xscale(\"log\")\n",
"ax.set_xticks(factors[1:])\n",
"ax.get_xaxis().set_major_formatter(plt.ScalarFormatter())\n",
"ax.legend()\n",
"ax.set_xlabel(\"Unroll Factor\")\n",
"ax.set_ylabel(\"Speedup (vs standard SSM)\")\n",
"ax.grid()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "bee81bfb",
"metadata": {},
"source": [
"### Varying batch size\n",
"\n",
"The speedup is less as the batch size increases, which is expected.\n",
"However, the peak of the best unroll factor also shifts slightly to the left as the batch size increases."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "8453522b",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/6 [00:00<?, ?it/s]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.33s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.47s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.46s/it]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:08<00:00, 1.47s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[--------------- State-Space All-Pole Unrolled ----------------]\n",
" | 2 | 8 | 32 | 64 \n",
"4 threads: -----------------------------------------------------\n",
" unroll factor: 1 | 116.7 | 118.7 | 128.3 | 139.1\n",
" unroll factor: 32 | 3.9 | 4.4 | 7.0 | 9.9\n",
" unroll factor: 64 | 2.3 | 2.8 | 5.1 | 8.2\n",
" unroll factor: 128 | 1.7 | 2.2 | 5.0 | 8.0\n",
" unroll factor: 256 | 1.9 | 2.6 | 6.1 | 9.9\n",
" unroll factor: 512 | 8.1 | 39.9 | 150.2 | 294.8\n",
"\n",
"Times are in milliseconds (ms).\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"factors = [1, 32, 64, 128, 256, 512]\n",
"signal_length = 16384\n",
"batch_sizes = [2, 8, 32, 64]\n",
"order = 4\n",
"results = []\n",
"a = order2a(order)\n",
"\n",
"label = \"State-Space All-Pole Unrolled\"\n",
"for batch_size in batch_sizes:\n",
" x = torch.randn(batch_size, signal_length)\n",
" for unroll_factor in tqdm(factors):\n",
" sub_label = f\"unroll factor: {unroll_factor}\"\n",
" results.append(\n",
" Timer(\n",
" stmt=\"state_space_allpole_unrolled(x, a, unroll_factor=unroll_factor)\",\n",
" globals={\n",
" \"state_space_allpole_unrolled\": state_space_allpole_unrolled,\n",
" \"x\": x,\n",
" \"a\": a,\n",
" \"unroll_factor\": unroll_factor,\n",
" },\n",
" num_threads=4,\n",
" label=label,\n",
" sub_label=sub_label,\n",
" description=f\"{batch_size}\",\n",
" ).blocked_autorange(min_run_time=1)\n",
" )\n",
"\n",
"compare = Compare(results)\n",
"compare.print()\n",
"\n",
"factor_vs_batch_size = [x.median for x in results]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "dded0ac0",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHWCAYAAAARl3+JAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAwKNJREFUeJzs3Xd4k+XXwPHvk6R7l25oS6GssrcMEWQqstwiIgoIWkBA3APUn4qvyC5DFBEQUcQBqIgoArL3KpuyW7o3XUneP9KWlrbQtEnTcT7XlatJnid3Tpq2Ob3HuRW9Xq9HCCGEEEJUaSpLByCEEEIIIcpPkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhBBCiGpAkjohhFksW7YMRVGwtbXl2rVrRY53796dZs2ameS5vv/+e4YNG0aDBg1QFIXu3bvf8fyDBw8ycOBA3N3dsbe3p1mzZsydO7fQOR9//DH33HMPnp6e2Nra0qBBAyZOnEhMTEyR9iIjI3nhhRcICgrCzs6O+vXrM3nyZOLi4kqMITs7m5CQEBRFYcaMGWV63QAjRoxAURScnZ25efNmkeNnz55FUZRyP09JPvroIxRFMdl7KYQoO42lAxBCVG+ZmZlMnz6defPmme05Fi5cyIEDB2jfvv0dEymATZs2MWDAAFq3bs27776Lo6Mj58+f5+rVq4XOO3DgAK1ateLJJ5/EycmJkydPsmTJEn777TcOHz6Mg4MDAKmpqXTq1Im0tDReeukl/P39OXLkCPPnz2fLli0cOHAAlaro/8/z5s3j8uXLJnn9Go2G9PR01q9fz+OPP17o2LfffoutrS0ZGRkmea6Crl69yscff5z/vRBCWJYkdUIIs2rVqhVLlizhzTffxM/PzyzPsWLFCmrXro1Kpbpjj1FycjLDhw+nf//+/Pjjj8UmW3nWrl1b5L5OnTrx6KOPsn79ep588kkA1q1bx6VLl9iwYQP9+/fPP9fd3Z0PPviAI0eO0Lp160LtREdH88EHH/D666/z3nvvGftyi7CxsaFLly589913RZK6VatW0b9//2JfT3lNmTKFe+65B61WS2xsrMnbF0IYR4ZfhRBm9dZbb6HVapk+fbrZnsPf3/+OCVqeVatWcePGDT766CNUKhVpaWnodLpSP0/dunUBSExMzL8vOTkZAG9v70Ln+vr6AmBnZ1eknTfeeINGjRoxbNiwUj/33QwdOpQ//vijUGz79u3j7NmzDB061GTPk2fbtm38+OOPzJ492+RtCyHKRpI6IYRZBQUFMXz4cJYsWcL169fveG5SUhKxsbF3vaSmppYpls2bN+Ps7My1a9do1KgRjo6OODs78+KLLxY7PKnX64mNjSUqKort27czYcIE1Gp1oTl73bp1Q6VS8fLLL7N7926uXr3K77//zkcffcTgwYNp3LhxoTb37t3LN998w+zZs1EUpUyvozgPP/wwiqLw008/5d+3atUqGjduTJs2bYqcr9PpSvW9jo2NJTs7u9BjtVot48ePZ9SoUTRv3txkr0EIUT6S1AkhzO7tt98mJyeHTz/99I7nDRo0CE9Pz7texo0bV6Y4zp49S05ODoMGDaJv376sXbuW559/nkWLFvHcc88VOf/GjRt4enri6+tLt27duHz5cn6ilCckJIQvvviC8PBwOnXqhL+/P/3796dnz56sWbOmUHt6vZ7x48fzxBNP0KlTpzK9hpI4OTnx0EMPsWrVKsCQtK1evZqnnnqq2PMvX75cqu+1p6cnO3bsKPTYRYsWcenSJT788EOTvgYhRPnInDohhNnVq1ePZ555hi+++II33ngjf2jydp9//jkJCQl3ba+sc/NSU1NJT09n7Nix+atdH374YbKysli8eDEffPABDRo0yD/f3d2dv/76i4yMDA4dOsRPP/1UbC9h7dq16dChAw8++CCBgYFs376duXPn4uHhUWjF6bJlyzh27Bg//vhjmeK/m6FDh/LYY48RFRXF8ePHiYqKKnHo1cfHh7/++qtU7bZs2TL/elxcHO+99x7vvvsunp6eJolbCGEaktQJISrEO++8w4oVK5g+fTpz5swp9py2bduaNYa8+W23914NHTqUxYsXs2vXrkJJnbW1Nb169QLgoYceomfPnnTp0gUvLy8eeughAHbs2MFDDz3E7t27adeuHQCDBw/G2dmZ999/n+eff56QkBCSk5N58803efXVV/H39zfL63vwwQdxcnLi+++/5/Dhw7Rv357g4GAuXrxY5FxbW9v812aMd955B3d3d8aPH2+CiIUQpiRJnRCiQtSrV49hw4bl99YVJz4+nqysrLu2ZWdnh4uLi9Ex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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"for i, batch_size in enumerate(batch_sizes):\n",
" baseline, *rest = factor_vs_batch_size[i * len(factors) : (i + 1) * len(factors)]\n",
" normalise = [baseline / x for x in rest]\n",
" ax.plot(\n",
" factors[1:],\n",
" normalise,\n",
" marker=\"o\",\n",
" label=f\"batch size={batch_size}\",\n",
" )\n",
"ax.set_title(f\"N={signal_length}, M={order}\")\n",
"ax.set_yscale(\"log\")\n",
"ax.set_xscale(\"log\")\n",
"ax.set_xticks(factors[1:])\n",
"ax.get_xaxis().set_major_formatter(plt.ScalarFormatter())\n",
"ax.legend()\n",
"ax.set_xlabel(\"Unroll Factor\")\n",
"ax.set_ylabel(\"Speedup (vs standard SSM)\")\n",
"ax.grid()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "ccf1ae2e",
"metadata": {},
"source": [
"### Memory usage\n",
"\n",
"To observe how memory usage changes in a differentiable training context, I ran the unrolled SSM on a 5060 Ti, allowing me to use `torch.cuda.max_memory_allocated()` to measure memory usage.\n",
"When batch size is 1, as expected, the memory usage grows quadratically with the unroll factor, due to the creation of the $\\mathbf{V}$ matrix.\n",
"When using a larger batch size (32 in this case), this cost becomes less significant compared to the more memory used for the input signal."
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "98fa398c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'NVIDIA GeForce RTX 5060 Ti'"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.cuda.get_device_name()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "02ec6fd5",
"metadata": {},
"outputs": [],
"source": [
"factors = [1, 32, 64, 128, 256, 512, 1024]\n",
"signal_length = 65536\n",
"batch_size = 1\n",
"orders = [2, 4, 8, 16]\n",
"cuda_result = []\n",
"x = torch.randn(batch_size, signal_length, requires_grad=True).cuda()\n",
"\n",
"label = \"State-Space All-Pole Unrolled\"\n",
"for order in orders:\n",
" for unroll_factor in factors:\n",
" a = order2a(order).cuda()\n",
" a.requires_grad = True\n",
" sub_label = f\"unroll factor: {unroll_factor}\"\n",
" torch.cuda.reset_peak_memory_stats()\n",
" y = state_space_allpole_unrolled(x, a, unroll_factor=unroll_factor)\n",
" peak_memory = torch.cuda.max_memory_allocated() / (1024 * 1024)\n",
" cuda_result.append(peak_memory)\n",
" y.detach_()\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "c26c71b0",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"for i, order in enumerate(orders):\n",
" # baseline, *rest = cuda_result[i * len(factors) : (i + 1) * len(factors)]\n",
" # normalise = [x / baseline for x in rest]\n",
" ax.plot(\n",
" # factors[1:],\n",
" # normalise,\n",
" factors,\n",
" cuda_result[i * len(factors) : (i + 1) * len(factors)],\n",
" marker=\"o\",\n",
" label=f\"M={order}\",\n",
" )\n",
"ax.set_title(f\"N={signal_length}, batch size={batch_size}\")\n",
"# ax.set_yscale(\"log\")\n",
"# ax.set_xscale(\"log\")\n",
"ax.set_xticks(factors)\n",
"ax.get_xaxis().set_major_formatter(plt.ScalarFormatter())\n",
"ax.legend()\n",
"ax.set_xlabel(\"Unroll Factor\")\n",
"ax.set_ylabel(\"Peak Memory Usage (MB)\")\n",
"ax.grid()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "9a3202e0",
"metadata": {},
"source": [
"## Discussion\n",
"\n",
"So far, we have seen that the unrolled SSM can achieve a significant speedup for IIR filtering in PyTorch.\n",
"However, determining the best unrolling factor automatically is still unclear.\n",
"From the benchmarks I did on an i7 CPU, it seems that the optimal $T^*$ is $\\sqrt{N}\\alpha$ and $0 < \\alpha \\leq 1$ is given by a function of the filter order and batch size.\n",
"Since I also observe similar behaviour on the GPU, it is likely that this hypothesis holds true for other hardware as well.\n",
"\n",
"One thing I didn't mention is numerical accuracy.\n",
"If $|\\mathbf{A}|$ is very small, the precomputed exponentials $\\mathbf{A}^T \\to \\mathbf{0}$ which may not be accurately represented in floating point, especially in deep learning applications we use single precision a lot.\n",
"This is less of a problem for the standard SSM, since at each time step, the input is mixed with the state vector, which could help cancel out the numerical errors.\n",
"\n",
"The idea should apply when there are zeros in the filter.\n",
"$\\mathbf{B}$ will not be a simple one-hot vector anymore so $\\mathbf{V}$ has to be a full $MT \\times MT$ square matrix.\n",
"Time-varying filters will benefit less from the unrolling trick since $\\mathbf{V}$ will also be time-varying, and computing $\\frac{N}{T}$ such matrices in advance increases the cost.\n",
"\n",
"\n",
"## Conclusion & Thoughts\n",
"\n",
"In this post, I demonstrate that the unrolling trick can significantly accelerate differentiable IIR filtering in PyTorch.\n",
"The extra memory cost is less of a problem for large batch sizes.\n",
"Although the filter I tested is a simple all-pole filter, it's trivial to extend the idea to general IIR filters.\n",
"\n",
"This method might help address one of the issues for future TorchAudio, after the Meta developers [announced](https://github.com/pytorch/audio/issues/3902) their future plan for it.\n",
"In the next major release, all the specialised kernels written in C++, including the `lfilter` I contributed years ago, will be removed from TorchAudio.\n",
"The filter I presented here is written entirely in Python, and it could serve as a straightforward drop-in replacement for the current compiled `lfilter` implementation."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment