맨위로가기

하드웨어 가속

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

하드웨어 가속은 성능 향상을 위해 특정 연산을 전용 하드웨어로 처리하는 기술이다. CPU의 순차적 명령어 실행 방식과 달리, 병렬 처리를 통해 연산 속도를 높이지만, 유연성이 감소하고 비용이 증가하는 단점이 있다. 하드웨어 가속은 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), AI 가속기 등 다양한 분야에서 활용되며, 컴퓨터 그래픽, 디지털 신호 처리, 인공 지능, 암호화, 네트워크 처리, 데이터 압축, 물리 시뮬레이션 등에서 응용된다. 하드웨어 가속을 사용하지 못하는 경우 소프트웨어로 대체할 수 있지만 개발 및 테스트 비용이 증가하며, CPU와 하드웨어 간 연산 정밀도 차이, 데이터 전송 오버헤드 등의 문제가 발생할 수 있다.

더 읽어볼만한 페이지

  • 컴퓨터 최적화 - 프로그램 최적화
    프로그램 최적화는 컴퓨터 프로그램의 효율성을 높이는 과정으로, 더 효율적인 구현 방식을 선택하거나 불필요한 기능을 제거하여 문제 해결에 집중하며, 다양한 수준에서 플랫폼 의존적이거나 독립적인 기술을 활용하여 수행되지만, 특정한 품질 지표를 개선하기 위해 다른 측면을 희생하는 트레이드오프가 발생할 수 있다.
  • 컴퓨터 최적화 - AI 가속기
    AI 가속기는 딥 러닝 등 인공지능 연산 효율을 높이기 위해 특수 설계된 하드웨어 장치 또는 시스템으로, CPU, GPU, FPGA, ASIC 등 다양한 형태로 구현되어 데이터 센터, 자율 주행 자동차, 모바일 기기 등에 적용되며, MLPerf 등으로 성능이 평가된다.
  • ASIC - 그래픽 처리 장치
    그래픽 처리 장치(GPU)는 컴퓨터 그래픽 렌더링 및 표시를 가속화하는 전용 프로세서로, 아케이드 게임기에서 시작하여 개인용 컴퓨터의 초기 그래픽 디스플레이 프로세서, 하드웨어 가속 3D 그래픽을 거쳐 인공지능 및 딥러닝 분야에서도 활용되며 다양한 형태로 컴퓨터, 게임 콘솔, 모바일 기기 등 광범위한 분야에서 사용된다.
  • ASIC - 텐서 처리 장치
    텐서 처리 장치(TPU)는 구글이 머신 러닝 가속화를 위해 개발한 특수 목적 집적 회로로, 여러 세대를 거쳐 클라우드, 엣지 컴퓨팅 등 다양한 환경에 응용되고 있으며, 특허 침해 소송이 제기되었으나 합의로 종결되었다.
  • 게이트 어레이 - FPGA
    FPGA(Field-Programmable Gate Array)는 사용자가 하드웨어 설계를 변경할 수 있는 집적 회로이며, CPLD에서 파생되어 다양한 제조 기술을 사용하고 디지털 신호 처리, 통신 등 여러 분야에 활용된다.
  • 게이트 어레이 - ASIC
    ASIC은 특정 용도에 맞게 설계된 집적 회로로, 표준 로직 IC나 FPGA에 비해 여러 장점이 있지만, 소량 생산 시 비용이 높고 개발 기간이 길어지는 단점이 있다.
하드웨어 가속
요약
이름하드웨어 가속
설명컴퓨터에서 소프트웨어만으로는 처리하기 힘든 특정 계산 작업을 더 효율적으로 처리하기 위해 특수화된 하드웨어를 사용하는 기술
개요
목적특정 작업의 성능 향상 또는 에너지 효율성 개선
활용 분야그래픽 처리
신호 처리
암호화
네트워크 처리
인공지능
기술
주요 기술GPU (그래픽 처리 장치)
FPGA (필드 프로그래머블 게이트 어레이)
ASIC (주문형 집적 회로)
응용
예시마이크로소프트 빙 검색 엔진의 FPGA 활용
딥러닝 워크로드 가속을 위한 GPU 활용
비트코인 채굴을 위한 ASIC 활용
장점
이점성능 향상
에너지 효율성 개선
특정 작업에 최적화된 하드웨어 사용
단점
고려 사항초기 개발 비용
특정 작업에 특화되어 범용성 부족
소프트웨어와의 호환성 문제

