Skip to content

ASIC

ASIC(Application-Specific Integrated Circuit)은 특정 용도에 맞춰 설계된 반도체 칩이다. 범용 프로세서(CPU)나 GPU와 달리 하나의 작업만 수행하도록 회로를 고정하기 때문에, 해당 작업에서는 전력 효율과 성능이 압도적으로 높다.

GPU와 비교

GPU는 원래 그래픽 렌더링용이었지만 수천 개의 코어를 활용한 병렬 연산이 딥러닝 학습에 적합해서 AI 가속기로 자리 잡았다. 그런데 GPU는 여전히 범용 연산을 지원하는 프로그래머블 칩이다. 행렬곱 외에도 그래픽, 시뮬레이션, 암호화 등 다양한 워크로드를 돌릴 수 있고, 그만큼 회로에 낭비가 있다.

ASIC은 이 낭비를 없앤다. 예를 들어 행렬곱과 컨볼루션만 하면 되는 추론 칩이라면, 분기 예측기나 범용 ALU 같은 회로를 아예 빼버리고 그 트랜지스터를 전부 MAC(Multiply-Accumulate) 유닛에 쏟는다. 결과적으로 같은 다이 면적에서 훨씬 많은 연산을 훨씬 적은 전력으로 처리할 수 있다.

  • GPU: 프로그래머블. 다양한 워크로드 지원. CUDA 등 소프트웨어 생태계가 성숙. 대신 특정 연산에서는 ASIC 대비 전력 효율이 낮다.
  • ASIC: 고정 기능. 설계 목적 외의 연산은 불가능하거나 극도로 비효율적. 대신 목표 연산에서는 성능/와트가 최고 수준.

AI 추론용 ASIC

딥러닝 추론은 ASIC이 특히 잘 맞는 영역이다. 학습과 달리 모델 구조가 고정되어 있고, 필요한 연산(행렬곱, 활성화 함수, 정규화)이 예측 가능하다.

  • Google TPU: 가장 널리 알려진 AI ASIC이다. Systolic Array 구조로 행렬곱을 처리한다. v1은 추론 전용이었고, v2부터 학습도 지원한다. Cloud TPU로 GCP에서 사용 가능하다.
  • AWS Inferentia: Amazon이 자체 설계한 추론 전용 칩. EC2 inf1/inf2 인스턴스에서 제공된다. NeuronCore라는 자체 연산 유닛을 사용하며, AWS Neuron SDK로 모델을 컴파일해서 올린다.
  • AWS Trainium: Inferentia의 학습 버전. trn1 인스턴스에서 사용한다.

TPU의 Systolic Array는 데이터가 배열을 따라 한 방향으로 흘러가면서 각 셀에서 곱셈-누적 연산을 수행하는 구조다. 데이터를 한 번 로드하면 여러 연산에 재사용되므로 메모리 대역폭 병목을 줄일 수 있다. GPU의 CUDA 코어가 각각 독립적으로 메모리에 접근하는 것과 대조적이다.

채굴 ASIC

비트코인 채굴은 SHA-256 해시를 반복 계산해서 target 이하의 해시값을 내는 nonce를 찾는 작업이다. 블록 헤더 80바이트에 nonce 4바이트를 바꿔가며 SHA-256을 두 번(double SHA-256) 돌리는 게 전부라서, 분기도 없고 메모리 접근도 거의 없다. ASIC으로 만들기에 이상적인 워크로드다.

초기에는 CPU로 채굴했고, GPU가 SHA-256의 32비트 정수 연산을 수천 코어에서 병렬로 돌리면서 CPU를 밀어냈다. 그 뒤 FPGA를 거쳐 2013년에 SHA-256 전용 ASIC이 등장하면서 거의 주류가 되었다.

비트코인 채굴을 위해선 SHA-256을 계산할 수 있어야 한다. SHA-256은 64라운드의 압축 함수로 구성되며 각 라운드는 32비트 덧셈, 비트 회전(ROTR), 논리 연산(AND, XOR, NOT)의 조합이므로, 이 연산들을 그대로 게이트 레벨로 펼치면 하나의 해싱 파이프라인이 된다. 채굴 ASIC은 이 파이프라인을 칩 하나에 수백 개 넣는다.

64라운드를 한 클럭에 다 처리하는 건 회로가 너무 커지므로, 보통 라운드를 여러 스테이지로 나눠서 파이프라이닝한다. 예를 들어 한 스테이지가 4라운드를 처리하면 16스테이지 파이프라인이 되고, 매 클럭마다 새 nonce를 투입할 수 있다. 파이프라인이 가득 차면 클럭당 하나의 해시가 나오는 셈이다. 여기에 코어 수를 곱하면 칩 전체의 해시레이트가 된다.

실제로 nonce 4바이트(2^32 ≈ 43억)는 현대 ASIC 기준으로 몇 초면 소진된다. 그래서 블록 헤더의 다른 필드(extraNonce, 타임스탬프 등)를 변경해가며 탐색 공간을 넓힌다. ASIC 자체는 이런 로직 없이 nonce만 순회하고, 상위 컨트롤러가 작업 분배를 담당한다.

전력 효율

