nvidia driver & CUDA & CuDNN 이란?

About_work·2023년 10월 15일
1

딥러닝 환경 구축

목록 보기
9/23

nvidia driver이 뭔가?

  • NVIDIA 그래픽 카드(혹은 GPU)컴퓨터 운영 체제(OS) 간의 통신을 관리하고 제어하는 소프트웨어
  • 역할
    • GPU 제어
      • NVIDIA 드라이버는 NVIDIA GPU를 컴퓨터에서 올바르게 인식하고 제어
      • GPU의 하드웨어 리소스를 최적화하고, 그래픽 작업을 처리하기 위해 GPU에 명령을 전달하는 역할
    • CUDA 지원
      • NVIDIA 드라이버는 CUDA 작업을 지원하고 가능하게 함.
        • CUDA는 GPU를 사용하여 병렬 컴퓨팅 작업을 수행하기 위한 표준 프로그래밍 모델을 제공

cuda란 뭘까?

  • Computed Unified Device Architecture
  • CUDA는 C/C++ 프로그래밍 언어를 기반으로 하며, GPU에서 병렬 코드를 작성하고 실행할 수 있는 풍부한 라이브러리와 도구를 제공
  • CUDA는 GPU 컴퓨팅에서 일종의 컴파일러 역할을 수행합니다.
    • 여기서 컴파일러란, 인간의 언어에 가까운 고급 언어로 작성된 원시 프로그램을 입력으로 받아 -> 기계어 된 목적 프로그램을 출력하기 위해 사용되는 언어 번역 프로그램을 의미
  • CUDA를 사용하기 위해서는 NVIDIA가 제공하는 CUDA Toolkit를 설치해야 합니다.

CUDA 툴킷(CUDA Toolkit)

  • GPU 가속화 애플리케이션 개발에 필요한 모든 것을 제공
  • CUDA C/C++ 컴파일러
    • CUDA를 사용하여 C/C++ 프로그램을 GPU에서 실행할 수 있도록 하는 컴파일러
  • CUDA 라이브러리
    • 선형 대수, 신호 처리, 확률 및 통계, 이미지 처리 등과 같은 일반적인 수학 및 과학 계산을 위한 GPU 가속 라이브러리를 제공
  • CUDA 런타임
    • GPU 연산을 관리하고 실행하는 데 필요한 런타임 환경을 제공
  • NVIDIA GPU 드라이버
    • CUDA를 사용하는 데 필요한 GPU 드라이버를 설치합니다.
  • 개발자들은 CUDA 툴킷을 사용하여 연산 집약적인 부분을 GPU에서 실행되도록 업데이트

cuDNN(cuda Deep Neural network Library)

  • 딥 러닝 및 인공 신경망(ANN) 프레임워크를 가속화하기 위한 라이브러리
  • cuDNN은 딥 뉴럴 네트워크를 위한 GPU 가속화 라이브러리의 기초 요소로
    • 컨볼루션(Convolution), 풀링(Pooling), 표준화(Normarization), 활성화(Activation)과 같은 것들을 빠르게 실행할 수 있도록 하는 라이브러리
  • cTensorFlow, PyTorch, Caffe, MXNet 및 기타 프레임워크와 통합되어 사용자가 프레임워크에서 CuDNN을 사용하여 모델을 개발하고 실행할 수 있도록 합니다.
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글