상세 컨텐츠

본문 제목

[알쓸쿠잡] 1편. GPU 사용하기

알쓸쿠잡/알쓸쿠잡

by hwangmina 2023. 3. 6. 16:19

본문

작성자: 17기 황민아

 

딥러닝을 활용한 프로젝트를 진행하다보면 GPU를 사용할 일이 많은데요.

알쓸쿠잡 1편에서는 이 GPU를 왜, 그리고 어떻게 사용하는지에 대해 알아보겠습니다!

 

 

 

1. CPU와 GPU의 차이

CPU(Central Processing Unit)은 컴퓨터의 중앙처리장치로, 사람의 두뇌와 유사한 역할을 수행합니다. 컴퓨터 시스템을 통제하고, 프로그래밍의 연산을 실행·처리하는 역할을 합니다. CPU는 다양한 환경에서의 작업을 빠르게 수행하기 위해 복잡한 ALU* 구조를 가집니다. 명령어가 입력된 순서대로 데이터를 처리하는 직렬(순차) 처리방식에 특화된 구조를 가지고있습니다.   

*ALU: 산술 논리 장치(arithmetic and logical unit) - 덧셈, 뺄셈 등의 산술 연산과 논리합, 논리곱 등의 논리 연산을 담당하는 장치.

 

GPU(Graphics Processing Unit)는 비디오와 같이 픽셀로 이루어진 영상을 처리하기 위해 등장하였습니다. CPU와는 달리  특화된 연산을 빠른 속도로 처리하기 위해 단순한 ALU를 여러 개 가지는 구조로 이루어집니다. 병렬 처리용으로 설계된 수천 개의 효율적인 코어로 이루어져 여러 명령어를 동시에 처리할 수 있습니다. 

 

즉, CPU는 복잡한 연산을 순서대로 빠르게 처리하는 순차적인 작업(sequential task)에 더 강점이 있는 반면, GPU는 쉽고 단순한 작업을 병렬적으로 대량 처리하는 병렬적인 작업(paralell task)에 더 강점이 있습니다. 그 예로 화면에 그래픽을 표시하려면 대량의 단순한 그래픽 데이터 정보를 동시에 처리해야 하므로 CPU보다 GPU를 사용하는 것이 더 효율적입니다.

 

인공지능, 그 중에서도 특히 딥러닝의 경우 단순 계산을 동시에 처리하는 병렬 처리 작업이 필수적입니다. 따라서 최근 들어 병렬 처리에 특화된 GPU가 인공지능 소프트웨어를 작동시키는 중요한 역할을 하고 있습니다. 

 

 

 

 

 

2. Colab에서 GPU 사용하기

노트북에 GPU가 없더라도 Colab을 사용한다면 고성능의 GPU를 사용하여 프로젝트를 진행할 수 있습니다. 

Colab은 기본적으로 무료로 GPU를 제공하며, Colab Pro, Colab Pro+ 등의 유료요금제를 통해 더 빠른 GPU를 사용할 수도 있습니다.  

Colab에서 GPU를 사용하는 방법은 다음과 같습니다. 

 

1. Colab 파일의 [런타임]-[런타임 유형 변경] 항목을 선택합니다.

 

2. [하드웨어 가속기] 항목에서 [GPU]를 선택합니다.

 

3. 보유한 요금제에 따라 [GPU등급]을 설정해준 후, 저장을 누릅니다. 

 

이후 우측 상단의 [RAM, 디스크]를 클릭하여 사용 중인 리소스를 확인할 수 있습니다.    

 

 

 

 

 

3. Kaggle에서 GPU 사용하기

Kaggle도 일주일에 30시간 가량 무료로 GPU를 제공합니다.

Kaggle에서 GPU를 사용하는 방법은 다음과 같습니다.

 

1. 좌측의 [Code] 섹션에 진입하여 [New Notebook]을 생성해줍니다.

 

2. 우측의 [Notebook options]의 [Accelerator]에서 GPU를 선택합니다.

 

 

이상으로 GPU를 사용하여 딥러닝 프로젝트를 진행하는 방법에 대해 알아보았습니다.

즐거운 프로젝트 되세요!

 

 

 

 

 

 

 

 

Reference:

1) https://sdc-james.gitbook.io/onebook/2.-1/1./1.1.1.-cpu-gpu

2) https://voidint.com/2020/10/14/cpu-gpu-tpu-npu/

3) https://elice.io/newsroom/gpu_definition_and_exampless

'알쓸쿠잡 > 알쓸쿠잡' 카테고리의 다른 글

[알쓸쿠잡] 2편. 딥러닝 프레임워크  (0) 2023.03.07

관련글 더보기

댓글 영역