채굴 ASIC에서 가장 중요한 지표는 J/TH(테라해시당 줄)다. 해시레이트가 아무리 높아도 전기료를 감당 못 하면 의미가 없기 때문이다. 공정 미세화가 효율에 직접 영향을 준다. 28nm 시절 Antminer S5는 ~590 J/TH였고, 5nm 공정의 최신 기종은 15 J/TH 근처까지 내려왔다. 40배 가까운 차이다.

전압을 낮추는 것도 핵심이다. 동적 전력 소모는 CV²f에 비례하므로 전압을 10% 줄이면 전력이 ~19% 줄어든다. 채굴 ASIC은 동작 전압을 극단적으로 낮추고, 그로 인해 일부 코어에서 오류가 나는 건 감수한다. 해시 결과가 틀려도 target을 못 맞출 뿐이라 시스템 안정성에는 영향이 없다. 이런 트레이드오프는 범용 칩에서는 허용되지 않지만, 채굴에서는 합리적인 선택이다.

ASIC 저항

비트코인에서 ASIC이 채굴을 지배하면서 해시파워가 소수 제조사에 집중됐고, 이에 대응해 ASIC을 만들기 어려운 알고리즘들이 나왔다. 핵심 아이디어는 연산이 아닌 메모리 대역폭을 병목으로 만드는 것이다. ASIC은 연산 유닛을 집적하는 데는 강하지만, DRAM 대역폭은 칩 외부의 물리적 제약(핀 수, 패키지)에 묶이기 때문이다.

이더리움의 Ethash가 대표적이다. 수 GB 크기의 DAG를 메모리에 올려놓고, 해시 계산 도중 DAG에서 128바이트 청크를 64번 랜덤 읽기한다. 하나의 해시를 완성하려면 약 8KB를 읽어야 하고, 읽기 패턴이 이전 읽기 결과에 의존하므로(sequentially dependent) 프리페치가 안 된다. 결국 메모리 latency × 64가 해시 하나의 하한이 된다. 연산 코어를 아무리 많이 넣어도 메모리가 데이터를 못 내주면 놀게 되니, ASIC의 이점이 줄어든다.

모네로의 RandomX는 더 극단적인 접근이다. 랜덤하게 생성된 프로그램을 VM 위에서 실행하는데, 이 프로그램이 정수·부동소수점 연산, 분기, 2MB scratchpad에 대한 랜덤 접근을 골고루 사용한다. 2MB는 L3 캐시에 들어가는 크기로 의도적으로 설정한 것이다. 결국 ASIC을 만들려면 CPU의 ALU, FPU, 분기 예측, 캐시를 다 구현해야 하니 범용 CPU를 다시 만드는 꼴이 된다.

그렇다고 ASIC을 영원히 막을 수 있는 건 아니다. memory-hard 알고리즘이라도 HBM을 달거나 패키지 내에 SRAM을 대량으로 넣는 식으로 우회할 수 있고, Ethash용 ASIC도 실제로 등장했다. 이더리움은 결국 PoS로 전환해서 채굴 자체를 없앴다.

FPGA와의 차이

ASIC과 자주 비교되는 것이 FPGA(Field-Programmable Gate Array)다. FPGA는 제조 후에도 회로를 재구성할 수 있는 칩이다.

  • FPGA: 비트스트림을 로드해서 회로를 바꿀 수 있다. 프로토타이핑이나 소량 생산에 유리. 대신 재구성 가능한 로직 블록을 사용하므로 같은 기능의 ASIC보다 면적과 전력 효율이 떨어진다.
  • ASIC: 한번 제조하면 변경 불가. 초기 설계·마스크 비용이 수천만 달러 단위로 높다. 대신 대량 생산 시 칩당 단가가 낮고 성능이 최적.

FPGA는 ASIC을 만들기 전에 설계를 검증하는 용도로도 쓰인다. 알고리즘이 충분히 안정되면 ASIC으로 전환해서 양산하는 흐름이 일반적이다. Microsoft의 Brainwave 프로젝트처럼 FPGA 자체를 프로덕션 추론 가속기로 쓰는 사례도 있지만, 대규모 배포에서는 ASIC 쪽이 비용 효율이 높다.

설계 트레이드오프

ASIC을 만드는 건 비싸고 느리다. 7nm 공정 기준 마스크 비용만 수천만 달러이고, 테이프아웃(설계 확정)에서 샘플 칩까지 6개월 이상 걸린다. 설계 오류가 있으면 마스크를 다시 만들어야 하므로 리스크가 크다. GPU나 FPGA는 소프트웨어 업데이트로 버그를 고칠 수 있지만, ASIC은 그럴 수 없다.

그래서 ASIC은 워크로드가 충분히 안정적이고 대규모 배포가 확실할 때 선택한다. Google이 TPU를 만드는 건 자사 데이터센터에서 수십만 장을 쓰기 때문에 가능한 것이고, 소규모 팀이 ASIC을 직접 만드는 건 현실적이지 않다. 최근에는 Groq, Cerebras, Graphcore 같은 스타트업들이 AI 특화 ASIC을 설계하고 있지만, NVIDIA GPU 생태계의 소프트웨어 장벽(CUDA, cuDNN, TensorRT 등)을 넘는 게 가장 큰 도전이다.


참고