2. 하드웨어 가속의 원리

하드웨어 가속은 특정 연산에 최적화된 회로를 사용하여 소프트웨어 기반 처리보다 더 높은 성능을 달성한다. 집적 회로는 아날로그 및 디지털 신호를 모두 처리할 수 있도록 설계되었으며, 컴퓨팅에서는 일반적으로 이진수로 표현되는 디지털 신호가 주로 사용된다. 컴퓨터 하드웨어와 소프트웨어는 이러한 이진 표현을 사용하여 계산을 수행하는데, 이는 이진 입력에 대한 부울 함수를 처리하고 결과를 저장하거나 추가 처리를 위해 출력하는 방식으로 이루어진다.

하드웨어 가속의 예로는 그래픽 처리 장치(GPU)의 비트 블릿(bit blit) 가속 기능, 인공 신경망 가속을 위한 메모리스터 사용, 서버에서의 스팸 방지를 위한 정규 표현식 하드웨어 가속[17] 등이 있다. 가속을 수행하는 하드웨어는 범용 CPU의 일부일 수도 있고, 별도의 장치일 수도 있지만, 보통 3D 가속기나 암호화 가속기와 같이 더 구체적인 용어로 불린다.

프로세서는 전통적으로 순차적으로 명령어를 실행하는 방식이었지만, 하드웨어 가속기는 병렬 처리, 특정 데이터 경로를 위한 임시 변수, 명령어 제어 오버헤드 감소 등을 통해 특정 알고리즘의 실행 속도를 향상시킨다. 현대 프로세서는 멀티코어이며, 병렬 "단일 명령어, 다중 데이터"(SIMD) 유닛을 특징으로 하는 경우가 많지만, 하드웨어 가속은 여전히 이점을 제공한다. 하드웨어 가속은 작업이나 프로그램에서 자주 실행되는 계산 집약적인 알고리즘에 적합하며, 작은 기능적 단위부터 큰 기능적 블록까지 다양한 세분성으로 적용될 수 있다.

하드웨어 가속은 성능 향상을 위한 여러 기술 중 하나이며, 특히 병렬 처리에 특화된 하드웨어를 통해 효과를 발휘한다. 일반적인 CPU를 이용한 소프트웨어 실행은 CPU가 가진 기본 명령어들을 순차적으로 실행하는 반면, 하드웨어 가속은 특정 처리를 위한 전용 하드웨어를 설계하여 회로의 병렬성을 활용, 연산을 병렬로 수행함으로써 더 빠른 연산 속도를 제공한다. 그러나 전용 하드웨어는 소프트웨어에 비해 유연성이 떨어지고, 하드웨어 설계 및 제조에는 더 큰 비용이 소요된다.

이러한 실행 성능, 유연성, 비용 간의 균형을 통해 하드웨어 가속은 소프트웨어 중에서 특정 패턴의 연산을 집중적으로 처리하는 성능상 중요한 부분에 사용된다. 일반적으로 하드웨어 가속의 크기가 커질수록 실행 성능은 향상되지만, 용도가 고정되고 유연성은 저하되는 경향이 있다.

2. 1. 하드웨어와 소프트웨어의 계산적 동등성

모든 튜링 머신이 모든 계산 가능 함수를 실행할 수 있으므로, 주어진 소프트웨어와 동일한 기능을 수행하는 맞춤형 하드웨어를 설계하는 것은 항상 가능하다. 반대로, 소프트웨어는 주어진 하드웨어의 기능을 에뮬레이션하는 데 항상 사용될 수 있다. 맞춤형 하드웨어는 소프트웨어로 지정할 수 있는 동일한 기능에 대해 와트당 더 높은 성능을 제공할 수 있다. 하드웨어 기술 언어(HDL)인 Verilog 및 VHDL은 소프트웨어와 동일한 의미론을 모델링하고 설계를 합성하여 FPGA에 프로그래밍하거나 ASIC의 논리 게이트로 구성할 수 있는 넷리스트를 생성할 수 있다.[1]

