딥러닝 재밌는 하드웨어 이야기!!(NPU/TPU)(3)

wannabedatazzang·2021년 11월 30일
0

NPU : neural Preocessing Unit

  • 인공신경망을 통한 연산을 효율적으로 해보자고 설계된 프로세서
  • NPU TPU는 같은 뜻!!

GPU vs NPU 구조

  • GPU : 부동소수점 곱셈을 동시에 엄청 많이 처리할 수 있다
    - 곱셈만 한다고 딥러닝 학습이 되는거 아니다

    • 곱셈을 어떻게 사용할지 알려주고 지시하는 방법(CUDA & cuDNN)
    • c언어로 구성된 cuda를 이용하여 병령 계산 알고리즘을 구현하고
    • cuDNN을 이용하면 기본적 딥러닝의 primitive를 구현 가능하다
  • NPU : 딥러닝 네트워크를 구성하는 각 layer를 실리콘으로 구현
    - 인공 신경망을 구성하는 뉴런을 하드웨어적으로 구현

    • NPU 를 이용하는 딥러닝 모델은 GPU 와 cuDNN 을 사용할 때와 같은 100% 자유도를 가지고 네트워크를 구성할 수는 없습니다. 실리콘으로 구현한 뉴런은 칩 설계시 정해져 있고 NPU 에서 구현하지 않은 뉴런이 딥러닝 네트워크에 포함되어 있다면, 그 부분은 하드웨어 가속을 타지 못하고 CPU 로 연산을 수행해야 하기 때문에 NPU 를 사용하는 이점이 약화됩니다.
    • NPU 가 convolution 은 구현하였지만 fully connected 계층은 구현하지 않았다고 한다면, 다음 그림과 같은 네트워크에서는 CPU 성능과 경우에 따라 메모리 대역폭도 소모해야 하기 때문에 성능이 저하될 것입니다.

그럼 NPU를 쓰는 이유는 무엇인가

  • gpu가 너무 비싸...
  • 전력소모가 너무 많고 휴대 불가능 하다 (딥러닝의 edge화 불가 : 핸드폰으로)

GPU + NPU 구조

  • 딥러닝 추론은 NPU 를 탑재한 말단 장비에서 이루어져야 합니다. 하지만 NPU 를 이용해 구동하고자 하는 딥러닝 모델은 GPU 를 탑재한 대형 서버에서 학습하는 것이 좋을겁니다. 즉, 모델 학습을 빠르게 하려면 GPU 도 필요하고, 말단 장비에서 저전력으로 추론하려면 NPU 도 필요 (완전 공감)

0개의 댓글