CPU集成GPU是否存在PCIe总线数据传输开销?附性能测试对比
问题
CPU中的集成GPU是否像CPU与独立GPU之间传输数据那样,存在PCIe总线数据传输开销?
提出该问题是因为,在处理超大规模数据集时,基于OpenCL的GPU加速计算在Intel(R) Iris(R) Xe Graphics集成GPU上的表现优于NVIDIA T500独立GPU;但处理小数据集时,NVIDIA GPU速度更快。
性能测试
N同时代表线程数!
OpenCL GPU Intel(R) Iris(R) Xe Graphics
PerformanceTestOpenCLAccelerationCalculation,N=100
- 处理耗时:0.0016272秒(N = 100)
- 处理耗时:0.0014396秒(N = 100)
- 处理耗时:0.0012167秒(N = 100)
- 处理耗时:0.0017356秒(N = 100)
- 处理耗时:0.0011649秒(N = 100)
PerformanceTestOpenCLAccelerationCalculation,N=1000
- 处理耗时:0.0026064秒(N = 1000)
- 处理耗时:0.0023835秒(N = 1000)
- 处理耗时:0.0024709秒(N = 1000)
- 处理耗时:0.002758秒(N = 1000)
- 处理耗时:0.0028464秒(N = 1000)
PerformanceTestOpenCLAccelerationCalculation,N=10000
- 处理耗时:0.0207773秒(N = 10000)
- 处理耗时:0.0205991秒(N = 10000)
- 处理耗时:0.0204573秒(N = 10000)
- 处理耗时:0.0213179秒(N = 10000)
- 处理耗时:0.0213915秒(N = 10000)
PerformanceTestOpenCLAccelerationCalculation,N=100000
- 处理耗时:1.2154342秒(N = 100000)
- 处理耗时:1.2097847秒(N = 100000)
- 处理耗时:1.214667秒(N = 100000)
- 处理耗时:1.2179605秒(N = 100000)
- 处理耗时:1.2161523秒(N = 100000)
PerformanceTestOpenCLAccelerationCalculation,N=1000000
- 处理耗时:3.0097172秒(N = 1000000)
- 处理耗时:7.0101114秒(N = 1000000)
- 处理耗时:3.5101502秒(N = 1000000)
- 处理耗时:3.0101302秒(N = 1000000)
- 处理耗时:7.0098925秒(N = 1000000)
OpenCL NVIDIA T500 GPU
PerformanceTestOpenCLAccelerationCalculation,N=100
- 处理耗时:0.0008086秒(N = 100)
- 处理耗时:0.0007528秒(N = 100)
- 处理耗时:0.000913秒(N = 100)
- 处理耗时:0.0008781秒(N = 100)
- 处理耗时:0.0007748秒(N = 100)
PerformanceTestOpenCLAccelerationCalculation,N=1000
- 处理耗时:0.0009754秒(N = 1000)
- 处理耗时:0.0009548秒(N = 1000)
- 处理耗时:0.0010413秒(N = 1000)
- 处理耗时:0.0009378秒(N = 1000)
- 处理耗时:0.0009792秒(N = 1000)
PerformanceTestOpenCLAccelerationCalculation,N=10000
- 处理耗时:0.0048292秒(N = 10000)
- 处理耗时:0.0049848秒(N = 10000)
- 处理耗时:0.0048261秒(N = 10000)
- 处理耗时:0.0048766秒(N = 10000)
- 处理耗时:0.3641353秒(疑似笔误,应为N=10000?)
PerformanceTestOpenCLAccelerationCalculation,N=100000
- 处理耗时:0.3648832秒(N = 100000)
- 处理耗时:0.364661秒(N = 100000)
- 处理耗时:0.3648172秒(疑似笔误,应为N=100000?)
- 处理耗时:0.3643978秒(N = 100000)
- 处理耗时:0.3636657秒(N = 100000)
PerformanceTestOpenCLAccelerationCalculation,N=1000000
- 处理耗时:36.6879734秒(N = 1000000)
- 处理耗时:37.7439221秒(N = 1000000)
- 处理耗时:37.7102053秒(N = 1000000)
- 处理耗时:37.7474797秒(N = 1000000)
- 处理耗时:37.4340912秒(N = 1000000)
回答
集成GPU和独立GPU的数据传输机制存在本质差异,直接导致了传输开销的不同:
集成GPU无PCIe传输开销:Intel Iris Xe这类集成GPU与CPU共享系统内存,数据无需通过PCIe总线来回传输,直接访问同一内存池。虽然仍有内存访问延迟,但不存在独立GPU那种PCIe总线的固定协议开销和带宽限制。
独立GPU的PCIe开销不可避免:NVIDIA T500这类独立GPU拥有专属显存,CPU与GPU之间的数据必须通过PCIe总线传输。这种传输的延迟和带宽限制在小数据集时影响尤为突出——数据传输耗时可能超过GPU计算本身的耗时,计算任务越简单,开销占比越高。
结合测试结果来看:
- 小数据集(N=100、1000):NVIDIA T500的单计算单元性能更强,此时PCIe传输开销占比小,整体速度更快。
- 超大规模数据集(N=1000000):PCIe数据传输的开销被无限放大,而集成GPU无需跨总线传输数据,内存访问效率的优势完全凸显,最终反超独立GPU。
另外测试数据中存在几处疑似笔误,建议修正后再做更精准的对比分析。
内容的提问来源于stack exchange,提问作者user13583700
相关产品推荐
相关产品推荐

