1P by neo 3달전 | favorite | 댓글 1개
  • Google의 첫 번째 TPU(Tensor Processing Unit) v1은 딥 러닝을 활용한 새로운 서비스의 기회와 필요한 하드웨어의 규모 및 비용을 고려하여 10배의 비용-성능 이점을 제공하는 ASIC(Application Specific Integrated Circuit) 개발을 목표로 함.
  • TPU는 텐서 연산을 가속화하기 위해 설계되었으며, 텐서는 벡터, 스칼라, 다른 텐서 간의 다차원 배열 관계를 매핑하는 연산을 의미함.
  • 행렬 곱셈은 신경망의 핵심 연산으로, 입력 벡터와 가중치 행렬을 곱한 후 활성화 함수를 적용하여 은닉층과 출력층을 계산하는 데 사용됨.

Google의 첫 번째 텐서 처리 장치: 기원

  • TPU v1 프로젝트는 2013년 말에 시작되어 15개월 만에 개발되었으며, 이는 신경망 가속기에 관심이 있는 사람들에게 흥미로운 주제임.
  • TPU v1의 개발 배경과 목표는 이전 포스트에서 다루었으며, 이번 포스트에서는 TPU v1의 구조와 성능에 대해 더 자세히 살펴봄.

구조와 성능

  • TPU v1의 설계는 1978년 H.T Kung과 Charles E. Leiserson의 논문 "Systolic Arrays (for VLSI)"에서 제시된 아키텍처를 기반으로 함.
  • Systolic array는 프로세서 네트워크로 구성되어 주기적으로 데이터를 계산하고 시스템을 통해 전달함으로써 효율적인 행렬 곱셈을 수행함.
  • TPU v1의 systolic array는 256x256의 곱셈/누적 유닛으로 구성되어 있으며, 중간 결과를 메인 메모리에 저장하고 가져올 필요 없이 자동으로 필요한 결과를 생성함.

Multiply/Accumulate Units (MACs)

  • TPU v1은 8비트 x 8비트 정수 곱셈을 수행하며, 부동 소수점 계산보다 더 적은 다이 면적을 필요로 하는 양자화를 활용함.

명령어 세트

  • TPU v1은 약 20개의 복잡한 명령어 세트(CISC)를 사용하며, 이 명령어들은 호스트 컴퓨터에서 PCIe 인터페이스를 통해 전송됨.
  • 주요 명령어에는 호스트 메모리 읽기, 가중치 읽기, 행렬 곱셈/합성, 활성화, 호스트 메모리 쓰기 등이 포함됨.

소프트웨어

  • TPU v1의 하드웨어는 Tensorflow와 같은 소프트웨어 스택을 지원하여 CPU 및 GPU에서 개발된 애플리케이션을 TPU로 빠르게 이식할 수 있도록 함.

제조 및 다이

  • TPU v1은 TSMC의 28nm 공정을 사용하여 제작되었으며, 다이 면적은 Google이 데이터 센터에서 사용하던 Intel Haswell CPU 및 Nvidia K80 GPU 칩의 절반 미만임.

성능

  • TPU v1은 추론을 더 효율적으로 만들기 위해 설계되었으며, Nvidia K80 GPU 및 Haswell CPU에 비해 약 15배에서 30배 빠른 추론 속도와 에너지 효율성을 제공함.

교훈

  • TPU v1의 맞춤형 아키텍처는 현대의 CPU 및 GPU보다 훨씬 더 나은 성능과 에너지 사용을 가능하게 함.
  • TPU v1은 추론을 빠르고 전력 효율적으로 만드는 것을 목표로 설계되었으며, 훈련을 위한 설계는 아니었음.

GN⁺의 의견

  • TPU v1의 개발은 구글이 대규모 데이터 센터에서의 추론 작업을 최적화하기 위해 특수 목적 하드웨어로 전환하는 중요한 전환점을 나타냄.
  • Systolic array 아키텍처는 데이터 흐름을 최적화하여 메모리 접근을 최소화하고, 이는 에너지 효율성과 성능 향상에 기여함.
  • TPU v1의 성공은 이후에 다양한 버전의 TPU 개발로 이어지며, AI 추론 하드웨어의 발전에 중요한 역할을 함.
  • TPU와 유사한 기능을 제공하는 다른 제품으로는 Nvidia의 Tensor Core를 탑재한 GPU, Intel의 Nervana NNP, 그리고 Amazon의 Inferentia가 있음.
  • TPU 기술을 도입할 때는 기존 인프라와의 호환성, 소프트웨어 스택, 그리고 특정 애플리케이션에 대한 최적화 수준을 고려해야 함. TPU를 선택함으로써 얻을 수 있는 이점은 추론 작업의 속도 향상과 에너지 효율성이지만, 특정 모델이나 데이터 유형에 대한 최적화가 필요할 수 있음.
Hacker News 의견
  • Groq CEO Jonathon Ross가 팟캐스트 인터뷰에서 구글에서 TPU의 원형을 만든 과정에 대해 이야기함. 처음에는 인접 팀의 추론 속도 문제를 해결하기 위해 자신의 20% 시간에 FPGA를 만들었음. Jeff Dean이 수학적 계산을 한 후 ASIC으로 전환하기로 결정함. 현재 Google은 TPU 팀을 독립 회사로 분사해야 한다는 의견이 있음. TPU는 NVidia에 대한 유일한 신뢰할 수 있는 경쟁자이며, 소프트웨어 지원은 NVidia에 이어 두 번째로 좋음.
  • Google이 TPU를 발명하고 Google Research가 LLM에 대한 주요 논문을 발표했음에도 NVidia와 AI 스타트업들이 시장 가치의 대부분을 차지하고 있는 상황에 대한 의문 제기.
  • Google 직원이 TPU v5를 확인해볼 것을 권장함. PyTorch/JAX를 지원하여 TensorFlow만 사용할 때보다 훨씬 사용하기 쉬움.
  • 한 기사가 실리콘을 통해 추상적인 부분들을 어떻게 연결하는지 잘 설명함. CISC 명령어가 LLM 추론 단계에 어떻게 매핑되는지 보는 것이 흥미로움.
  • Google이 2nm EUV 기술에 진출하고 2nm 이하로 나아가야 한다는 의견. ASML이 제공하는 전자 리소그래피 기술을 확보하면 매우 강력한 결과를 얻을 수 있음. Google X의 대담한 프로젝트가 될 수 있으며, TPU가 정말 좋다면 자체 팹과 기술을 갖춘 비즈니스로 좋은 기회가 될 수 있음.
  • 현재 TPU의 이름이 어떤 해양 생물인지에 대한 질문.
  • OP(Original Poster)의 인용: "TPU v1은 대략 20개의 명령어만을 가진 CISC 설계를 사용함." 이에 대한 반응으로 CISC/RISC가 연구 프로그램에서 마케팅 용어에 이르기까지 다양한 단계를 거쳤으며, 이제는 의미 없는 소리가 되었다는 풍자적 의견.
  • TPU 하드웨어가 실제로는 벡터와 행렬 연산만 수행하는데, 왜 "텐서"라는 용어를 사용하는지 이해하지 못한다는 댓글.
  • [삭제된 댓글]
  • [삭제된 댓글]