大型语言模型可以使用比允许的默认分数更多的 GPU 内存。在配备 M1 Max 和 32GB RAM 的 MacBook 上,我可以在终端中使用以下命令设置 GPU 内存使用上限:
sudo sysctl iogpu.wired_limit_mb=24000
我想在启动时设置此命令。我尝试按照此处的说明将 plist 文件放入 /Library/Daemons/ 中:在 Mac“Big Sur”上配置共享内存。当然,我更改了程序参数以符合我的目的。我的 plist 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>shmemsetup</string>
<key>UserName</key>
<string>root</string>
<key>GroupName</key>
<string>wheel</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>iogpu.wired_limit_mb=24000</string>
</array>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
重启后我发现什么都没有改变。终端命令:
sysctl iogpu.wired_limit_mb
显示默认的0,而不是请求的24000
那么,我该如何完成这个任务:设置启动时允许的最大 GPU 内存?
我还尝试了 plist 文件的变体,并尝试将其放入 /Library/LaunchAgents 但没有任何效果。唯一的选择是每次重新启动后使用终端命令。
我认为
/etc/sysctl.conf
仍然有效,所以:
echo iogpu.wired_limit_mb=24000 | sudo tee -a /etc/sysctl.conf
(
man sysctl.conf
了解更多信息)