본 논문은 symmetric band matrix와 dense matrix의 곱셈 연산을 가속하기 위하여 블록 단위로 연산하는 곱셈기의 구조를 제안하고 FPGA에서 구현하였다.
FPGA는 많은 연산을 병렬적으로 해결할 수 있어 matrix multiplication과 같이 많은 연산을 해야 할 때 범용 프로세서보다 고성능을 낼 수 있다. FPGA는 내부 자원이 제한적이기 때문에 자원을 효율적으로 사용하는 것이 중요하다. 본 논문에서는 FPGA 내부 자원을 효율적으로 사용하는 matrix multiplier를 제안하고 설계하였다. 또한, 유연하게 설계할 수 있는 FPGA의 특성을 활용하여 고정 소수점 방식, 부동 소수점 방식 모두 적용할 수 있고, 수정이 쉬운 구조를 제안하였다.
Symmetric band matrix - matrix 곱셈은 band matrix의 sparse 한 특성을 활용하면 연산량을 줄일 수 있고 symmetric 한 특성을 이용하여 중복된 data는 저장하지 않아 memory를 절약할 수 있다. 또한, matrix - matrix 연산을 블록 단위로 처리하여 고도의 병렬화를 이룰 수 있다.
본 논문에서는 symmetric band matrix - matrix 곱셈 알고리즘을 분석하여 블록 단위 곱셈과 누적을 구분되게 하도록 설계하였다. 그리고 matrix의 symmetric 한 특성으로 연산에서 재사용되는 data는 따로 공급할 필요 없이 내부 buffer에서 공급하도록 설계하였다. 설계한 하드웨어와 여러 범용 프로세서와 throughput을 비교하여 성능을 측정하였다.