时间:2023-05-28 来源:网络 人气:
在数据处理和深度学习领域,GPU已成为必不可少的工具。然而,有时候我们会遇到一个问题:如何将GPU设置为主卡?在本篇文章中,我们将深入探讨这个问题,并提供详细的解决方案。
什么是GPU主卡?
在多GPU系统中,有一个显卡会被指定为主卡,负责显示器的输出以及处理计算任务。默认情况下,Linux系统会将第一块检测到的显卡设置为主卡。但是,在某些情况下,我们需要手动更改主卡设置。
如何设置GPU主卡?
首先,我们需要查看当前系统中所有显卡的信息。可以通过以下命令来实现:
lspci|grepVGA
这个命令将列出所有检测到的显卡信息。例如,输出可能如下所示:
00:02.0VGAcompatiblecontroller:IntelCorporationHDGraphics620(rev02)
01:00.0VGAcompatiblecontroller:NVIDIACorporationGP107M[GeForceGTX1050Mobile](reva1)
在上面的输出中,第一行表示Intel集成显卡,第二行则表示NVIDIA独立显卡。
现在我们需要编辑GRUB文件并添加相应的内核参数。GRUB是Linux系统中的引导程序,它负责加载内核并启动系统。我们需要在GRUB中添加以下参数:
pci=nocrs,realloc=off
打开GRUB配置文件,可以通过以下命令实现:
sudovim/etc/default/grub
在打开的文件中找到如下行:
GRUB_CMDLINE_LINUX_DEFAULT="quietsplash"
将其修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quietsplashpci=nocrs,realloc=off"
保存并关闭文件后,运行以下命令使更改生效:
sudoupdate-grub
此时,我们需要重启系统以使更改生效。重启后,使用以下命令验证主卡设置是否已更改:
lspci-vnn|grepVGA-A12
如果主卡设置成功,则输出应该类似于以下内容:
00:02.0VGAcompatiblecontroller[0300]:IntelCorporationHDGraphics620[8086:5916](rev02)(prog-if00[VGAcontroller])
Subsystem:DellHDGraphics620[1028:07f9]
Flags:busmaster,fastdevsel,latency0,IRQ140
Memoryateb000000(64-bit,non-prefetchable)[size=16M]
Memoryatd0000000(64-bit,prefetchable)[size=256M]
I/Oportsatf000[size=64]
[virtual]ExpansionROMat000c0000[disabled][size=128K]
Capabilities:
Kerneldriverinuse:i915
Kernelmodules:i915
01:00.0VGAcompatiblecontroller[0300]:NVIDIACorporationGP107M[GeForceGTX1050Mobile][10de:1c8d](reva1)(prog-if00[VGAcontroller])
Subsystem:DellGP107M[GeForceGTX1050Mobile][1028:07f9]
Flags:busmaster,fastdevsel,latency0,IRQ11
Memoryatec000000(32-bit,non-prefetchable)[size=16M]
Memoryatb0000000(64-bit,prefetchable)[size=256M]
Memoryatc0000000(64-bit,prefetchable)[size=32M]
I/Oportsate000[size=128]
ExpansionROMated000000[disabled][size=512K]
Capabilities:
Kerneldriverinuse:nvidia
Kernelmodules:nvidiafb,nouveau,nvidia_drm,nvidia
可以看到,第一块显卡已被设置为主卡。现在,我们可以在Linux中愉快地进行GPU计算了!
总结
本文介绍了如何在Linux系统中设置GPU主卡。通过编辑GRUB文件并添加相应的内核参数,我们可以轻松地更改主卡设置。希望这篇文章能够帮助大家解决GPU计算中遇到的问题。
tokenpocket钱包:https://cjge-manuscriptcentral.com/software/7091.html