You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CUDA轻负载场景下,带volatile的直写与回写性能为何相近?

轻负载场景下CUDA缓存回写与直写模式的性能分析

核心结论

在轻负载场景下,回写模式需先将数据写入缓存,再等待其刷入全局内存,会因数据刷出的延迟产生性能损耗;而直写模式可直接更新全局内存,性能表现理应更优。

模式逻辑示意图

CUDA缓存回写与直写模式逻辑示意图

测试结果验证

我分别在1050Ti和A100显卡上完成测试,使用Nsight System统计耗时,两次测试结果一致。

测试核函数代码

以下是用于测试轻负载场景写入带宽的简化代码:

__global__ void cuda_peek(volatile uint *a)
{
    uint gidx = (blockIdx.x * blockDim.x + threadIdx.x);
    a[gidx] = gidx + 10;
}

int block_num = 6 * 32; // 6是1050Ti的SM数量
int loop = 100;
int block_size = 1024;
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);

dim3 gridDim, blockDim;
gridDim.x = block_num;
gridDim.y = 1;
gridDim.z = 1;
blockDim.x = block_size;
blockDim.y = 1;
blockDim.z = 1;

cuda_peek<<<gridDim, blockDim>>>(A);
cudaEventRecord(start);
for(uint i = 0; i < loop; i++)
{
    cuda_peek<<<gridDim, blockDim>>>(A);
}
cudaEventRecord(stop);

cudaEventSynchronize(stop);
cudaMemcpy(...);

(注:修正了原代码中的笔误:voild改为void,thread.x改为threadIdx.x,补全cudaEventSynchronize的必要参数)

内容的提问来源于stack exchange,提问作者Shui_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:05:08