Cuda 如何处理NVIDIA图形卡中的ECC支持功能

Cuda 如何处理NVIDIA图形卡中的ECC支持功能,cuda,nvidia,Cuda,Nvidia,服务器设置了两张NVIDIA K20m卡,但启用了ECC。我观察到,使用nvidia smi-a命令,即使卡中没有运行任何计算任务,Volatile GPU利用率也很高。K20m仅用于计算。我在谷歌中搜索,并查看了以下链接:和 似乎ECC总是一个坏功能,因此它总是设置为禁用。那么ECC的真正含义是什么呢?我只是该服务器的普通用户,因此我无权使用命令nvidia smi-e 0将ECC设置为禁用。普通用户是否可以将ECC设置为禁用 关闭ECC会产生什么影响?我们应该什么时候打开它?关闭时?即使没有

服务器设置了两张
NVIDIA K20m
卡,但启用了
ECC
。我观察到,使用
nvidia smi-a
命令,即使卡中没有运行任何计算任务,
Volatile GPU利用率也很高。
K20m
仅用于计算。我在
谷歌
中搜索,并查看了以下链接:和

似乎
ECC
总是一个坏功能,因此它总是设置为
禁用
。那么
ECC
的真正含义是什么呢?我只是该服务器的普通用户,因此我无权使用命令
nvidia smi-e 0
ECC
设置为禁用。普通用户是否可以将
ECC
设置为禁用


关闭
ECC
会产生什么影响?我们应该什么时候打开它?关闭时?

即使没有运行其他计算任务,在运行nvidia smi时,GPU利用率也可能变为非零。这与ECC没有连接

那么ECC的真正含义是什么

ECC是。它不是GPU独有的。在GPU上,它是一种使用额外内存位存储错误信息的功能,因此,如果内存子系统中发生错误(特别严重),则可以检测并报告错误,或者检测并纠正错误

普通用户是否可以将ECC设置为禁用

在linux上禁用ECC需要root权限

当我们关闭ECC时会产生什么影响

GPU应用程序的可用带宽和内存大小可能会增加。如果关闭ECC并发生内存子系统错误,则不会收到明确的通知。根据错误发生的上下文,该错误可能会产生从完全无效到完全应用程序崩溃的各种影响

我们应该什么时候打开它?什么时候下班

当您想要防止内存损坏错误时,请启用它。如果您希望获得最高性能(例如,进行基准测试),或者您认为您的应用程序可以容忍内存错误(例如,您检查结果的有效性,并且不介意重新运行因某种原因失败的应用程序),请将其关闭


请注意,一些具有HBM(HBM2)内存的较新GPU可能具有以下特性:。由于HBM2内存的设计,启用ECC通常会导致很少或没有性能损失(带宽),并且不会减少内存大小。对于具有HBM2内存的GPU,一般建议始终保持ECC打开。

谢谢,先生。事实上,我刚刚发现,如果valatile GPU的利用率很高,系统的响应就会非常慢。当我将作业提交到集群中时,调度程序使用GPU将作业分配到计算节点,然后进程也会缓慢启动。所以我想知道是否有配置错误。
SDK
CUDA-6.0
,驱动程序也是如此。我在那些使用GPU的计算节点上进行了测试,发现一些机器对GPU使用请求的响应很慢,但其他的都可以。所以我想找出问题所在。在一个节点上,
lspci
显示两个
K20m
GPU已设置,但当我使用
nvidia smi
时,它表示找不到它们,并输出“无法确定GPU 0000:81:00.0的设备句柄”。我想我也应该向集群经理寻求帮助。非常感谢。是否可以在没有GPU卡的情况下禁用ECC?Ie我正在一台没有GPU的机器上建立一个映像,但是当我使用映像时,机器将有一个GPU,我希望在这一点上禁用ECC。现在我不能在启动时这样做,因为我必须重新启动GPU盒。打开和关闭ECC必须以编程方式完成。通常这意味着GPU必须存在,您可以使用
nvidia smi
命令行工具在相关GPU上启用或禁用它。您可以使用NVML库执行类似的功能,我还没有对此进行彻底研究。如果是这种情况,那么它将允许您编译一个程序并使用NVML打开和关闭ECC。但是,在程序/更改完成后,打开和关闭ECC需要重新启动。嗨@RobertCrovella,我还有另一个问题:对于深度学习应用程序,带16x/16x的双向SLI和带8x/8x的双向SLI之间有什么区别吗?在第二种模式中,GPU的吞吐量受到带宽的限制,对吗?谢谢