gpt4 book ai didi

cuda - CUDA与OpenCL性能比较

转载 作者:行者123 更新时间:2023-12-03 14:48:58 26 4
gpt4 key购买 nike

我正在使用CUDA 6.0和CUDA SDK附带的OpenCL实施。对于每个平台,我都有两个相同的内核(它们在特定于平台的关键字上有所不同)。它们仅读写全局内存,每个线程的位置不同。 CUDA的启动配置为200 blocks of 250 threads (1D),它直接对应于OpenCL的配置-50,000 global work size and 250 local work size

OpenCL代码运行速度更快。这可能吗,或者我计时错了吗?我的理解是NVIDIA的OpenCL实现基于CUDA。使用OpenCL,我的性能提高了约15%。

如果您能提出我为什么会看到这种情况,以及由NVIDIA实现的CUDA和OpenCL之间的某些差异,那将是很棒的选择?

最佳答案

在现代GPU上执行的内核几乎不受计算限制,并且几乎始终受内存带宽限制。 (因为与可用的内存路径相比,正在运行的计算核心太多了。)

这意味着给定内核的性能通常很大程度上取决于给定算法所展现的内存访问模式。

在实践中,这使得很难提前预测(甚至理解)期望的性能。

您观察到的差异可能是由于两个内核之间的内存访问模式存在细微差异,这是由OpenCL与CUDA工具链进行的不同优化导致的。

要了解如何优化GPU内核,有必要了解可用内存缓存硬件的详细信息以及如何最大程度地利用它。 (例如,战略性地使用“本地”内存缓存,而不是始终直接访问OpenCL中的“全局”内存。)

关于cuda - CUDA与OpenCL性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23498543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com