딥러닝을 위한 하드웨어

현재 사용되는 신경망(NN, 딥러닝)에 대한 두가지 별개의 작업 모드가 있습니다. 훈련(특정 작업을 해결하기 위해 설계된 NN에 대한 가중치 세트 학습)과 추론(훈련된 NN 사용)입니다. 훈련은 추론보다 계산 집약적인 과정입니다. 많은 응용 프로그램에서 이 두 모드를 분리하지만 일부 작업(예 : Deep RL)에는 두모드의 긴밀한 통합이 필요할 수 있습니다.

딥러닝은 비트코인이 거치는 과정과 같은 방식으로 진행됩니다. 채굴 대신 훈련은 CPU(Cental Processing Units, ordinary processors from Intel/AMD like Core i7, Ryzen)에서 시작하고, 다음으로 GPU(Graphic Processing Units from NVIDIA/AMD like NVIDIA GTX 1080 Ti)로 전환, 다음은 FPGA(Field-Programmable Gate Arrays, 고객이 프로그래밍 할 수 있도록 설계된 집적 회로)로 전환, 다음은 ASIC (범용 컴퓨팅이 아닌 특수 계산을 위해 맞춤형으로 제작된 특정 용도의 집적 회로)으로 전환을 제공합니다.

1. 현재 대부분의 훈련은 GPU로 진행되며 NVIDIA GPU 입니다. AMD는 딥러닝 프레임워크에서 GPU의 지원이 매우 부족하기 때문에 경쟁에서 뒤쳐졌습니다. FPGA나 ASIC 사용도 증가하고 있습니다.(최근의 예로 Google의 TPU , Tensor 처리 장치)

2. 딥러닝 하드웨어의 차세대 기술 중 하나는 딥러닝에 적합한 모바일 프로세서이며 거의 모든 회사에서 특수 명령어, 최적화된 DSP 및 전용 NPU(신경 처리 장치)의 형태로 머신러닝/딥러닝 기능을 추가하고 있습니다. 이것은 주로 추론에 관한 것이지 훈련에 관한 것이 아닙니다. 빠른(에너지 효율이 높은) 모바일 프로세서는 [이미 훈련된] 모델을 사용하여 클라우드로 보낼 필요없이 즉각적으로 데이터를 처리 할 수 ​​있으므로 대기 시간을 줄이고 개인 정보/보안을 강화할 수 있으며, 이로 인해 AI 응용이 폭발적으로 증가되게 됩니다.

3. 에지(모바일, 웨어러블, 홈 디바이스, IoT 등)에서 컴퓨팅 파워가 증가하면 분산된 훈련 모드를 발전시킬 수 있습니다. 이 주제는 더 많은 연구와 실험이 필요합니다.

4. neuromorphic 컴퓨팅 이라고 하는 흥미로운 분야가 있으며 , 흥미로운 점이 몇 가지 있습니다. IBM은 이미 TrueNorth 칩을 보유하고 있으며 Intel은 Loihi 칩을 발표했습니다. neuromorphic 아키텍처의 두가지 주요 이점은 1)두뇌와 같은 계산에 더 적합하다는 것입니다. 2)잠재적으로 훨씬 더 에너지 효율적입니다.(즉, TrueNorth는 단 70mW의 에너지만 소비합니다). 비교하자면NVIDIA GPU의 경우 250W입니다.

5. Memristors는 연구되고 있으며, 이것은 neuromorphic 컴퓨팅을 더욱 발전시킬 수 있습니다. 이것은 트랜지스터 기반의 신경 회로망 프로세서와 완전히 다른 회로를 제공합니다. 현 생산에 유용한 것을 기대하기는 어렵습니다.

6. 퀀텀 컴퓨터 (QC)가 증가하고 있으며 작년 Google, IBM, Microsoft, Intel 등 모든 주요 업체가 성과를 거뒀습니다. 퀀텀 컴퓨팅은 여러 고전 알고리즘의 속도 증가에서 완전히 새로운 알고리즘과 양자 머신러닝 분야의 개발에 이르기까지 다양한 방식으로 머신러닝 분야를 발전시킬 수 있습니다. 그러나 여전히 극복해야 할 많은 장애물이 있습니다. 실제 크기의 대규모 데이터세트에 QC를 사용할 수 있기까지 먼 길을 가야 합니다.

I. 딥러닝을 위한 CPU

https://blog.inten.to/cpu-hardware-for-deep-learning-b91f53…