2. 2. 저장 프로그램 방식 컴퓨터 (폰 노이만 구조)

대부분의 소프트웨어 기반 컴퓨팅은 폰 노이만 구조 컴퓨터라고 알려진 프로그램 내장 방식 컴퓨터에서 수행된다. 컴퓨터 프로그램은 데이터로 저장되고 프로세서에 의해 실행된다. 이러한 프로세서는 명령어를 가져와 디코딩하고, 소프트웨어 프로그램을 구성하는 명령어를 실행하기 위해 명령어 사이클의 일부로 메모리에서 데이터 피연산자를 로드해야 한다. 코드와 데이터에 공통된 캐시를 사용하는 것은 폰 노이만 구조를 구현하는 프로세서에서 소프트웨어 처리량에 대한 기본적인 제한인 "폰 노이만 병목 현상"으로 이어진다. 명령어와 데이터가 메모리 계층 구조에서 별도의 캐시를 갖는 수정된 하버드 구조에서도 명령어 opcode를 디코딩하고 멀티플렉싱 가능한 실행 유닛을 마이크로프로세서 또는 마이크로컨트롤러에서 사용하는 데 오버헤드가 발생하여 회로 사용률이 낮아진다. 동시 멀티스레딩을 제공하는 최신 프로세서는 사용 가능한 프로세서 기능 유닛의 활용 저하와 다른 하드웨어 스레드 간의 명령어 수준 병렬 처리를 활용한다.

2. 3. 하드웨어 실행 유닛

하드웨어 실행 유닛은 일반적으로 폰 노이만 아키텍처 또는 수정된 하버드 아키텍처에 의존하지 않으며, 명령어 가져오기 및 디코딩 단계를 수행할 필요가 없다.[1] 필요한 계산이 레지스터 전달 수준(RTL) 하드웨어 설계에 지정되어 있는 경우, 명령어 가져오기 및 디코딩 단계에서 발생하는 시간 및 회로 면적 비용을 회수하여 다른 용도로 사용할 수 있다.[1]

이러한 회수는 계산에서 시간, 전력 및 회로 면적을 절약한다.[1] 회수된 자원은 병렬 계산 증가, 기타 기능, 통신, 메모리뿐만 아니라 입출력 기능 향상에도 사용할 수 있지만, 범용 유틸리티의 비용을 수반한다.[1]

2. 4. 새로운 하드웨어 아키텍처

메모리 내 컴퓨팅, 트랜스포트 트리거드 아키텍처(TTA), 칩 상 네트워크(NoC)와 같은 새로운 아키텍처는 데이터의 실행 컨텍스트에 대한 지역성(지역성)을 높여 모듈과 기능 유닛 간의 계산 및 통신 지연 시간을 줄인다.[10]

맞춤형 하드웨어의 병렬 처리 성능은 집적 회로 다이에서 사용 가능한 면적과 논리 블록에 의해서만 제한되므로,[10] 하드웨어는 범용 프로세서의 소프트웨어보다 대규모 병렬 처리를 훨씬 자유롭게 제공하여 병렬 랜덤 액세스 머신(PRAM) 모델을 구현할 가능성을 제공한다.

2. 5. 구현 지표

기기 이동성이 증가함에 따라 특정 가속 프로토콜의 상대적 성능을 측정하는 새로운 지표가 개발되었는데, 물리적 하드웨어 크기, 전력 소비 및 연산 처리량과 같은 특성을 고려한다. 이러한 지표는 작업 효율성, 구현 효율성, 유연성의 세 가지 범주로 요약할 수 있다. 적절한 지표는 하드웨어 면적과 함께 해당 연산 처리량과 소비되는 에너지를 모두 고려한다.[16]

3. 하드웨어 가속의 응용 분야

