Maxima's Lab

[Python, GPU Programming] CuPy 란? (vs NumPy) 본문

Python/GPU Programming

[Python, GPU Programming] CuPy 란? (vs NumPy)

Minima 2024. 3. 16. 13:49
728x90
SMALL

안녕하세요, 오늘은 CuPy 라이브러리에 대해서 설명하겠습니다.

 

CuPy는 NumPy와 호환되며, NIVIDIA CUDA GPU에서 실행되는 라이브러리입니다. 이는 NumPy API의 GPU 가속 버전을 제공하여 대규모 수학 연산을 빠르게 수행하며 높은 수준의 병렬 처리를 수행합니다.

 

아래는 NumPy를 사용한 CPU 버전, 그리고 CuPy를 사용한 GPU 버전에 대한 파이썬 코드입니다.

 

import numpy as np
import time

# 2개의 행렬 초기화
a_cpu = np.random.rand(2000, 2000).astype(np.float32)
b_cpu = np.random.rand(2000, 2000).astype(np.float32)

for _ in range(0, 10):
  # CPU에서 행렬 곱 연산 시간 측정
  start_time = time.time()
  result_cpu = np.dot(a_cpu, b_cpu)
  cpu_time = time.time() - start_time

  print(f"CPU Matrix Multiplication Time: {cpu_time} seconds")

 

CPU에서 측정 결과

 

import cupy as cp
import time

# 2개의 행렬 초기화
a_gpu = cp.random.rand(2000, 2000).astype(cp.float32)
b_gpu = cp.random.rand(2000, 2000).astype(cp.float32)

for _ in range(0, 10):
  # GPU에서 행렬의 곱 연산 시간 측정
  start_time = time.time()
  result_gpu = cp.dot(a_gpu, b_gpu)
  cp.cuda.Stream.null.synchronize()
  gpu_time = time.time() - start_time

  print(f"GPU Matrix Multiplication Time: {gpu_time} seconds")

 

GPU에서 측정 결과

 


이상으로, CuPy에 대해서 알아보고 해당 라이브러리를 사용한 간단한 예제에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments