I am trying to understand which operations are computable by an $\texttt{NC}^1$ circuit. However, I am struggling to understand whether there is such a circuit for multiplying a matrix with a vector or if the circuit will necessarily be in $\texttt{NC}^2$.
Asked
Active
Viewed 209 times
1 Answers
1
Say you have $A\in \mathbb{F}_p^{m\times n}$, and $s\in\mathbb{F}_p^n$. We want to compute $As\in\mathbb{F}_p^m$. Note that
- We can split this into $m$ computations of $\langle A_i, s\rangle$, where $A_i$ are the rows of $A$, i.e. it is $m$ $n$-dimensional inner products
- Each inner product can be computed in $\log_2(n)$ depth using $O(n)$ processors, essentially via putting each summand in $\langle A_i, s\rangle = \sum_{j = 1}^n A_{ij}s_j$ on the leaf of a full binary tree, and having each internal node sum the results of its two children. The root will then contain $\langle A_i, s\rangle$.
In total, with $O(mn)$ processors, we should be able to determine it in depth $O(\log n)$, provided the underlying arithmetic in $\mathbb{F}_p$ can be done in constant depth, which seems like a reasonable assumption. This would put it in $\mathsf{NC}^1$.
Mark Schultz-Wu
- 15,089
- 1
- 22
- 53