병렬성과 동시성
병렬성(parallelism): 실제로 물리적으로 동시에 작업을 처리하는 성질

동시성(concurrency): 동시에 작업을 처리하는 것처럼 보이는 성질

*CPU 하나의 코어에서 여러 스레드를 동작할때: 동시성
*여러개의 CPU 코어가 동작할때: 병렬성
GPU [덧셈 뺄셈 삼각함수 연산 등 간단하게 할 수 있는 코어가 엄청나게 많음]
GPU 구조
| CPU | GPU | |
| 목적 | Latency 감소 한 작업을 빨리 실행 |
Throughput 증가 여러 작업을 한 번에 실행 |
| 코어 수 | 수십 개 | 수천 개 |
| 코어 성능 | 상대적으로 높음 | 상대적으로 낮음 |
| 메모리 대역폭 | 상대적으로 작음 | 상대적으로 큼 |
| 캐시 메모리 | 상대적으로 큼 | 상대적으로 작음 |
| 용도 | '주요' 프로세서 | '보조'프로세서 |
딥러닝과 GPU
• 딥러닝 연산: 단순 연산(행렬연산[더하기, 곱하기], 벡터연산, 메모리연산)의 반복으로 구성
• 단순 연산을 빠르게 수행하는 대규모 병렬처리 필요: GPU 유리

PCI Express 5.0 Host Interface
• PCI Express (PCIe): 입출력 버스의 일종
• PCIe 5.0 입출력 버스와의 연결 지점 Gigathread Engine
• GPU에서 실행할 스레드를 코어로 분배(스케줄링)
• 어떤 스레드를 어떤 코어에서 실행할지를 결정
HBM (High Bandwidth Memory)
• 고대역폭(High Bandwidth) 메모리(Memory)
• 여러 DRAM 칩을 수직으로 쌓아올려 대역폭을 높인 메모리 기술
• 오늘날 GPU대부분장착 Memory Controller
• HBM의 장치 컨트롤러 L2 캐시
• GPU 내부코어간 공유되는 L2 캐시 메모리

GPU의 실행 단위
GPU 커널(kernel)
- GPU에서 병렬적으로 실행되는 실행 단위
- 다수의 스레드로 실행되는 함수 형태
- Tensorflow, Pytorch 등의 딥러닝 프레임워크로 정의된 딥러닝 코드도 수많은 커널로 실행
GPU 계층
- 스레드(Thread)
- 커널을 실행하는 최소 단위
- 블록(Block)
- 여러 스레드로 구성된 스레드 집합
- 논리적단위: 소프트웨어적 실행단위
- 그리드(Grid)
- 블록들의집합: 그리드내 스레드는 같은 커널 실행
CUDA GPU 프로그래밍
nvcc : ".cu"를 컴파일 해주는 컴파일러
C++로 CUDA GPU 프로그래밍 가능.
GPU가 실행할 커널 함수정의
| keyword | 호출 | 실행 |
| __host__ (default) | CPU | CPU |
| __global__ | CPU | GPU |
| __device__ | GPU | GPU |
#include <stdio.h>
__global__ void helloFromGPU()
{
printf("Hello from GPU!\n");
}
int main()
{
helloFromGPU<<<4, 4>>>(); \\ <<<블록 개수, 스레드 개수>>>
cudaDeviceSynchronize(); \\ 출력 끝 플래그 푸시
printf("Hello from CPU!\n");
return 0;
}
.cu 파일로 작성하고 nvcc로 컴파일 하여 실행.
[출력]
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from GPU!
Hello from CPU!
4*4로 16번 출력
'CS > 컴퓨터구조' 카테고리의 다른 글
| 보조기억장치와 입출력장치 (0) | 2025.10.21 |
|---|---|
| 메인 메모리와 캐시 메모리 (0) | 2025.10.21 |
| CPU (0) | 2025.10.20 |
| 데이터 (0) | 2025.10.20 |
| 명령어 (0) | 2025.10.20 |