我目前正在使用CUDA
nVidia GTX 480进行开发。根据规范,该卡有 15 个流式多处理器 (SM),CUDA
每个具有 32 个内核。
我的代码适用于N
每个具有 32 个内核的块。
理想情况下,如果N <= 15
,我希望,因为每个块都可以分配给不同的 SM,所以每个块的运行速度与单个块一样快。对于“N > 15”,随着块开始共享 SM,每个单独块的性能应该会衰减。如果maxocc
是我的内核的最大占用率,那么性能应该停滞不前N > 15*maxocc
,因为并非所有块都可以在 SM 上调度。
这也几乎是我在实践中观察到的:每个单独块的性能开始衰减,N = 12
性能停滞不前N = 57
,即好像有三个额外的块占用了 SM。
我没有运行其他使用 GTX 480 的程序。但是,该卡连接到运行文本控制台的外部显示器,即不是 X-windows。
现在问题来了:有谁知道使用 GTX 480 驱动控制台是否占用CUDA
资源?如果是这样,具体是多少?以及如何避免这种情况,即如何在不CUDA
完全停用设备的情况下停用视频输出?