본문 바로가기
기술 이야기/기술 잡담

DPU(Data Processing Unit)이란?

by 넌 꿈이 뭐야? 2023. 7. 25.

안녕하세요, 오늘은 우연히 DPU라는 존재를 듣게 되었습니다. Data Processing Unit이라고 불리는 이 녀석은 CPU, GPU, TPU 등과는 다른 역할을 수행하고 그게 데이터와 밀접한 관련이 있는건가 생각되는데요... 간단하게 DPU가 무엇인지 소개해보도록 하겠습니다.


DPU(Data Processing Unit)의 존재 이유

많은 분들께서 AWS S3나 Google Drive 등에 익숙하시리라 생각합니다. 이들은 모두 클라우드 기반 파일 저장 서비스인데요, 지금 쓰고 계시는 컴퓨터의 HDD, SSD와 이 서비스들 사이에 뭔가 다른 점이 있을까? 생각해보면 사실 다르지 않습니다.

요컨데 위의 서비스들 또한 모두 '그저 컴퓨터'에 지나지 않습니다.

그렇다면 지금 내 컴퓨터도 잘 쓰고 있고, S3나 Google Drive도 큰 문제 없이 잘 쓰고 있는데 데이터를 잘 처리할 것만 같은 DPU는 왜 필요한 걸까요?

 

그 이유를 아래의 그림과 함께 설명하면,

기존 컴퓨터 장치 간의 통신 방법

기존의 컴퓨터에서는 위의 그림처럼 CPU를 중심으로 DRAM, HDD, SSD, FPGA, GPU 등의 장치들이 데이터를 주고 받습니다. 기존에는

  • CPU와 각 장치 간의 통신 속도가 충분히 빠르지 않았고,
  • 또한 각 장치의 연산 속도 또한 충분히 빠르지 않았음
  • 반면 해마다 CPU의 코어 수가 늘어나며 CPU의 데이터 처리 속도가 충분히 빨랐음

따라서 별 문제가 없었지만 이제는 CPU의 코어 수를 예전과 같이 무식하게 늘리기 어려워졌으며, 각 장치의 데이터 처리 속도가 비약적으로 빨라졌습니다. 이제는 데이터 처리 구조의 효율 개선을 다시금 생각할 필요가 생겼습니다.


DPU 중심의 데이터 처리 구조

물론 여전히 CPU는 그 나름대로의 기능이 있지만 데이터 처리 구조의 중심에 있지 않아도 될 것 같습니다. 대신 DPU라는 녀석을 중앙에 배치하면 어떤 그림일까요?

DPU 중심의 데이터 처리 장치

이 그림에서 유추할 수 있는 DPU의 필요 기능은 아래와 같습니다.

  • NIC (네트워크 인터페이스)를 통한 데이터 송수신
  • 보안을 위한 데이터 암호화
  • 빠른 전송을 위한 데이터 압축

여기에 추가로 복수의 CPU, 복수의 GPU와 같이 많은 장치를 효율적으로 관리하는 기능도 지원해야 합니다.


DPU의 장단점

결론적으로 DPU는 데이터 처리를 도맡아 하며 CPU의 짐을 덜어주고 나아가 CPU 대비 월등히 향상된 네트워킹 속도를 지원해서 전체적인 데이터 파이프라인을 가속화할 수 있습니다. 하지만 만약 AI 연산에 쓰이는 GPU가 여전히 CPU로부터 데이터를 받는다면 DPU를 거쳐서 가야하기 때문에 기존 대비 더 느릴 수도 있겠다는 생각이 듭니다. 이 밖에도 SSD나 FPGA도 마찬가지로 압도적으로 향상된 장치간 송수신 속도를 지원하지 않는다면 역효과가 날 수도 있습니다. 정리하면,

  • 장점
    • CPU가 중앙에서 하던 데이터 처리를 대신 해줌으로써 CPU의 짐을 덜어줌
    • 비약적으로 향상된 네트워킹 속도
  • 단점
    • GPU, SSD 등의 장치가 여전히 CPU를 필요로 한다면 DPU를 거쳐가야 하므로 더 느릴 수도 있음

저는 아직 DPU가 어떤 구조로 설계되고 다른 장점이 더 있는지 모르겠지만 CPU가 제공하지 못하던 것들을 제공하기 시작한다면 금방 각광받을 것 같습니다.

 

참고 자료

https://www.youtube.com/watch?v=a4FK1F6VfAk 

https://byline.network/2020/10/10144/

https://gdnn.tistory.com/48

반응형

댓글