小编Tih*_*ihi的帖子

为什么小输入的 cpu 比 gpu 快?

我曾经历过,对于小输入大小,CPU 的执行速度比 GPU 快。为什么是这样?准备,数据传输还是什么?

例如对于内核和 CPU 功能(CUDA 代码):

__global__ void squareGPU(float* d_in, float* d_out, unsigned int N) {
    unsigned int lid = threadIdx.x;
    unsigned int gid = blockIdx.x*blockDim.x+lid;
    if(gid < N) {
        d_out[gid] = d_in[gid]*d_in[gid]; 
    }
}

void squareCPU(float* d_in, float* d_out, unsigned int N) {
    for(unsigned int i = 0; i < N; i++) {
        d_out[i] = d_in[i]*d_in[i]; 
    }
}
Run Code Online (Sandbox Code Playgroud)

在 5000 个 32 位浮点数的数组上运行这些函数 100 次,我使用一个小测试程序得到以下结果

Size of array:
5000
Block size:
256

You chose N=5000 and block …
Run Code Online (Sandbox Code Playgroud)

cpu cuda gpu

1
推荐指数
1
解决办法
210
查看次数

标签 统计

cpu ×1

cuda ×1

gpu ×1