티스토리 뷰

728x90

개발자가 아니라 자세한 것은 알 필요가 없지만..

 

그게 왜 필요한지? 뭘 하는 것인지? 하려면 뭘 알아야 하는지 알기 위해서 좀 찾아 봤다

 

우선 파이토치/텐서플로 같은 개발 프레임워크가 GPU/NPU 상에서 실행이 되려면

 

NPU HW 백엔드에서 1차원 벡터, 2차원 벡터인 텐서 형태로 처리가 될 수 있도록 지원이 되어야 함

ㅇ CPU는 스칼라 형태로 처리가 됨

 

ㅇ 이렇게 되려면 파이토치/텐서플로 같은 프레임워크에서 NPU 칩의 커널 라이브러를 알아야 기능을 제공할 수 있음

 

ㅇ 예를 들면 구글은 TPU는 2018년 나왔는데 파이토치는 2020년에 나옴.

ㅇ 그래서 파이토치에서 구글의 TPU를 직접 사용할 수 없었음

 

ㅇ 파이토치라는 개발 프레임워크를 개발한 개발자가 이를 지원하기 위해서는 NPU, TPU 설계를 이해하고 활용할 수 있어야 함

ㅇ 특히 TPU/GPU/NPU 등 HW의 메모리 Layout, 계산과 처리 기본 단위와 방식, 레지스터 등을 알아야 함

 

ㅇ 결국 신규 HW가 나오면 개발 프레임워크에서

ㅇ 신규 HW이 커널 라이브러리를 받아서 컴파일러 등을 개발해야 줘야 함

댓글