Launch HN: Tensil (YC S19) – 오픈 소스 ML 가속기 (ML Accelerators)
요약
Tensil은 누구나 사용할 수 있는 무료 오픈 소스 ML 가속기를 설계하는 회사입니다. 이 가속기는 임베디드 및 엣지(Edge) FPGA 플랫폼에서 ML 추론을 수행하며, 기존 GPU/CPU 대비 와트당 성능 우위를 제공합니다. Tensil은 RTL 생성기, 모델 컴파일러, 드라이버로 구성된 도구 세트를 통해 사용자가 맞춤형 가속기를 쉽게 구축하고 다양한 ML 모델을 배포할 수 있도록 지원합니다.
핵심 포인트
- Tensil은 오픈 소스 기반의 ML 가속기를 제공하여 중소기업, 학생, 학계 등에게 접근성을 높입니다.
- 맞춤형 가속기는 기존 GPU/CPU 대비 와트당 성능(Performance per watt)이 뛰어나며, 엣지 디바이스에서의 ML 추론에 최적화되어 있습니다.
- Tensil의 도구 세트는 RTL 생성기, 모델 컴파일러, 드라이버로 구성되어 맞춤형 가속기 설계부터 모델 배포까지 전 과정을 지원합니다.
- 가속기는 시스톨릭 어레이(Systolic array)를 중심으로 하며 CNN에 최적화되어 있지만, 오픈 소스 방식을 채택하여 높은 커스터마이징 유연성을 제공합니다.
- Tensil은 양자화(Quantization) 없이도 풀 사이즈의 최첨단 모델을 소형 에지 FPGA에서 구동할 수 있는 것이 강점입니다.
안녕하세요 HN! 저는 Tensil (https://www.tensil.ai/)의 공동 창업자인 Tom입니다. 저희는 누구나 사용할 수 있는 무료 오픈 소스 머신러닝 (ML) 가속기를 설계합니다.
머신러닝 추론 (Inference) 가속기는 ML 모델에 사용되는 연산들을 매우 빠르고 효율적으로 실행할 수 있는 특화된 칩입니다. 이는 ASIC (주문형 반도체) 또는 FPGA (프로그래밍 가능 게이트 어레이)가 될 수 있으며, ASIC은 더 나은 성능을 제공하지만 FPGA는 더 높은 유연성을 제공합니다.
맞춤형 가속기는 기존의 GPU 및 CPU 옵션보다 와트당 성능 (Performance per watt) 면에서 극적으로 더 나은 성능을 제공합니다. Google과 Facebook 같은 거대 기업들은 훈련 (Training) 및 추론 (Inference) 비용을 낮추기 위해 이들을 사용합니다. 하지만 그 외의 모든 이들은 소외되어 왔습니다. 중소기업, 학생 및 학계, 취미 활동가 및 제작자들은 현재 맞춤형 ML 하드웨어를 확보할 기회가 없습니다. 저희는 임베디드 및 엣지 (Edge) FPGA 플랫폼에서의 ML 추론을 시작으로 이를 변화시키고자 합니다. 저희의 꿈은 저희의 가속기가 이전에는 단순히 불가능했던 새로운 애플리케이션을 사람들이 만들 수 있도록 돕는 것입니다.
저희는 AI의 발전이 컴퓨팅 하드웨어의 발전과 병행된다고 믿습니다. 지능형 기계와 공존하는 세상에서 살기를 희망하는 소프트웨어 및 ML 엔지니어로서, 저희는 왜 그러한 하드웨어 발전이 그렇게 오래 걸리는지 알고 싶었습니다! 저희는 디지털 설계 (Digital design)를 독학했고, 차세대 하드웨어는 엣지, 즉 클라우드가 아닌 사용자의 기기에서 최첨단 ML 모델을 실행할 수 있도록 정밀하게 맞춤화되어야 한다는 것을 점진적으로 깨달았습니다. CPU 세계에서는 RISC-V RocketChip 구현이 맞춤형 컴퓨팅 하드웨어의 가치를 입증했습니다. 문제는 아무도 ML 가속을 위한 그런 종류의 역량을 구축하고 있지 않았다는 점입니다. 저희는 맞춤형 ML 가속기를 구축하고 사람들이 이를 통해 어떤 종류의 애플리케이션을 만들 수 있는지 확인하기 위해 Tensil을 시작했습니다.
Tensil은 맞춤형 가속기 아키텍처 (Accelerator Architectures)에서 ML 모델을 실행하기 위한 도구 세트입니다. 여기에는 RTL 생성기 (RTL generator), 모델 컴파일러 (Model compiler), 그리고 일련의 드라이버 (Drivers)가 포함됩니다. 이를 통해 맞춤형 가속기를 생성하고, 해당 가속기를 대상으로 ML 모델을 컴파일한 다음, 컴파일된 모델을 배포하고 실행할 수 있습니다. 이를 수행하는 방법과 FPGA 플랫폼에서 실행하는 방법을 확인하려면 https://www.tensil.ai/docs/tutorials/resnet20-ultra96v2/ 에 있는 튜토리얼을 참조하십시오.
저희는 Chisel로 가속기 생성기를 개발한 다음, Scala로 파라미터화 가능한 그래프 컴파일러 (Parameterizable graph compiler)를 작성했습니다. (재미있는 사실: 소프트웨어와 달리, 형식 검증 (Formal verification)은 디지털 회로를 테스트하는 실제로 매우 실행 가능한 방법이며, 저희는 이 기술을 매우 유용하게 사용했습니다.) 가속기 생성기는 원하는 아키텍처 파라미터를 입력받아 표준 EDA 도구를 사용하여 합성 (Synthesize)할 수 있는 가속기 인스턴스를 생성합니다. 컴파일러는 가속기의 명령어 세트 (Instruction set)를 사용하여 ML 모델을 구현하며, 가속기의 가능한 모든 인스턴스를 대상으로 할 수 있습니다.
현재 가속기 아키텍처는 잘 알려진 ML ASIC과 유사하게 시스톨릭 어레이 (Systolic array)를 중심으로 구성되어 있습니다. 저희 문서에서 아키텍처 사양을 확인하실 수 있습니다. 컴파일러는 매우 다양한 작업을 수행하지만 합성곱 신경망 (Convolutional Neural Networks, CNN)에 최적화되어 있습니다. 또한 지원되는 각 플랫폼을 위한 드라이버도 있으며, 현재는 베어메탈 (Bare-metal) 또는 호스트 OS (Host OS)에서 실행되는 FPGA로 제한됩니다.
드라이버에 ML 모델 실행을 명령하면, 드라이버는 입력 데이터를 설정한 다음 컴파일된 모델을 가속기로 스트리밍합니다. 가속기는 실행 중에 독립적으로 호스트 메모리 (Host memory)에 접근합니다. 가속기 작업이 완료되면 드라이버에 알림이 전송되며, 드라이버는 호스트 메모리의 사전 할당된 영역에서 출력을 찾습니다.
우리는 다른 가속기 옵션들과 어떻게 다를까요? 시중에 많은 ML ASIC (Application-Specific Integrated Circuit)들이 있지만, 이들은 모두 단일 아키텍처에 종속되어 있는 반면, 우리는 기술의 핵심에 커스터마이징 (Customization)을 두고 있습니다. 이는 성능/가격/전력(Watts)/정확도 사이에서 더 나은 트레이드오프 (Trade-off)를 제공할 가능성을 가집니다. 다른 FPGA 옵션들과 비교했을 때, Xilinx DPU는 훌륭하지만 폐쇄 소스이며 모델이 조금이라도 커스터마이징되어 있다면 다루기 어려울 수 있습니다. 우리는 오픈 소스 (Open source) 방식을 채택함으로써 가능한 가장 넓은 범위의 모델을 지원하는 것을 목표로 합니다. FINN은 매우 멋진 프로젝트이지만, 작동을 위해 모델에 큰 변경을 가해야 하며, 일반적으로 에지 배포 (Edge deployment)에 부적합한 대형 FPGA를 필요로 합니다. 우리는 어떤 모델과도 즉시 작동하며 (양자화 (Quantization)가 필요 없음), 소형 에지 FPGA에서 작동합니다. 임베디드 시스템의 경우, tflite/tfmicro는 극도로 제한된 에지 장치에서 매우 작은 ML 모델을 배포하는 데 훌륭하지만, 달성할 수 있는 성능과 정확도 측면에서 한계가 있습니다. 우리의 도구는 높은 정확도와 속도로 풀 사이즈의 최첨단 (State-of-the-art) 모델을 다룰 수 있게 해줍니다.
현재 우리는 에지 및 임베디드 ML 추론 (Inference) 사용 사례에 집중하고 있습니다. 만약 여러분이 주요 프레임워크 (TensorFlow/Keras, PyTorch 등)를 사용하여 소형 임베디드 또는 에지 장치에서 ML 모델을 실행한다면, 지금 바로 Tensil이 여러분에게 적합할 것입니다. 만약 주로 데이터 센터에서 추론을 실행하거나 많은 양의 학습 가속화 (Training acceleration)가 필요하다면, 저희에게 연락해 주세요. 저희의 로드맵 (Roadmap)을 안내해 드리겠습니다. 현재 우리는 에지 FPGA 플랫폼에서의 CNN 추론에 집중하고 있지만, 우리의 목표는 학습과 추론 모두를 위해 다양한 패브릭 (Fabrics) 상에서 모든 모델 아키텍처를 지원하는 것입니다.
핵심 기술은 항상 무료이며 오픈 소스 (Open Source)로 제공될 것이지만, Gitlab과 유사하게 이중 라이선스 (Dual License) 체제 하에 추가적인 엔터프라이즈 기능을 갖춘 “pro” 버전을 제공할 계획입니다. 또한, 저희 도구들을 호스팅된 환경에서 실행할 수 있는 클라우드 서비스도 개발 중이며, 이를 통해 가능한 모든 Tensil 아키텍처를 검색하여 귀하의 모델에 가장 적합한 FPGA를 자동으로 찾을 수 있게 될 것입니다.
더 자세히 알고 싶으시다면, 저희 문서 (https://www.tensil.ai/docs), Github 리포지토리 (https://github.com/tensil-ai/tensil)를 확인하시고 Discord (https://discord.gg/TSw34H3PXr)에 참여해 주세요. 언제든 편하게 연락해 주시기 바랍니다 (이메일은 프로필에 있습니다).
저희는 여러분이 놀라운 새로운 ML 기반 애플리케이션을 개발할 수 있도록 돕기 위해 여기 있습니다. 따라서 CPU, GPU 또는 기타 특화된 플랫폼 등 ML 컴퓨팅 하드웨어 (ML Compute Hardware)를 사용하며 겪었던 경험에 대해 듣고 싶습니다. 사용 가능한 하드웨어에서 모델을 실행하기 위해 ML 모델을 크게 변경해야 했던 적이 있나요? 하드웨어 제조사들이 추가해주기를 바라는 멋진 기능이나 UX 개선 사항이 있나요? 본인의 애플리케이션에 추가하고 싶지만 엣지 디바이스 (Edge Device)에서 어떻게 구현해야 할지 모르는 기능이 있나요? 여러분의 의견을 기다리겠습니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Chip/GPU의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기