The CSC format sparse matrix information is stored in three arrays, namely the array of the NNZs’ values, the array of the row indices of NNZs, and the column pointers of the NNZs. To maximize the performance, the storage of the values and row indices of the NNZs can be partitioned into blocks and stored in multiple HBM channels. This storage scheme allows multiple sparse matrix blocks being processed in parallel. The buffering and transmission logic implemented in dispCol
and dispNnzCol
are used to move column vector and pointer blocks to allow multiple sparse matrix blocks being processed in parallel. dispColVec
is the basic component of dispCol.
For more information, see Column Vector Buffering and Distribution Implementation.