박사 1지망 교수님이신 Charith Mendis가 세계적인 컴퓨터 아키텍처 컨퍼 ASPLOS에 쓴 논문
1. Abstract
기존의 compiler auto-vectorization technique은 SIMD instruction에 타겟하는 것에 focus를 두고 있다. 하지만, 이러한 auto-vectorization technique은 image processing, digital signal processing, ml과 같은 domain에 non-SIMD vector instruction에 충분한 성능을 내지 않는다. 이러한 non-SIMD instruction을 target하기 위해 peephole optimization와 같은 최적화 기법에 의존한다. vector instruction 집합들이 계속 발전하기 때문에 hardware capability를 따라잡을 수 없다.
그래서 이 논문은 Lane Level Parallelism(LLP)을 제시한다. 이는 SIMD, non-SIMD vector instruction을 parallel하게 capture할 수 있다. 이러한 desing은 우리를 systematically하게 non-SIMD vector instruction을 target할 수 있게한다.
VeGen모델은 non-SIMD vector instruction을 effectively하게 사용한다.

Automatic Vectorization
SIMD parallelism을 하는 2가지 기술 loop vectorization, vectorization에 기반한 superword level parallelism
이러한 technique은 vector instuction에 대한 2가지 가정을 제시한다. 우선 SIMD명령어는 isomorphic operation을 모든 lane에 걸처서 실행한다. 그리고 명령어는 element-wise를 적용한다. 이러한 알고리즘은 컴파일러 개발자들이 SIMD instruction을 지원하게 돕는다.
Existing Support for Non-SIMD Instruction
non-SIMD instruction은 2가지 근본적 가정을 위반하기에 컴파일러 개발자들은 ad hoc approach를 사용하는 non-SIMD instruction을 지원한다.
그래서 Vegen을 제시하는데 이는 SIMD parallelism보다 더 general한 vector parallelism을 정의한다
...
논문을 본격적으로 작성하기 시작한지 이틀이 되었는데 기존의 방식은 문제가 많은 것 같다.
우선 첫번째로 논문의 각 목차별로 (ex, Introduction, Experiance, Conclusion) 해석해가면서 엑기스만 요약해서 정리하려고 했는데 사실 이런 방식은 블로그를 작성할 때 time-consuming하고 해석에 초점을 맞추는 느낌이랄까..
그래서 앞으로 새로운 방식으로 논문을 작성하려고 한다.
첫번째로 problem statement 새롭게 제시하는 문제를 먼저 제시한다.
이 논문으로 치면 SIMD, non-SIMD vector instruction 에 대응하는 auto-vectorization이 없다는 점이고 이에 대해서 간략하게 설명한다. 그리고 두번째로 문제에 해당하는 solution을 작성하는 것이다. 이런식으로 paper review를 작성해 나가는 방식이 잘 남을 것 같다. 그리고 향후에 내공과 실력이 더 커진다면 Limit & 나만의 Future work을 제시하는 방식으로 작성하면 좋을 것 같다.