하드웨어 가속은 GPU의 비트 블릿(bit blit) 가속 기능[1], 인공 신경망 가속을 위한 메모리스터 사용, 서버 산업에서 스팸 방지를 위한 정규 표현식 하드웨어 가속(정규 표현식 서비스 거부(ReDoS) 공격 방지용)[17] 등 다양한 분야에서 활용되고 있다.

하드웨어 가속은 특정 연산을 위해 특별히 설계된 하드웨어를 사용하여 병렬 처리를 극대화함으로써 순차적인 명령어 실행보다 훨씬 빠른 속도로 연산을 처리한다.

하드웨어 가속은 암호화, 네트워크 처리, 데이터 압축, 물리 시뮬레이션 등에도 활용된다.

하드웨어 가속 응용 분야
응용 프로그램하드웨어 가속기약어
디지털 신호 처리디지털 신호 프로세서DSP
아날로그 신호 처리
음향 처리사운드 카드 및 사운드 카드 믹서해당 없음
컴퓨터 네트워크
암호화해당 없음
다중 선형 대수텐서 처리 장치TPU
물리 시뮬레이션물리 처리 장치PPU
정규 표현식[17]정규 표현식 코프로세서해당 없음
데이터 압축[18]데이터 압축 가속기해당 없음
메모리 내 처리시스템 온 어 칩 네트워크 및 시스토릭 어레이NoC; 해당 없음
데이터 처리데이터 처리 장치DPU
모든 컴퓨팅 작업


3. 1. 그래픽 처리

GPU는 3D 그래픽, 비디오 처리 등 실시간 그래픽 처리에 특화되어 있으며, 비트 블록 전송 기능 등을 지원한다. 과거에는 그래픽 액셀러레이터라고 불렸다.[20]

현대에는 CPU가 SSE 등의 SIMD형 확장 명령어를 통해 액셀러레이터 기능을 내장하는 추세이다. CPU의 SIMD 확장 명령어는 메인 메모리와의 거리가 멀어 발생하는 큰 레이턴시 문제를 줄일 수 있다.

GPGPU는 GPU를 그래픽 외 다양한 계산에 활용하는 기술이다. 2010년대 이후 GPGPU 지원 GPU 아키텍처와 API 표준화가 진행되면서 그래픽 외 액셀러레이터로도 널리 사용되고 있다.

GPU는 주로 32비트 단정도 또는 16비트 반정도 부동소수점 연산에 강점을 가지지만, 기계 학습·심층 학습을 위해 8비트 정수 연산 전용 명령어를 갖춘 프로세서도 등장하고 있다.[21][22]

GPU 관련 하드웨어 가속
응용 프로그램하드웨어 가속기약어
컴퓨터 그래픽스


3. 2. 디지털 신호 처리

DSP는 오디오, 비디오 등의 신호 처리에 특화된 하드웨어 가속을 제공한다.[17]

3. 3. 인공 지능

AI 가속기인공 신경망, 머신 비전, 딥 러닝 등의 연산을 가속화한다. 비전 처리 장치(VPU)나 텐서 처리 장치(TPU) 등이 이에 해당한다.[17]

3. 4. 기타 응용 분야

하드웨어 가속은 암호화, 네트워크 처리, 데이터 압축, 물리 시뮬레이션 등 다양한 분야에서 활용된다. 예를 들어, 서버 산업에서는 스팸 방지 기술을 위해 정규 표현식 하드웨어 가속을 사용하여 정규 표현식 서비스 거부(ReDoS) 공격을 방지한다.[17]

다음은 다양한 응용 프로그램 및 관련 하드웨어 가속기에 대한 표이다.

응용 프로그램 및 하드웨어 가속기
응용 프로그램하드웨어 가속기약어
디지털 신호 처리디지털 신호 프로세서DSP
아날로그 신호 처리프로그래밍 가능 아날로그 어레이FPAA
컴퓨터 네트워크네트워크 프로세서 및 네트워크 인터페이스 카드NPU 및 NIC
암호화암호화 가속기 및 안전한 암호 프로세서해당 없음
인공 지능AI 가속기해당 없음
다중 선형 대수텐서 처리 장치TPU
물리 시뮬레이션물리 처리 장치PPU
정규 표현식[17]정규 표현식 코프로세서해당 없음
데이터 압축[18]데이터 압축 가속기해당 없음
메모리 내 처리시스템 온 어 칩 네트워크 및 시스토릭 어레이NoC; 해당 없음
데이터 처리데이터 처리 장치DPU


