[반도체 스타트업 논문 리뷰 2] FuriosaAI
이번에 스터디할 논문은 "TCP: A Tensor Contraction Processor for AI Workloads [1]"로 퓨리오사에이아이에서 ISCA 2024에 Publish 한 논문이다. 퓨리오사가 출시한 1세대 NPU는 비전인식에 최적화된 Chip이라고 볼 수 있고, 이번에 내놓는 2세대 NPU는 조금 더 범용적인 application에 적용이 가능하다. Tensor Contraction Processor (TCP)로 기술적 Concept을 함축한 이 칩은 Tensor Contraction (축소) 과정에서 '병렬화'와 'Data Locality'를 이용하며, Compute Unit들의 Data reuse (속도가 느린 메모리에 자주 접근하는 것을 최소화하기 위해, 자주 쓰는 데이터는 빠른 메모리에 놓는다.)를 최대화한다. 이를 위해, Circuit switch 방식의 Fetch Network를 구성하여 Compute Unit 간의 Data reuse를 한다. 여러 Contraction Engine에 대한 input broadcast와 input-buffer 기반의 reuse을 활용하여 Contraction 과정에서 reuse를 더 활성화한다. Abstraction의 글을 보면, 언뜻 와닿지 않아서 조금 더 논문을 읽어보기로 했다.
이 논문에서는 대부분의 AI 가속기들이 HW 가속을 이용한 행렬곱 가속화에만 초점을 맞추지만, AI에 있어 가장 중요한 동작은 Tensor Contraction임을 지적하면서 글을 시작한다. (행렬곱 (mk, kn) 또한 k 차원을 줄이는 Tensor Contraction (m, n)의 대표적인 예시다.) 행렬곱 unit과 Tensor Contraction을 Mapping 시키면, unit size가 작을 때 (작은 데이터를 다룰 때), 병렬화 및 Data Reuse가 비효율적으로 발생하며, 대부분 Spatial Accelerator (많고 작은 Processing Element (PE)가 Local Memory를 장착하고, Network-on-Chip (NoC)로 연결되어 있음.)가 NoC-aware 하면서 병렬화를 극대화하기 힘들다고 지적한다. 또한, Tensor Shape도 매번 달라지기 때문에, 연산 과정에서 효율적으로 unit들을 컨트롤하는 것도 어렵다. 즉, Abstraction을 통해 더 자연스러운 Tensor 연산이 가능하도록 설계했다.
이를 위해, TCP는 조금 더 큰 사이즈로 PE를 나누고, 각 PE가 여러 Slice로 나눠질 수 있도록 설계하고, Fetch Network의 Setup에 따라, 큰 하나의 큰 PE로 연산할 수도 있고, 작고 독립적인 Compute Unit 여러 개를 병렬로 연산할 수 있게 설계되었다. 즉, Unit size가 다양하더라도 Flexible 하게 대응할 수 있다는 점을 강조한다. Section을 나눠서 Chip-level에서, Micro-Architecture, Software stack, Chip 개발을 하면서 얻은 lesson까지 자세하게 기술하고 있다.
기본적인 Chip의 구조는 8개의 PE로 되어있으며, 각각의 PE는 독립적으로 연산할 수 있으며, 4개의 PE를 묶어 하나의 큰 Device로 구동될 수 있다. NoC가 PE간의 Contetion 없게 데이터 전송을 담당하고, LLM 같이 큰 모델을 Serving 해야 할 때는, 여러 TCP Chip과 연동되어 사용할 수 있고, PCIe Gen5와 P2P 통신을 지원한다.
각 PE는 8개의 Slice로 구성되어 있으며, 각 Slice가 SRAM, Fetch, Opreation, Commit unit을 가지고 있다. SRAM에서 나온 데이터는 Fetch Network를 통해 어디로 가야 할지 정해져서 Operation Unit으로 들어간다. Fetch Unit의 Fetch Sequencer는 Tensor Shape과 특정 order에 의해 주소를 생성하고, Operation Unit으로 넘어간다. Compiler가 순서를 다 정해주는 Circuit-switch 방식이기 때문에, Network Congestion은 없고, HW 복잡도를 줄이면서 Throughput을 높게 유지할 수 있다. 단, Fetch의 Tatic이 올바르게 설계되지 않으면, Latency 등 성능에 큰 영향이 있겠다는 생각이 든다.
Operation Unit은 Contraction Engine (CE), Vector Engine (VE), Transpose Engine (TE)로 나눠져 있으며, CE에서 Element-wise 곱셈을 하는 Dot-product Engine (DPE) 등을 거쳐, VE에서 Element-wise Function, Non-linear Function 등을 수행하고, TE는 Transpose 기능을 수행한다. 각각의 자세한 Action과 이를 수행하는 SW Stack까지 논문에 자세하게 기술되어 있고, 논문에서는 독자들의 이해를 위해, LLAMA-2 7B MODEL를 예시로 들어 설명해 준다.
TCP는 LLAMA 모델을 돌리면서 엔비디아의 H100L, L40s GPU와 비교 실험을 했다. TCP가 주요 지표로 내세운 것은 TDP로, TDP가 낮다는 것은 성능 대비하여 전력소모가 적다는 것을 의미한다. 실험의 결과표를 보면, TDP는 TCP가 H100와 L40s보다 낮은 것을 볼 때, 전력소모는 상대적으로 더 적다고 생각할 수 있다. 단, Latency는 TCP가 H100보다 높고, Throughput는 H100보다 낮기 때문에, H100보다 모든 성능에서 앞선다고 할 수는 없다. 둘 다 TSMC 팹을 사용했고, TCP가 5 나노 공정, H100이 4 나노 공정으로 조금 더 선단 공정을 사용하였다는 점을 감안할 때, TCP도 4nm 공정으로 가면, 전체적인 성능이 더 올라갈 수도 있지 않을까 싶다. 하지만 더 선단 공정을 사용하는 것은 비용도 급격하게 올라가기 때문에 여유자금이 많지 않은 퓨리오사 입장에서 당장은 쉽지 않은 옵션으로 보인다.
Conclusion
FuriosaAI가 이번에 발표한 TCP는 Tensor Contraction에서 Data reuse를 최대화하는 방법을 통해, 성능 대비 전력소모를 최소화할 수 있었다. AI의 전력소모가 큰 이슈로 대두되고 있는 상황에서 전력소모가 적은 Chip은 큰 강점을 가지고 있는 것으로 생각된다. Chip이 상용화되는 8월, Hotchips 2024 [2]에 최신 성과를 공개할 예정이라 하니 더 기대가 모아진다.
단, CSP (클라우드 업체) 입장에서 엔비디아 칩 (e.g., H100)이나 AMD 칩이 아닌 TCP를 써야겠다는 이유를 위의 지표들만으로 분석하기는 어려울 것 같다. 가격 측면에서 보면, H100의 4nm 공정과 비교하여, 5nm 공정을 사용하였기 때문에, Chip의 생산가격은 조금 더 내려갈 수도 있지만, Chip-to-Chip에 대한 가격 등의 비교도 들어가야할 것 같다. 어떤 IP를 얼마나 구매해서 사용했는지, 어떤 공정 기술을 사용해서, 수율이 얼마나 나오는지, 생산량에 따른 discount 등도 Chip 생산가격과 판매 가격에 영향을 미칠 수 있을 것 같다. 또한, CUDA 등 개발 플랫폼을 얼마나 지원하느냐도 영향을 미치고, TCP가 H100와 비교하 TDP가 낮다는 점은 장점이지만, Latency나 Throughput에 따라서 시스템을 운용하기 위한 TCP와 H100의 개수가 달라질 수 있기 때문에, 초기 투입비용과 운용비용 등 모두를 고려해야 하는 CSP 입장에서 안정성과 생태계가 어느 정도 확보된 H100 대비하여 TCP를 채택할지는 고민이 필요해 보인다. 정리하면, 전력소모는 적은 것을 확인하였지만, Capex 및 Opex의 관점에서의 비교는 별도로 필요해보인다.
H100의 공급 이슈가 생기고, 클라우드 업체들 입장에서는 전략적으로 일부 물량을 TCP로 채택할 수도 있을 것으로 보인다. 엔비디아는 최신 GPU인 블랙웰도 출시하고 (수율 이슈는 있지만), 막대한 자본을 기반으로 계속 새로운 칩을 개발하고 있다. 따라서, 스타트업의 입장에서 사업이 본 궤도에 올라갈 때까지 경쟁 속도를 따라 갈 정도의 선단 공정 팹 비용을 충당할 수 있을지는 미지수다. 단, 실제 메이저 업체들의 Qual-test를 통과하고, 데이터센터 向 PO가 나오고, 매출이 올라오기까지는 조금 시간이 필요하지 않을까 생각한다. 이는 퓨리오사를 비롯하여 AI반도체 팹리스들이 모두 겪고 있는 문제점이지만, 앞으로 2년 내에 대부분의 업체들의 상장이 추진되고 있는 만큼 앞으로의 행보가 궁금해진다.
Reference
[1] KIM, Hanjoon, et al. TCP: A Tensor Contraction Processor for AI Workloads Industrial Product. In: 2024 ACM/IEEE 51st Annual International Symposium on Computer Architecture (ISCA). IEEE, 2024. p. 890-902.
Hot Chips 2024
A Symposium on High Performance Chips
hotchips.org
[3] Furiosa Targets LLM Inference With Second-Gen Chip - EE Times
Furiosa Targets LLM Inference With Second-Gen Chip - EE Times
South Korean startup Furiosa unveils its tensor contraction processor concept, with initial testing showing 2-3000 tokens/s throughput performance.
www.eetimes.com