Bash vs Source

  • 셸 스크립트를 실행하는 데 사용

    실행 환경

    bash

  • 새로운 서브셸을 생성하여 스크립트를 실행
  • 스크립트 내에서 설정된 변수나 함수는 현재 셸 환경에 영향을 주지 않음 source
  • 현재 셸 환경에서 직접 스크립트를 실행
  • 스크립트에서 정의된 변수, 함수, 별칭 등이 현재 셸 세션에 즉시 적용

    용도

    bash

  • 일반적인 스크립트 실행에 사용
  • 스크립트의 독립적인 실행이 필요할 때 적합 source
  • 환경 설정 파일(예: .bashrc)을 로드할 때 주로 사용
  • 현재 셸 환경에 변경사항을 즉시 적용하고자 할 때 유용

    변수와 함수의 지속성

  • bash: 스크립트 실행이 완료되면 설정된 변수와 함수는 사라짐
  • source: 스크립트에서 정의된 변수와 함수가 현재 셸 세션에서 계속 사용 가능

    사용 예시

    bash*# bash 사용* bash myscript.sh *# source 사용* source myscript.sh *# 또는* . myscript.sh source 명령어는 (점)으로도 사용할 수 있으며, 이는 본 셸(sh)에서 유래한 문법

    NVIDIA

    1. NVIDIA 드라이버

  • 역할: GPU 하드웨어와 운영체제 사이의 통신을 담당
  • 필요성:
    • GPU가 제대로 동작하려면 운영체제가 GPU의 작동 방식을 알아야
    • PyTorch는 GPU 연산을 위해 NVIDIA 드라이버를 통해 GPU와 통신합니다.

      2. CUDA (Compute Unified Device Architecture)

  • 역할: NVIDIA GPU에서 병렬 연산을 수행할 수 있는 프로그래밍 환경과 실행 엔진을 제공
  • 필요성:
    • PyTorch는 CUDA를 통해 GPU의 연산 자원을 사용하여 모델 학습 및 추론 속도를 크게 향상
    • CUDA는 GPU에서 데이터를 전송하고 병렬 처리를 실행하는 데 필요한 API를 제공

      3. cuDNN (CUDA Deep Neural Network Library)

  • 역할: 딥러닝 모델에서 사용하는 연산(예: 합성곱, 풀링 등)을 최적화하는 라이브러리
  • 필요성:
    • PyTorch는 딥러닝 모델의 연산을 수행할 때 cuDNN을 활용하여 속도를 극대화하고 메모리 사용을 효율화
    • cuDNN은 딥러닝 특화 연산의 성능을 높이기 위한 NVIDIA의 핵심 소프트웨어

      간단한 비유

  • NVIDIA 드라이버: GPU를 운영체제가 인식하고 사용할 수 있도록 연결하는 다리(운전면허).
  • CUDA: GPU에서 작업을 실행하는 프로그램(자동차).
  • cuDNN: 딥러닝 연산을 빠르고 효율적으로 처리하기 위한 고급 기술(스포츠카 엔진).