【发布时间】:2012-04-26 17:28:18
【问题描述】:
我有四个 CUDA 内核以下列方式处理矩阵:
convolution<<<>>>(A,B);
multiplybyElement1<<<>>>(B);
multiplybyElement2<<<>>>(A);
multiplybyElement3<<<>>>(C);
// A + B + C with CUBLAS' cublasSaxpy
基本上每个内核(首先是卷积除外)都会执行一个矩阵每个元素乘以一个硬编码在其常量内存中的固定值(以加快速度)。
我是否应该通过调用类似的方法将这些内核合并为一个单独的内核
multiplyBbyX_AbyY_CbyZ<<<>>>(B,A,C)
?
全局内存应该已经在设备上,所以这可能无济于事,但我不完全确定
【问题讨论】:
-
你能尝试测试这两个版本,看看哪个更好吗?无论如何,由于您正在跨内核调用重用内存中的数据,我怀疑性能会有任何差异。