4. 하드웨어 가속의 문제점

하드웨어 가속을 지원하지 않는 컴퓨터에서는 해당 기능을 사용할 수 없다. 대안으로 소프트웨어 구현을 제공할 수 있지만, 개발 및 테스트 비용이 증가한다. 또한, 하드웨어와 소프트웨어 간 연산 결과에 차이가 발생할 수도 있다.[21][22]

하드웨어 가속을 활용하려면 하드웨어에 대한 예비 지식이 필요하다. 보통 DirectX, OpenGL, OpenCL 같은 API를 통해 하드웨어를 추상화하지만, 하드웨어와 장치 드라이버가 이러한 API를 지원해야 한다.

CPU와 외부 하드웨어는 일반적으로 메모리 공간이 다르기 때문에, 데이터를 주고받는 과정에서 오버헤드가 발생한다. 예를 들어, 외부 하드웨어에 처리를 맡길 때는 메인 메모리에서 외부 메모리로 데이터를 보내야 하고, 결과를 받을 때는 외부 메모리에서 메인 메모리로 데이터를 다시 가져와야(리드백) 한다. AMD APU의 HSA처럼 CPU와 보조 프로세서의 메모리 공간을 통합하여 이러한 문제를 해결하는 방법도 제안되고 있다.

참조

[1] 잡지 Microsoft Supercharges Bing Search With Programmable Chips https://www.wired.co[...] 2014-06-16
[2] 웹사이트 Embedded http://www.embedded.[...] 2012-08-18
[3] 서적 Energy Consumption of Bitcoin Mining 2019
[4] 학술지 CPU-Accelerator Co-Scheduling for CNN Acceleration at the Edge 2020
[5] 학술지 DREAMPlace: Deep Learning Toolkit-Enabled GPU Acceleration for Modern VLSI Placement https://ieeexplore.i[...] 2021-04
[6] 학술지 A Method of Increasing Digital Filter Performance Based on Truncated Multiply-Accumulate Units 2020-12-18
[7] 서적 2020 IEEE 38th International Conference on Computer Design (ICCD) IEEE 2020-10
[8] 뉴스 How Microsoft Is Using FPGAs To Speed Up Bing Search https://www.enterpri[...] Enterprise Tech 2018-09-18
[9] 웹사이트 Project Catapult https://www.microsof[...]
[10] 웹사이트 MicroBlaze Soft Processor: Frequently Asked Questions http://www.xilinx.co[...]
[11] 서적 Field-Programmable Logic and Applications from FPGAs to Computing Paradigm
[12] 웹사이트 A 24 Processors System on Chip FPGA Design with Network on Chip http://www.design-re[...]
[13] 웹사이트 Micro16 Array - A Simple CPU Array http://members.optus[...]
[14] 웹사이트 1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer http://www.fastcompa[...] 2011
[15] 웹사이트 Scientists Squeeze Over 1,000 Cores onto One Chip http://www.ecnmag.co[...] 2011
[16] 학술지 On Complexity, Energy- and Implementation-Efficiency of Channel Decoders 2011-12
[17] 웹사이트 Regular Expressions in hardware http://www.wellho.ne[...] 2014-07-17
[18] 뉴스 Compression Accelerators - Microsoft Research https://www.microsof[...] 2017-10-07
[19] 논문 Hardware accelerated convolutional neural networks for synthetic vision systems https://www.academia[...] 2010
[20] 문서 Intel 80286 CPUアクセラレータ
[21] 웹사이트 【GTC 2017】NVIDIA、FP32で演算するCNNをINT8に変換して性能を2.5~3倍に引き上げるアルゴリズムを開発 https://car.watch.im[...]
[22] 웹사이트 【後藤弘茂のWeekly海外ニュース】AMDが次世代GPU「Radeon RX Vega64」を正式発表 ~AMDの夏の大攻勢始まる - PC Watch https://pc.watch.imp[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com