본문 바로가기
반도체, 소.부.장.

CUDA: 소프트웨어 때문에 하드웨어를 못 바꾸나?

by 뜨리스땅 2024. 2. 28.
728x90
반응형

프로그래밍 언어, API, 프레임워크를 제공하는 CUDA

 

CUDA(Compute Unified Device Architecture)는 2007년에 출시된 NVIDIA의 소프트웨어 지원 플랫폼으로 프로그래머들이 프로그램을 손쉽게 코딩할 수 있도록 도와주는 여러 기능들을 제공하는 플랫폼이다.

 

CUDA는

 

1. C/C++를 기반으로 한 GPU 전용 프로그래밍 언어를 제공하며

2. 다양한 딥러닝 프레임워크와 API를 제공하여, 수학 계산, 데이터 분석, 이미지 처리 등의 작업을 효율적으로 수행할 수 있게 도와준다.

 

 

먼저 CUDA가 제공하는 프로그래밍 언어는 프로그래머들이 사용하는 C언어 C++언어를 확장하여 GPU에 최적화된 코드를 짤 수 있도록 도와준다. 이 확장된 언어는 여러 키워드를 사용하여 GPU를 위한 코딩을 최적화하는데 예를 들어 '_ _Global_ _'이라는 키워드를 함수 제일 앞에 붙여주면 이 키워드 뒤에 나오는 함수는 GPU에서만 실행이 된다. 또 다 른 예로 '_ _shared_ _' 키워드는 GPU의 블록 내 스레드들이 공유하는 메모리 영역에 변수를 할당 할 때 사용된다.

 

이러한 키워드로 GPU를 위한 코드와 CPU를 위한 코드를 명확하게 분리해주며, GPU의 코어, 메모리에 대한 효율적인 접근이 가능하도록 해준다. 또한 멀티코어 프로세서에서 여러 스레드를 병렬로 실행함으로써, 프로그램의 병렬 연산 속도를 극대화해줄 수 있다. 결론적으로 NVIDIA의 GPU를 가장 효율적으로 사용할 수 있는 프로그래밍 언어를 제공하는 것이다.

 

API와 딥러닝 프레임워크 제공 기능은 개발자가 복잡한 기능을 처음부터 개발할 필요 없이 기존의 기능을 활용하여 애플리케이션을 효율적으로 구축할 수 있게 도와주는 서비스이다. API(Application Programming Interface)는 한 소프트웨어가 다른 소프트웨어의 기능이나 데이터 를 사용할 수 있도록 해주는 일련의 코드이다.

 

예를 들어, 페이스북이나 트위터 같은 소셜 미디어 플랫폼은 자체 API를 통해 개발자가 해당 플랫폼의 사용자 데이터를 활용할 수 있게 한다. 또한, 구글 맵스와 같은 지도 서비스의 API는 위치 데이터, 지도 표시, 경로 계산 기능을 제공하여 다른 애플리케이션에서 이를 활용할 수 있도록 한다.

 

딥러닝 프레임워크는 딥러닝 모델을 설계, 훈련하기 위한 라이브러리(도구 모음)이다. 이는 딥러닝 신경망의 레이어를 쉽게 생성하고 조합할 수 있도록 사전에 정의된 레이어를 제공하며, 모델 훈련 시 필요한 역전파(Backward Propagation)를 위한 자동 미분 기능, 다양한 최적화 알고리즘, 모델 저장 및 복원 기능, 훈련 과정을 모니터링하고 분석하는 시각화 도구 등을 제공해 프로그래머가 더욱 손쉽게 딥러닝 모델을 구현할 수 있도록 도 와준다.

 

현재 TensorFlow, PyTorch와 같은 딥러닝 프레임워크가 널리 사용되고 있으며 CUDA는 이러한 타사의 딥러닝 프레임워크를 사용하는 인공지능 프로그래머들도 해당 프레임워크를 사용하여 NVIDIA GPU를 프로그래밍할 수 있도록 지원하고 있다.

 

 

 

 

빅테크를 중심으로 균열이 일어나는 CUDA 생태계

 

인공지능을 딥러닝으로 프로그래밍하기 위해서는 CUDA를 이용하는 것이 가장 편리하고, 이러한 CUDA는 NVIDIA의 GPU만을 지원하기 때문에 현재로서는 NPU의 도입이 느려지고 있는 상태이다. 그렇다면 NPU가 이러한 강력한 CUDA 생태계를 극복할 수 있는 방법은 없는 것일까?

 

사실 이미 여러 빅테크들은 CUDA 생태계를 벗어나기 위한 노력을 하고 있으며 본인들의 자체 NPU에서 새로운 딥러닝 프레임워크를 사용하고 있다. TensorFlow가 대표적인데 이 딥러닝 프레임워크는 구글에서 개발한 딥러닝 프레임워크 생태계로 Google의 자체 TPU V N.0 시리즈를 TensorFlow를 이용해 프로그래밍하고 있다. 마찬가지로 메타의 PyTorch, Microsoft의 CNTK(CogNitive ToolKit) 등이 자체적인 생태계로 사용되고 있다.

 

 

이러한 새로운 프로그래밍 생태계가 형성되고 있다는 것은 NVIDIA CUDA와 GPU의 지배력에 금이 가기 시작했다는 것이다. 결국 AI 데이터센터를 구축하는 빅테크들의 입장에서는 새로운 프로그래밍 생태계를 사용해야 하는 불편을 감수하더라도 AI연산에 최적화된 NPU를 사용해야 할 충분한 이유가 있다는 것이며 향후 NPU가 GPU 일변도의 시장에 균열을 내고 인공지능을 위한 메인 프로세서의 한 축을 담당하 게 될 것이라는 가능성이 보이는 상황이다.

 

어쩌면 몇년후 미래에는 이미 GPU가 아닌 NPU가 대세 프로세서가 되어 있을지도 모르는 일이다. 그리고 이러한 NPU 시장의 개화는 AI 서비스가 본격적으로 시작되고 온디바이스 AI가 활성화되기 시작하는 2024년을 원년으로 삼을 것이라고 생각한다.

 

 

 

출처: 현대차증권

 

뜨리스땅

 

 

 

https://tristanchoi.tistory.com/611

 

NPU: 딥러닝에 최적화된 칩

추론의 영역으로 들어서며 GPGPU와 NPU의 경쟁 본격화 NPU(Neural Processing Unit)는 우리가 일반적으로 추론용 AI 반도체로 알고 있는 하드웨어이다. 우리가 이렇게 알고 있는 이유는 AI 모델에 광범위한

tristanchoi.tistory.com

 

728x90
반응형

댓글