A Program Transformation Framework for Improving Data Locality Based on Loop Distribution , Interchange, Unrolling, and Scalarization

루프 분산, 교환, 펼침 , 스칼라화에 기초한 데이터 지역성 개선을 위한 프로그램 변환체계

  • 우덕균 (홍익대학교 전자계산학과) ;
  • 표창우 (홍익대학교 컴퓨터공학과) ;
  • 윤석한 (한국전자통신연구원 컴퓨터시스템연구부 연구원)
  • Published : 1999.04.01

Abstract

본 논문은 데이터 캐시를 효과적으로 사용하기 위하여 개발된 원시 프로그램의 루프 변환체제에 대하여 논하고 있다. DIUS로 명명된 이 체계는 외부 루프 펼침을 중심으로 루프 분산, 교환이 선행되고 , 마직막에 스칼라화가 적용되는 변환체계이다. 루프 교환은 회전 공간이 루프 단위로 변형되어 전반적으로 캐시 재사용 기회를 높이지만 일부 배열 참조에 대해서는 오히려 재사용 기회를 감소시킨다. 본 연구에서는 이 문제를 외부 루프 펼침으로 해결하였다. 외부 루프 펼침과 루프 교환을 루프 몸체의 문장들에 선별적으로 적용하기 위하여 루프 분산을 도입하였다. 외부 루프 펼침을 적용하면 배열 참조를 스칼라 참조로 변환하는 스칼라화의 효과가 증대되어 레지스터 사용의 효율성이 높아진다. SPEC CFP95 벤치마크에 대하여 DIUS를 적용한 결과 기하학적 평균으로 속도 향상 1.10을 얻었으며, 특정 프로그램들은 모두 캐시 미스수가 줄어들었음을 확인하였다. 이와 같은 성능향상은사용된 루프 변환기법들이 갖는 캐시와 레지스터의 효율적인 사용에 기인한다.

Keywords

References

  1. Computer Architecture: A Quantitative Approach, second edition J.L.Hennessy;D.A.Patterson
  2. 1993 Workshop on Languages and Compilers for Parallel Computing Maximizing loop parallelism and improving data locality via loop fusion and distribution K.Kennedy;K.S.McKinley
  3. ACM TOPLAS v.18 no.4 Improving data locality with loop transformations K.S.McKinley;S.Carr;C.Tseng
  4. Proc.of PLDI 91 A data locality optimizing algorithm M.E.Wolf;M.S.Lam
  5. Code Generation: Concepts, Tools, Techniques A quantitative algorithm for data locality optimization F.Bodin;W.Jalby;D.Windheiser;C.Eisenbeis
  6. ACM Conference on PLDI Tile size selection using cache organization and data layout S.Coleman;K.S.McKinley
  7. 4th Conf.on ASPLOS Cache performance and optimizations of blocked algorithm M.S.Lam;E.E.Rothberg;M.E.Wolf
  8. Supercomputing '92 Loop distribution with multiple exits B.M.Hsieh;M.Hind;R.Cytron
  9. Supercomputing '90 Loop distribution with arbitrary control flow K.Kennedy;K.S.McKinley
  10. Computer Languages v.6 no.1 Register allocation via coloring G.J.Chaitin;M.A.Auslander;A.K.Chandra;J.Cocke;M.E.Hopkins;P.W.Markstein
  11. SUIF Compiler System SUIF Compiler Groups
  12. SPEC95 Documentation SPEC (Standard Performance Evaluation Corporation)
  13. Journal of Parallel and Distributed Computing v.5 no.5 Strategies for cache and local memory management by global program transformation D.Gannon;W.Jalby;K.Gallivan
  14. Proc.of MICRO-29 Combining loop transformations considering caches and scheduling M.E.Wolf;D.E.Maydan;D.-K.Chen
  15. 16th ACM Symposium on POPL The program dependence graph and vectorization W.Baxter;H.R.Bauer, Ⅲ
  16. ACM Conference on PLDI Improving register allocation for subscripted variables D.Callahan;S.Carr;K.Kennedy
  17. ACM TOPLAS v.16 no.6 Improving the ration of memory operations to floating-point operations in loops S.Carr;K.Kennedy
  18. Proc.of the PACT'96 Combining optimization for cache and instruction-level parallelism S.Carr
  19. Proc.of the Micro-30 Unroll-and -jam using uniformly generated sets S.Carr;Y.Guan
  20. C 언어 최적화 번역기에 관한 연구 표창우
  21. High Performance Compilers for Parallel Computing M.J.Wolfe
  22. 정보과학회 추계 학술발표 루프 분산에 의한 데이타 지역성 개선 김상훈;표창우;윤석한
  23. 정보과학회 추계 학술발표 데이타 지역성 향상을 위한 루프 펼침 한혜경;우덕균;표창우
  24. Proc. of SIGMETRICS 94 Shade: A fast instruction-set simulator for execution profiling B.Cmelik;D.Keppel