## 2 Baseline Multichannel Acoustic Score Computation of a CSC BLSTM AM
### Baseline Multichannel Acoustic Score Computation  
When the decoder thread is initialized, the run-time memories are allocated. As shown in Figure 3a, the run-time memories comprise (a) three types of CPU memories, \(\mathcal{M}^{CPU}_{feat\_vec}\) for a speech feature vector, \(\mathcal{M}^{CPU}_{feat\_mat}\) for a CSC matrix, and \(\mathcal{M}^{CPU}_{prob\_vec}\) for acoustic scores, and (b) two types of GPU memories, \(\mathcal{M}^{GPU}_{feat\_mat}\) for a CSC matrix and \(\mathcal{M}^{GPU}_{prob\_vec}\) for acoustic scores.  
Figure 3: Main procedure of the baseline multichannel acoustic score computation based on CSC bidirectional long short-term memory acoustic model (BLSTM AM). The green- and blue-shaded boxes indicate the CPU and GPU memories, respectively.  
Figure 2: Context-sensitive-chunk (CSCs) of our ASR system with \(\mathcal{T}_{\textit{bat}}\) of 200 frames, \(\mathcal{T}_{\textit{chunk}}\) of 20 frames, and \(\mathcal{T}_{\textit{ext}}\) of 40 frames: (**a**) extracted speech features from the overall input sequence, (**b**) a set of speech feature vectors where each vector is obtained from \(\mathcal{R}_{feat}\) and the size is (\(\mathcal{T}_{\textit{bat}}\)+\(\mathcal{T}_{\textit{ext}}\)), (**c**) a set of chunks where the chunk size is \(\mathcal{T}_{\textit{chunk}}\), (**d**) a set of CSCs where the CSC size is (\(\mathcal{T}_{\textit{ext}}\)+\(\mathcal{T}_{\textit{chunk}}\)+\(\mathcal{T}_{\textit{ext}}\)), and (**e**) a CSC matrix for a speech feature vector.  
Moreover, the sizes of the run-time memories are summarized in Table 1. That is, the size of \(\mathcal{M}_{feat\_vec}^{CPU}\) is \(\mathcal{N}_{bat}\), which is defined as  
\[\mathcal{N}_{bat}=\mathcal{T}_{bat}/\mathcal{T}_{shift}\times\mathcal{N}_{feat\_ dim}, \tag{3}\]  
where \(\mathcal{T}_{shift}\) and \(N_{feat\_dim}\) are the sizes of frame shift and the speech feature dimension, respectively, which are 10 and 600 frames, as described in Section 2.1.1. Therefore, \(\mathcal{N}_{bat}\) is 12000. The size of \(\mathcal{M}_{feat\_mat}^{CPU}\) or \(\mathcal{M}_{feat\_mat}^{GPU}\) is \(\mathcal{N}_{win}\times\mathcal{N}_{seg}\) and that of a CSC, \(\mathcal{N}_{win}\), is defined as  
\[\mathcal{N}_{win}=\mathcal{T}_{win}/\mathcal{T}_{shift}\times\mathcal{N}_{feat\_ dim}. \tag{4}\]  
thus, \(\mathcal{N}_{win}\) is 6000. The size of \(\mathcal{M}_{prob\_vec}^{CPU}\) and \(\mathcal{M}_{prob\_vec}^{GPU}\) is \(\mathcal{N}_{node}\), which is the number of output nodes of a BLSTM AM and is set as 19901 in this paper.  
Whenever a decoder thread is in idle state and \(\mathcal{R}_{feat}\) contains speech features more than \(\mathcal{T}_{bat}\), the decoder thread obtains a speech feature vector of length \(\mathcal{T}_{bat}\). The speech feature vector is reformed into CSC vectors, which are merged into a CSC matrix. The CSC matrix is then transmitted from CPU to GPU. On GPU, the CSC matrix is normalized using a linear discriminant analysis (LDA)-based transform [37] and the acoustic scores of the matrix are calculated using the BLSTM AM. Next, the acoustic scores are transmitted from GPU to CPU and used in the subsequent steps, such as DNN-VAD and Viterbi decoding. The explained procedures are shown in Figure 3b.  
For each feature with a duration of \(\mathcal{T}_{bat}\) per client, the transmission sizes are \(\mathcal{N}_{win}\times\mathcal{N}_{seg}\) and \(\mathcal{N}_{node}\) for a CSC matrix from CPU to GPU and for acoustic scores from GPU to CPU, respectively, as shown in Table 2. Moreover, the transmission frequency is increased by \(\mathcal{N}_{channel}\) times if the number of concurrent clients is \(\mathcal{N}_{channel}\). However, the frequent data transfer tends to degrade the overall computational performance of a system and causes a small utilization of the GPU [38; 39].