在nvidia-smi中,G和C类型是什么意思?

14

我有一个未解决的问题,因为我认为我的cuda代码没有在GPU上运行(这里)。因为当我使用nvidia-smi时,在进程的类型字段中得到C,所以我认为它没有在GPU上运行,但是当我运行代码时,我发现我的GPU-Util增长了,所以现在我不知道它是否正在CPU或GPU上运行。请问有人能向我解释一下C或G类型的含义吗?我找到了这句话:“显示为“C”表示计算进程,“G”表示图形进程,而具有计算和图形上下文的进程则为“C + G”。”,但我不明白它是否意味着C代表CPU,G代表GPU,因为我不知道“计算进程”和“图形进程”是什么,或者它们之间的区别。


4
它们都用于GPU。C代表计算,可以使用CUDA或OpenCL。G代表图形,可以使用DirectX或OpenGL。 - talonmies
@talonmies,由于关闭问题没有成功,我将您的评论添加为答案。请随意编辑它。 - Ander Biguri
2个回答

21

它们都与GPU有关。

  • C = 计算 = CUDA 或 OpenCL
  • G = 图形 = DirectX 或 OpenGL

15

enter image description here

根据Ubuntu的man页面定义,此处链接为:https://manpages.ubuntu.com/manpages/precise/man1/alt-nvidia-current-smi.1.html
  • C = 计算,定义使用CUDA库的Nvidia GPU的计算模式的进程,用于使用Tensorflow-GPU、Pytorch等进行深度学习训练和推理
  • G = 图形,定义使用专业3D图形、gnome-shell(Ubuntu的GUI环境)、游戏等使用Nvidia GPU的图形模式的进程,用于渲染图形或视频
  • C+G = 计算 + 图形,定义同时使用上述两个上下文的进程。
nvidia-smi开发者文档 - NVIDIA系统管理接口程序 http://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf 如果您想更深入地了解Nvidia Turing GPU的架构组件,请查看白皮书@ https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/technologies/turing-architecture/NVIDIA-Turing-Architecture-Whitepaper.pdf 作为一般规则,所有在像 ML 这样广泛的软件栈上工作的人都应该对他们所处理的硬件组件有很好的理解。

这是一个老问题,但是对于你的帖子有一个小澄清:OP并不是在从事机器学习,而且“C”不仅仅是用于深度学习。CUDA在机器学习出现之前就被广泛使用,并且在非机器学习应用中仍然被广泛使用。特别是因为你最后的评论而发表评论:是的,人们应该了解硬件,但并不是所有GPU都是用于机器学习的。 - Ander Biguri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接