记录自己最近有趣的发现
由于实验室各方面条件都不到位,只能在自己笔记本上跑程序,有时候上一个程序跑完,下一个程序就得接着跑起来,最大化利用时间吧。
但有时候程序在半夜就结束运行了,此时处于无人值守状态,现提供两种解决方案
这个方法需要估计出上一个程序结束的大概时间,然后设置好下一个程序运行的时间
import time
if __name__ == '__main__':
while True:
time_now = time.strftime("%H:%M:%S", time.localtime()) # 刷新
if time_now == "01:00:00": # 此处设置定时的时间
检测显存运行
首先需要安装pynvml: pip install nvidia-ml-py
检测GPU显存,当剩余的显存大于某个数值的时候,程序开始运行
import pynvml
if __name__ == '__main__':
while True:
pynvml.nvmlInit()
# 这里的0是GPU id
handle = pynvml.nvmlDeviceGetHandleByIndex(0)
meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
total = meminfo.total // 1024 ** 2 # 显卡总的显存大小
used = meminfo.used // 1024 ** 2 # 这里是字节bytes,所以要想得到以兆M为单位就需要除以1024**2
free = meminfo.free // 1024 ** 2
if free > 8000:
这里容易报错
Traceback (most recent call last):
File "C:Anaconda3envs..libsite-packagespynvml.py", line 641, in _LoadNvmlLibrary
nvmlLib = CDLL(os.path.join(os.getenv("ProgramFiles", "C:/Program Files"), "NVIDIA Corporation/NVSMI/nvml.dll"))
File "C:Anaconda3envs..libctypes__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。
这个需要在“C:Program FilesNVIDIA CorporationNVSMI”文件夹下面放入nvml.dll文件
这样将程序运行后,符合条件时,程序自动执行之后的代码 致谢https://www.jb51.net/article/167777.htm
https://blog.csdn.net/m0_37661841/article/details/108626933



