드라이버 다운로드:하이퍼링크 로그인이 보입니다. CUDA 툴킷:하이퍼링크 로그인이 보입니다. cuDNN:하이퍼링크 로그인이 보입니다.
GPU란 무엇인가요?
GPU라는 개념은 1999년 엔비디아에 의해 제안되었습니다. GPU는 그래픽 카드에 있는 칩이고, CPU가 메인보드의 칩인 것과 같습니다. 그럼 1999년 이전에는 그래픽 카드에 GPU가 없었나요? 물론 있었지만, 당시에는 아무도 이름을 붙이지 않았고, 사람들의 관심을 끌지 못했으며 발전도 비교적 느렸습니다.
엔비디아가 GPU 개념을 제안한 이후, GPU는 급속한 발전의 시기에 접어들었습니다. 간단히 말해, 이 프로젝트는 다음과 같은 발전 단계를 거쳤습니다:
1. 그래픽 렌더링에만 이 기능이 적용되며, GPU의 원래 의도는 그래픽 처리 장치(Graphic Processing Unit)라는 이름에서 알 수 있습니다;
2. 나중에 GPU처럼 강력한 장치를 그래픽 처리에만 사용하는 것은 너무 낭비적이며, 부동소수점 연산과 같은 더 많은 작업에 사용해야 한다는 사실이 밝혀졌습니다. 어떻게 해야 할까요? 부동소수점 연산을 GPU에 직접 부여하는 것은 불가능한데, 당시에는 그래픽 처리에만 사용될 수 있기 때문입니다. 가장 쉬운 방법은 부동소수점 연산을 처리한 뒤 그래픽 렌더링 작업에 묶은 뒤 GPU에 넘기는 것입니다. 이것이 바로 GPGPU(범용 GPU)의 개념입니다. 하지만 단점이 있는데, 그래픽에 대한 지식이 있어야 패킹을 제대로 할 수 없습니다.
3. 따라서 그래픽을 잘 모르는 사람들이 GPU 컴퓨팅의 힘을 경험할 수 있도록 Nvidia는 CUDA 개념을 제안했습니다.
CUDA란 무엇인가요?
CUDA(ComputeUnified Device Architecture)는 그래픽 카드 제조업체인 NVIDIA가 출시한 컴퓨팅 플랫폼입니다. CUDA는 NVIDIA가 출시한 범용 병렬 컴퓨팅 아키텍처입니다. 이 엔진은 CUDA 명령어 집합 아키텍처와 GPU 내부에 병렬 컴퓨팅 엔진을 포함하고 있습니다. CUDA C와 유사한 언어를 사용해 CUDA 프로그램을 개발할 수 있는데, 이는 GPU의 강력한 컴퓨팅 파워를 활용할 수 있게 해줍니다. 컴퓨팅 작업을 그래픽 렌더링 작업에 묶어 GPU에 넘기는 대신에요.
즉, CUDA는 NVIDIA가 자체 GPU용으로 출시한 병렬 컴퓨팅 프레임워크로, CUDA는 NVIDIA GPU에서만 실행할 수 있고, 해결해야 할 컴퓨팅 문제가 많은 병렬 연산으로 계산할 수 있을 때만 CUDA의 역할을 수행할 수 있습니다.
모든 GPU가 CUDA를 지원하는 것은 아닙니다.
CUDNN이란 무엇인가요?
NVIDIA cuDNN은 딥 신경망을 위한 GPU 가속 라이브러리입니다. 성능, 사용 편의성, 낮은 메모리 오버헤드를 강조합니다. NVIDIA cuDNN은 구글의 Tensorflow, UC 버클리의 인기 카페 소프트웨어와 같은 고급 머신러닝 프레임워크에 통합될 수 있습니다. 간단한 플러그인 설계는 개발자가 단순히 성능 조정을 하는 것이 아니라 신경망 모델 설계 및 구현에 집중할 수 있게 하며, GPU에서 고성능 현대 병렬 컴퓨팅도 가능하게 합니다.
GPU로 모델을 학습시키려면 cuDNN이 필수는 아니지만, 일반적으로 가속 라이브러리로 사용됩니다.
CUDA와 CUDNN의 관계는 무엇인가요?
CUDA는 망치, 드라이버 등 다양한 도구가 있는 작업대로 여겨집니다. cuDNN은 GPU 기반 딥러닝 GPU 가속 라이브러리로, GPU에서 딥러닝 계산을 수행할 수 있습니다. 예를 들어, 렌치처럼 작업용 도구와 동등합니다. 하지만 CUDA 작업대를 구입했을 때는 렌치가 제공되지 않았습니다. CUDA에서 딥 신경망을 실행하려면 cuDNN을 설치해야 합니다. 마치 너트를 돌려서 렌치를 사는 것과 같습니다. 이로 인해 GPU는 CPU보다 훨씬 빠른 딥 신경망에서 작업할 수 있습니다.
|