이 글은 AI 딥러닝에 핵심적으로 사용되는 CUDA를 손쉽게 사용하기 위해 CuPy 와 사용법을 간략히 알아본다. 이 라이브러리는 NumPy와 유사한 방식으로 CUDA를 사용할 수 있다. CuPy는 NVIDIA의 RAPIDS 데이터 분석 파이프라인에서도 사용된다.
설치 방법
미리 파이썬 개발환경이 준비되어 있다는 가정하에, 다음 명령을 명렁창에 입력한다.
pip install cupy-cuda11x
pip install nvcc4jupyter
개발하기
다음 코드를 입력해 실행한다.
import cupy as cp
def elementwise_multiply(vector1, vector2):
# GPU Device 0에서 실행
with cp.cuda.Device(0):
# CuPy 배열로 변환
vec1_gpu = cp.array(vector1)
vec2_gpu = cp.array(vector2)
# 요소별 곱을 CuPy를 이용해 병렬로 수행
result_gpu = vec1_gpu * vec2_gpu
# 결과를 다시 CPU로 가져옴 (필요한 경우)
result = cp.asnumpy(result_gpu)
return result
# 예시
vector1 = [1, 2, 3, 4]
vector2 = [5, 6, 7, 8]
result = elementwise_multiply(vector1, vector2)
print(result) # 출력: [ 5 12 21 32 ]
이 코드는 CUDA를 이용해 GPU DEVICE 0번에 벡터값을 전송하고, 벡터곱을 계산한 후, CPU 메모리로 그 값을 전송한다.
C 언어로 개발하는 CUDA 방식에 비해 매우 간략히 코딩할 수 있다는 것을 알 수 있다.
레퍼런스
- Installation — CuPy 13.3.0 documentation
- cupy/cupy: NumPy & SciPy for GPU (github.com)
- Recommendations for free resources for learning CUDA for C/C++ : r/CUDA (reddit.com) (ref #1, ref #2, ref #3, ref #4)
- [D] Practice CUDA without an Actual NVIDIA GPU! : r/MachineLearning (reddit.com)
- notY0rick/cuda_practice: My own repository containing the codes I wrote to practice CUDA programming. (github.com)
- Pricing - Genesis Cloud
- Welcome to nvcc4jupyter’s documentation! — nvcc4jupyter 1.2.1 documentation
- Learning CUDA C++ without a GPU using Kaggle or Colab : r/CUDA (reddit.com)
- Can I use CUDA on VSCode? : r/learnmachinelearning (reddit.com)
댓글 없음:
댓글 쓰기