我目前正在使用CUDAnVidia 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完全停用设备的情况下停用视频输出?