1. x86 Family

 

현재의 딥러닝 시스템은 대부분 GPU를 사용하여 구축된다는 점을 명심하십시오. 그러나 CPU는 여전히 필수 요소이며 CPU에 대한 요구 사항은 이러한 시스템에 보다 적합하게 전환됩니다.

코어수가 더 이상 주요 매개변수는 아니지만 최소한 GPU 갯수만큼 많은 Core갯수가 여전히 필요합니다. 다른 중요한 특성들 중에는 PCIe 레인의 수와 메모리 속도가 있습니다. (PCIe 레인 추가정보 참조)

2. Xeon Phi

최대 72 코어의 Intel Xeon Phi 와 같은 대용량 멀티 코어 프로세서를 만들기 위한 시도가 여전히 있습니다.

 

3. ARM

Qualcomm은 Centriq 2400 이라고 하는 클라우드 응용 프로그램용 ARM 서버 프로세서를 제조 및 공급하고 있습니다. 2.2GHz에서 실행되는 최대 48개의 단일 스레드 코어가 있으며 2.6GHz로 정점에 도달합니다.

 

4. POWER9

IBM의 POWER9 아키텍처가 있습니다. POWER9는 GPU/FPGA와 더 잘 어울리는 것을 목표로하고 있으며, 합리적인 것 같습니다. POWER9는 24개의 코어를 가지고 있으며 , 업계 유일의 CPU-GPU의 nVidia NV 링크 연결을 제공합니다 . Tesla V100과 같은 POWER9 시스템은 V100을 사용하는 x86 시스템보다 생산성이 높기 때문에 흥미롭습니다.

 

5. RISC-V

이 프로젝트는 2010년 캘리포니아 버클리대학에서 시작되었습니다. RISC-V는 완전히 오픈소스인 명령어 세트입니다. 또한 특정 응용 프로그램 작업 부하에 맞게 조정할 수 있습니다. 예를 들어 Western Digital은 RISC-V ISA를 기존 제품 스택뿐만 아니라 프로세싱과 스토리지를 결합하는 향후 제품에도 사용할 계획이라고 발표했습니다 .

II. 딥러닝을 위한 GPU

https://blog.inten.to/hardware-for-deep-learning-part-3-gpu…

1. Performance

GPU 성능은 여전히 ​​증가하고 있습니다. GFLOPS에서 최고 성능 차트를 그리면 다음과 같이 표시됩니다.

→ FP32, FP16, INT8, Mixed-Precision

→ Tensor Cores

 

2. Memory

현재 최고의 게임 카드에서 11-12Gb가 표준이라고 생각합니다. 6Gb 메모리에 맞지 않는 많은 NN 모델이 존재하며 갑자기 8Gb가 충분하지 않다는 것을 알게될 것입니다. 배치 크기를 줄이고 모델을 FP16 및 INT8 (추론의 경우), 잘라 내기, 이진화(메모리 절약에 대한 접근법 ) 등으로 변환하는 것과 같은 몇 가지 트릭이 있습니다

 

 

3. Multi-GPU systems

단일 시스템 다중 GPU 구성 및 분산 다중 시스템 다중 GPU 구성을 사용하는 경향이 있습니다. 제한된 성능 및 메모리 문제를 부분적으로 해결합니다.

 

 

4. NVLink

NVIDIA NVLink는 GPU와 CPU 간의 에너지 효율적인 고대역폭 경로입니다.

 

5. Personal Supercomputers

→ NVIDIA DGX

→ IBM Minsky etc.

→ Home-made supercomputers

6. AMD

Radeon Open Compute Platform( ROCm )은 GPU 컴퓨팅을 위한 오픈소스 HPC / Hyperscale 급 플랫폼입니다. 현재 버전은 1.7 입니다.

→ GPUs

→ OpenCL

→ ROCm/HIP/MIOpen

→ Infinity Fabric

→ Future

7. Intel

인텔에는 GPU도 있습니다. HD 그래픽 이라고 합니다. i7-7700에는 최대 883.2 GFLOPS FP16 (Boost 1,150 MHz 모드에서)의 최대 성능을 갖춘 UHD Graphics 630 이 있습니다. 현재 최고 솔루션 Gen9.5 GPU는 마이크로 아키텍처의 아이리스 플러스 그래픽(650)는 NVIDIA 타이탄 XP를 가지고 보다 훨씬 높은 방법입니다.