본문 바로가기
Studies/AI for Hardware

Computing-in-Memory (2): Trade-offs & Limitations

by veritedemoi 2023. 1. 18.

※ Computing-in-Memory 분야의 고질적인 문제점과 그에 따른 한계에 대해 다소 보수적인 측면에서 바라본, 지극히 개인적인 의견이 쓰여있음을 미리 알립니다.

 

 

What made trade-offs?


  Computing-in-Memory (1) 포스팅에서 해당 개념은 기존의 von Neumann 구조의 느린 속도, 비효율적인 에너지 소모 등을 개선하기 위해 제안되었다는 설명을 했었다. 아직까지 자세한 회로 구조를 다룬 게 아니기 때문에, 언뜻 앞선 설명을 들으면 인메모리 컴퓨팅이 AI 가속기 분야에서 만능열쇠와 같다는 인상을 받을 수도 있다. 하지만, 진짜 만능열쇠가 되기 위해서는 아직 넘어야 할 산이 굉장히 많다. 그중 가장 많이 논의되고 있는 것이 Computing-in-Memory (이하 CIM)의 본질적인 trade-off다.  

 

   당연한 이야기일지 모르지만, 어떤 하드웨어가 AI 연산과 같은 컴퓨팅을 적은 에너지로 빠르고 정확하게 수행한다면 사실상 인간의 뇌와 다를 바가 없는 수준에 도달했다고 볼 수 있다. 뉴로모픽 컴퓨팅 등이 인간의 뇌와 흡사한 연산 능력을 얻기 위한 방편으로 연구되고 있지만, 하드웨어로 두뇌만큼 저전력-고속-정밀 연산을 해내기란 매우 쉽지 않은 일이다. 그렇다면, 자명한 하드웨어의 한계가 어떤 문제 때문에 발생하는지를 알아보는 게 필요할 것 같다.

 

 

Accuracy vs. Latency vs. Energy

Three main & fundamental trade-off relations

   우리는 일상생활에서 어떤 연산을 할 때 '눈대중' 혹은 '암산' 등을 통해 소요되는 시간을 매우 단축시키곤 한다. 매우 빠른 시간 안에 연산 결과를 얻을 수는 있으나, 그 정확도는 실질적으로 계산기나 측정 도구를 통해 얻은 결과보다 떨어질 수밖에 없는 맹점이 존재한다. 

   이런 특징을 Analog 도메인에서 동작하도록 설계된 CIM 구조에서도 같은 맥락 아래에서 발견할 수가 있다. Analog 도메인의 CIM 구조들은 SRAM, DRAM, 그리고 Flash (추가로 ReRAM, PCRAM 등)와 같은 기존 메모리들의 bitcell array와 peri 영역 회로 구조를 변형한 연구들이 굉장히 많다 [1]. 그리고 해당 연구들은 Computing-in-Memory (1) 포스팅에서 설명했던 것처럼 메모리가 저장된 데이터를 읽고 쓰는 원리를 딥러닝 연산의 parameter와 치환해 합성곱(MAC) 연산을 가속하고는 한다.

   Analog CIM의 정확도가 떨어지는 이유에는 회로의 물리적인 variation의 영향이 가장 크다. 예를 들어, 앞서 비유했던 눈대중이나 암산의 정확도사람의 숙련도, 집중력, 그리고 시력 등의 여러 요소에 의해 달라질 수 있는 것처럼 회로의 analog 연산도 언급한 variation 때문에 정확성이 크게 달라지게 된다. 회로의 물리적인 variation은 좀 더 정확하게는 PVT(Process, Voltage, and Temperature) variation [2]이라고 일컫는데, 트랜지스터의 threshold voltage가 random 하게 달라지는 것과 실제 chip을 tape-out 했을 때 생겨나는 parasitic RC 성분 등이 일반적으로 모두 포함되는 개념이다.

   PVT variation은 회로의 이상적 동작을 막고, 비선형 혹은 비이상적인 (non-linear or non-ideal) 출력을 야기한다. 결국 가장 low level에서 바라는 트랜지스터의 ideal switch 동작의 수율이 떨어지게 되면서, analog CIM 연산의 정확도 역시 같이 저하된다. 정확도 저하를 막거나 이미 저하된 정확도를 보상하기 위해 회로의 사이즈를 키우거나 혹은 ADC/DAC 등의 요소의 FoM(Figure of Merit)을 높이면서 연산에 쓰이는 bit precision을 높이는 방법이 시도될 수 있는데, 여기서 위의 그림에 나오는 trade-off가 발생하게 된다.

   정확도를 높이거나 저하되는 것을 막고자 다른 회로 요소들을 조정하기 시작하면, 궁극적으로 에너지 측면과 속도(latency 혹은 throughput―연산량) 측면을 손해 보는 것이 불가피해진다. 다르게 말하면, 이런 요소들의 equilibrium point 혹은 optimized design parameter를 구해서 이 trade-off 관계에서 손해를 최소화하는 설계가 필수적이라는 의미가 된다.

 

 

