我有两台硬件完全相同的机器。在它们上面,我安装了 1 个 Debian 和 1 个使用 buildroot linux 映像自定义构建的机器。
我遇到的问题是:
对于我的应用程序,与自定义构建图像机器相比,我在 Debian 机器上获得了大约 2 倍的性能。
我试图了解是什么导致了这种差异。
cuda版本是7.5
驱动程序版本是:
Debian:361.28
Custom:367.27
一些可能相关的信息:
如果我在两台机器上运行 deviceQuery(来自 cuda 示例),结果几乎相同但不完全相同:
第一个区别是在行中:
这是针对 Debian 的:
全局内存总量:3069 MBytes
这是针对 Custom 的:
全局内存总量:3008 MBytes
(虽然我怀疑这种差异会导致提到的性能差异。)
另一个区别是:
Debian:
内核的运行时间限制:是
Custom:
内核的运行时间限制:否
(两个系统上都有 X 服务器,但在定制系统上它是一个带有 twm 的准系统 X)
如果我从样本运行带宽测试,则主机到设备带宽、1 个设备以及设备到主机带宽、1 个设备的结果大致相同,但设备到设备带宽、1 个设备的结果可能存在显著差异。
因此,对于 Debian 上的最后一个条目值,其范围在 100k MB/s 左右(尽管有时会下降到 63k 左右),
对于自定义,其范围始终在 63k 左右。
如果您能为我提供建议,告诉我应该进一步调查什么以及可能存在什么问题,我将非常高兴。
谢谢!
更新:
为此,我曾尝试在定制系统上使用 nvidia 运行 X 服务器。(使用 intel 运行 X 不会对性能产生任何明显影响)。它没有完全启动,但也没有崩溃。
有趣的是 - 如果我启动应用程序时 X 处于半启动状态 - 性能会下降更多(总体上比 Debian 下降了 4 倍以上)
更新2:我刚刚尝试在定制机器上更新到 CUDA 8 - 并没有改变所描述的情况。
更新3: http://cuda-z.sourceforge.net/ 对于它可以测量的每种类型的操作,在自定义系统上显示 2 倍或更多的性能降低。(并且设备到设备的内存复制也几乎降低了 2 倍)
答案1
好的,最终有帮助的是更新安装 nvidia 驱动程序的方式以获得一整套 nvidia 实用程序(更改默认的 buildroot nvidia mk)。并在启动 X 服务器后运行应用程序。尽管这保持不变:内核的运行时间限制:无