1

当我启动我的程序并与我的卡(Tesla K20c)进行通信时,我在代码中第一次调用卡时浪费了很多时间,我不知道为什么。似乎每次他都试图搜索所有可能的卡片。如果我使用 cudasetdevice() 来定义我的卡,我也会遇到同样的问题。

用户时间(秒):1.420

系统时间(秒):4.660

经过时间(秒):6.490

系统时间代表这个丢失的时间。当我在另一台使用 GeForce GTX 560 Ti(功能较弱且较旧的显卡)的计算机上运行我的程序时,您可以看到系统时间正常。

用户时间(秒):1.620

系统时间(秒):0.700

经过时间(秒):3.120

这个问题是程序时间的两倍,我会理解为什么。这是我第一次遇到这种卡问题。

是因为卡太新而且 cuda 库还没有优化吗?

我使用版本 5.0 cuda。

4

1 回答 1

2

这是由于每次都会加载 CUDA 驱动程序和创建 CUDA 上下文(所有数据和程序都保存在设备中的环境),这需要大量记账。您可以通过以 root 身份执行以下操作来强制始终加载驱动程序:

nvidia-smi -pm 1

这将启用所谓的“持久模式”(将其设置为 0 以禁用)。这将加快您的初始化。

于 2013-08-20T09:37:08.590 回答