Browse

Advanced compilation issues for Coarse-Grained Reconfigurable Architecture (CGRA)
재구성형프로세서를위한 고급 컴파일 기법

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
Yongjoo Kim
Advisor
백윤흥
Major
공과대학 전기·컴퓨터공학부
Issue Date
2012-08
Publisher
서울대학교 대학원
Keywords
CGRAreconfigurable architecturecompileroptimization
Description
학위논문 (박사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2012. 8. 백윤흥.
Abstract
재구성형 프로세서는 소프트웨어 적으로 프로그래밍이 가능하면서도 최대 10-100 MOps/mW 의 성능을 낼 수 있는 유망한 플랫폼이다. 하지만 그 유망함은 응용을 재구성형 프로세서 플랫폼에 얼마나 효율적으로 매핑 하느냐에 달려 있다. 기존의 연구들은 재구성형 프로세서의 계산 성능 향상에 뛰어난 성과를 이룩하였지만 아직도 풀어야 할 문제가 많은 실정이다.
여러가지 남아있는 문제들 중 재구성형 프로세서를 위한 데이터 매핑 알고리즘은 더 강력한 성능을 얻기 위해 꼭 풀어야할 중요한 문제이다. 이 논문에서는 메모리를 고려한 응용 매핑이 필요한 당위성을 고찰하고, 메모리 크기, 메모리 구조, 통신 구조 등을 고려한 효율적인 응용 매핑 방법을 제안 하였다. 거기에 더블 버퍼링(double-buffering)을 이용하여 메모리의 데이터를 관리하는 경우, 타겟 룹에 data dependency가 있을 경우 데이터 관리가 어려운데, 이를 위한 효율적인 데이타 관리 기법을 제안하였다. 또한 메모리 성능을 최적화 하기 위한 코드 최적화 기법도 제안하였다.
파이프라이닝 알고리즘은 일반적으로 steady-state의 성능, 즉 커널의 수행시간을 향상시키기 위해서 사용된다. 파이프라인 셋업 타임은 일반적으로 커널의 수행시간에 비해서 무시 가능할 정도로 작다고 여겨진다. 하지만 메인 프로세서의 보조 프로세서로 쓰이는 재구성형 프로세서의 경우 빠른 계산 수행능력으로 인해 이 셋업 타임이 상대적으로 훨씬 길 수 있다. 그리고 작은 룹이 큰 외부 룹에 의해서 반복 될 경우, 매번 내부 룹을 수행할 때 마다 파이프라인을 셋업해야 하므로 셋업을 위한 통신시간이 전체 수행시간 중 큰 비중을 차지할 수 있다. 여기서는 중첩된 룹을 수행할 경우에 kernel 룹 이외의 수행시간에 대해서 분석을 하였고, 이 overhead를 줄일 수 있는 새로운 아키택처-컴파일러 협동 수행 방법을 제안하였다. 이 제안된 방식은 추가적으로 재구성형 프로세서의 configuration의 크기도 줄여주었다.
재구성형 프로세서는 현재 사용하고 있는 매핑 알고리즘에 문제가 있었다. 기존의 알고리즘은 재구성형 프로세서의 크기를 늘릴 경우 효율적으로 늘린 자원을 사용하지 못하였다. 나는 이 문제를 해결하기 위해 SIMD paradigm을 사용하여 매핑 알고리즘을 확장 하였다. 기존의 매핑 알고리즘에 SIMD paradigm을 적용하는 것은 기존의 operation mapping과 data mapping 이외에도 룹의 iteration을 각 core에 매핑하는 문제까지 동시에 풀어야 하는 것이 된다. 이 논문에서는 코드의 여러 레벨에서 SIMD mapping을 할 수 있는 SIMD 재구성형 프로세서를 제안하였고 주요한 성능 저하의 원인이 되는 local 메모리 bank 충돌 문제를 해결하는 스케쥴링 알고리즘을 제안하였다. 또한 스케쥴링 알고리즘과 연동하여 bank 충돌 문제를 효율적으로 줄일 수 있는 data tiling 방법을 제안하였다.
Coarse-Grained Reconfigurable Array architectures (CGRAs) are a very promising platform, providing both up to 10-100 MOps/mW of power efficiency and software programmability. However, this promise of CGRAs critically hinges on the effectiveness of application mapping onto CGRA platforms. While previous solutions have greatly improved the computation speed, there is still a lot of problems.
One major challenge comes in the form of data mapping. This thesis motivates the need for memory-aware application mapping for CGRAs, and proposes an effective solution for application mapping that considers the effects of various memory architecture parameters including the number of banks, local memory size, and the communication bandwidth between the local memory and the external main memory. Further I propose efficient methods to handle dependent data on a double-buffering local memory, which is necessary for recurrent loops. In addition to these, I propose a code optimization technique for higher memory performance.
Pipelining algorithms are typically concerned with improving only the steady-state performance, or the kernel time. The pipeline setup time happens only once and therefore can be negligible compared to the kernel time. However, for CGRAs used as a coprocessor to a main processor, pipeline setup can take much longer due to the communication delay between the two processors, and can become significant if it is repeated in an outer loop of a loop nest. I evaluate the overhead of such non-kernel execution times when mapping nested loops for CGRAs, and propose a novel architecture-compiler cooperative scheme to reduce the overhead, while also minimizing the number of extra configurations required.
CGRAs have a problem that current mapping algorithms for it do not scale well with the number of cores. One approach to this problem is using SIMD (Single Instruction Multiple Data) paradigm. However, SIMD can complicate the mapping problem by adding an additional dimension, i.e., iteration mapping, to the already interdependent problems of data mapping and operation mapping, and can significantly affect performance through memory bank conflicts. In this thesis I introduce SIMD reconfigurable architecture, which allows for SIMD mapping at multiple levels of granularity, and investigate ways to minimize bank conflicts in a SIMD reconfigurable architecture with the related sub-problems taken into consideration. I further present data tiling and evaluate a conflict-free scheduling algorithm as a way to eliminate bank conflicts for a certain class of iteration and data mapping.
Language
English
URI
https://hdl.handle.net/10371/118875
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Electrical and Computer Engineering (전기·정보공학부)Theses (Ph.D. / Sc.D._전기·정보공학부)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse