CUDA 编程实验室

CudaLab

GPU 并行编程入门实验室。通过向量加法、标量乘法、矩阵转置等挑战,学习 CUDA 核函数、线程层次和内存管理。

CUDA 挑战: 0 / 5

挑战 1: 向量加法

实现 GPU 上的向量加法 C = A + B

CUDA 核函数

__global__ void vectorAdd(float *A, float *B, float *C, int n) {
    int tid = blockIdx.x * blockDim.x + threadIdx.x;
    if (tid < n) {
        C[tid] = A[tid] + B[tid];
    }
}

线程配置

2
Grid (块数)
4
Block (线程/块)
8
总线程数
Block 大小:4
线程网格:
Block 0
0
1
2
3
Block 1
0
1
2
3

数据传输与计算

Host 内存 - 输入 A
1
2
3
4
5
6
7
8
Host 内存 - 输入 B
10
20
30
40
50
60
70
80
Host → Device (cudaMemcpy)↓GPU 计算↓Device → Host (cudaMemcpy)
Device 内存 - 输出 C
?
?
?
?
?
?
?
?

💡 CUDA 编程核心概念

CUDA(Compute Unified Device Architecture)是 NVIDIA 的通用 GPU 编程平台。 核心概念包括:核函数(__global__)、线程层次(Grid → Block → Thread)、 内存管理(Host/Device 数据传输)、共享内存、线程同步。

线程 ID 计算
tid = blockIdx.x * blockDim.x + threadIdx.x
内存传输
cudaMemcpy(dst, src, size, direction)

使用说明

  • •调整参数观察行为变化,实时反馈
  • •状态自动编码到 URL,可直接分享给他人
  • •支持键盘操作(Tab 切换、方向键调整)