当我开始我的程序并与我的卡(Tesla K20c)进行通信时,我在代码中第一次拨打卡时丢失了很多时间,我不知道为什么。似乎每当他试图搜索所有可能的牌时。如果我使用cudasetdevice()来定义我的卡,我有同样的问题。
用户时间:1.420
系统时间:4.660
已用时间:6.490
系统时间表示此丢失时间。当我在另一台带有GeForce GTX 560 Ti(功能较弱且较旧的卡)的计算机上运行程序时,您可以看到系统时间正常。
用户时间:1.620
系统时间:0.700
已用时间:3.120
这个问题是程序时间的两倍,我理解为什么。这是我第一次遇到这种卡问题。
是因为卡片太近了而且cuda库还没有优化?
我使用5.0版cuda。
答案 0 :(得分:2)
这是因为正在加载CUDA驱动程序,并且每次都会创建一个CUDA上下文(所有数据和程序都保存在设备中的环境),这需要大量的簿记。您可以通过以root身份执行以下操作来强制加载驱动程序:
nvidia-smi -pm 1
这将启用所谓的“持久模式”(将其设置为0以禁用)。这将加快您的初始化。