Case study―Design trade-offs

    마침 arXiv에 올라와있는 open access 페이퍼 중에 언급한 design trade-off를 면밀히 분석한 것이 있어, 해당 페이퍼[3]의 내용을 인용해 좀 더 이해하기 쉽게 자세한 설명을 해볼 수 있을 것 같다.

   해당 페이퍼에서는 앞서 말한 CIM 구조에서 발생하는 정확도 저하의 원인회로의 variationnoise로 전제하고, 최선의 정확도를 얻을 수 있는 설계 파라미터를 수학적으로 모델링해 제안한다. 그 사전 과정(preliminary)으로 기존에 연구되었던 CIM 구조들을 (1) Charge Summing (QS) 구조, (2) Current Summing (IS) 구조, 그리고 (3) Charge Redistribution (QR) 구조로 구분했다.

   (1) 구조를 보면 주로 pulse 신호인 wordline 신호를 얼마나 오래 켜는지(=width)에 따라 input을 매핑하고, 그에 따라 각 bitcell에 저장되어 있는 데이터에 따라 bitline이 가장 높은 전압(VDD)에서 output voltage까지 discharging이 일어난다. 그리고 (3) 구조는 (1) 구조에서 pulse-width가 하는 크기의 매핑을 커패시터의 크기로 바뀌어서, 각 커패시터에 말 그대로 'charge redistribution'을 통해 output voltage까지 discharging이 일어난다.

 

    이렇게 bitcell array 자체적인 아키텍쳐를 알아봤는데, 그렇다면 페이퍼에서 분석한 이 아키텍쳐 내부에서 발생할 수 있는 noise는 어떤 게 있는지 살펴보자.

   위에 정리한 것들이 peri circuitry(ADC, DAC, etc.)를 제외하고 아키텍쳐 내부에서 발생할 수 있는 noise source라고 페이퍼에서는 분석했다. 사실 이 모든 것들이 PVT variation의 어떤 현상이라고 러프하게 말할 수 있다. 다르게 말하면, PVT variation을 방지할 수 있다면, 모든 동작들이 이상적으로 실현이 되기 때문에 정확도가 저하될 이유가 없다는 의미다. Threshold voltage가 랜덤하게 변하는 variation이나, parasitic RC 성분들이나, 아니면 thermal noise 같은 noise는 그 자체로도 영향을 주지만 charge injection이나 voltage clipping과 같은 부수적인 현상도 야기한다.

 

 

Costs―Calibration, variation-aware design

   Variation을 사전에 예방하는 것이나 이미 설계된 것에서 발생되는 variation을 추후에 고려해서 조절하는 테크닉들은 결과적으로 cost가 생긴다. 이에 대해서도 간단하게 생각해 볼 수 있다.

  • 먼저 사전에 예방하기 위해서 software 측면에서 calibration을 도입하게 되면 noise를 미리 학습시켜야 하기 때문에 CIM inference를 실행할 수 있는 알고리즘의 범용성이 떨어지게 된다.
  • 또, 초반에 언급한 것처럼 사전에 예방하기 가장 쉬운 것은 아키텍쳐의 size를 크게 키워서 PVT variation에 대해서 resilient 하게 만드는 방법이 있다. 하지만, 당연하게도 CIM 칩과 같이 엣지(edge)단에서 쓰이게 되는 특성에는 큰 size는 경쟁력을 가질 수 없다.
  • 일반적으로 모든 컴퓨팅 플랫폼에서 범용적으로 쓰이는 CPU와 GPU 등에 대한 호환성도 생각하지 않을 수 없다. 추론 과정을 가속하기 위해서 쓰이는 CIM 칩이, variation이 거의 0에 수렴하는 CPU와 GPU 등과 함께 쓰일 때에 중간에 variation을 조절하기 위한 조치가 포함되면 가속의 메리트가 떨어지게 된다.

   꼭 위의 3가지가 아니더라도, variation이 발생시키는 cost는 불가피하고 그 영향력이 굉장히 클 수밖에 없다.


 

 

Future


   심각한 variation 문제로 인해서, 최근에 CIM 연구들은 analog domain으로부터 mixed domain 혹은 digital domain으로 방향이 바뀌고 있다. 2017년부터 시작해서 2020년 정도까지 Prof. Meng-Fan Chang, Mingoo Seok, Jaesun Seo, 그리고 Shimeng Yu를 주축으로 해당 연구팀에서 analog domain CIM 연구들이 쏟아져 나왔지만 그 추세가 점점 all-digital이거나 analog의 역할은 최소화하고 digital logic을 도입하는 것으로 바뀌고 있다.

   삼성전자나 SK 하이닉스에서 ISSCC에 발표했던 AI 가속 메모리 칩들 역시 analog domain이 아닌, digital logic 기반의 아키텍쳐를 가지고 있다. 이처럼, analog domain의 CIM은 아무래도 그 전망이 불과 2-3년만에 크게 어두워졌다고 할 수 있다. 더불어 NPU가 자체적으로 서버 시장에도 진출할 수 있다는 가능성이 열리면서 아무래도 아래의 인터뷰에서 언급된 것처럼 CIM과 같은 ASIC 기반의 가속기 시장은 그 위상이 저물지 않을까 하는 게 내 개인적인 생각이다.

Watch it from 08:50
"So far anybody that's hardwired aspects of existing architectures in their solution, hasn't really lasted for more than a year or two like before becoming somewhat irrelevant. (...) Where people thought that they could hardwire some interesting functionality and really forego software and make it more specialized for the efficiencies that it brings, and it was wrong every tine."
Ljubisa Bajic, CEO @ Tenstorrent

 

 

References

  1. D. Kim, et al., "An Overview of Processing-in-Memory Circuits for Artificial Intelligence and Machine Learning," in IEEE Journal on Emerging and Selected Topics in Circuits and Systems, vol. 12, no. 2, pp. 338-353, June 2022.
  2. https://signoffsemiconductors.com/pvt-rc-variation-ocv/
  3. S. K. Gonugondla, et al., "Fundamental Limits on Energy-Delay-Accuracy of In-Memory Architectures in Inference Applications," in arXiv, Dec 2020.

 

 

댓글