首页 > 编程语言 >python引用另一个py文件中的类中函数

python引用另一个py文件中的类中函数

时间:2022-10-01 10:55:32浏览次数:48  
标签:info get python py free pynvml 引用 gpu id

1.获取gpu信息的文件gpu_info.py

cat gpu_info.py 
import pynvml   #获取GPU信息

 
class GpuInfo(object):
    def __init__(self):
        #初始化
        pynvml.nvmlInit()
 
    def get_gpu_device(self):
        deviceCount = pynvml.nvmlDeviceGetCount()
        gpu_list = []
        for i in range(deviceCount):
            handle = pynvml.nvmlDeviceGetHandleByIndex(i)
            print("GPU", i, ":", pynvml.nvmlDeviceGetName(handle))
            gpu_list.append(i)
        return gpu_list
 
    def get_free_rate(self, gpu_id):
        handle = pynvml.nvmlDeviceGetHandleByIndex(gpu_id)
        info = pynvml.nvmlDeviceGetMemoryInfo(handle)
        free_rate = int((info.free / info.total) * 100)
        return free_rate
 
    def get_gpu_info(self, gpu_id):
        handle = pynvml.nvmlDeviceGetHandleByIndex(gpu_id)
        info = pynvml.nvmlDeviceGetMemoryInfo(handle)
        M = 1024*1024
        gpu_info = "id:{}  total:{}M free:{}M  used:{}M free_rate:{}%".format(gpu_id, info.total/M, info.free/M, info.used/M, self.get_free_rate(gpu_id))
    
        return gpu_info
 
    def release(self):
        #最后要关闭管理工具
        pynvml.nvmlShutdown()
    
 
if __name__ == "__main__":

    print("GPU INFO----------------------------")
    gpu_info = GpuInfo()
    gpu_devices = gpu_info.get_gpu_device()
    print("GPU USE INFO----------------------------")
    for gpuid in gpu_devices:
        print(gpu_info.get_gpu_info(gpuid))
    gpu_info.release()


2. 引用gpu_info.py文件
cat app.py 

from gpu_info import GpuInfo

gf = GpuInfo()
a = gf.get_gpu_device()
print(a)

 

标签:info,get,python,py,free,pynvml,引用,gpu,id
From: https://www.cnblogs.com/Leonardo-li/p/16746892.html

相关文章

  • 1.Python环境与数据分析
    今天是科研能力提升强化培训的第一天,简单记录下培训过程一、安装软件1.安装python2.安装anaconda3.安装jupyternotebook4.安装pycharm二、numpy基础1.numpy的ndarr......
  • nohup训练pytorch模型时的报错以及tmux的简单使用
    问题:在使用nohup命令后台训练pytorch模型时,关闭ssh窗口,有时会遇到下面报错:WARNING:torch.distributed.elastic.agent.server.api:Received1deathsignal,shuttingdo......
  • 数据库03- pycharm连接mysql
    3,Python连接操作MySQL安装配置git与pycharm连接pycharm从gitee拉取代码从git官网下载新版的git,安装操作可以全部使用默认下一步直到完成。打开pycharm-->setting-->......
  • python---pefile
    python---pefilepefile可以解析、读取或修改PE文件。github地址:https://github.com/erocarrera/pefile/一些示例地址:https://github.com/erocarrera/pefile/blob/wi......
  • python(内置方法操作2)
    今日内容概要字典相关操作元组相关操作集合相关操作字符编码(理论)今日内容总结今天主要讲了一些昨日剩下的数据类型的内置方法以及一些相关的操作,一共有,字典。元组.......
  • Python基本算法实现及总结归纳
    @目录冒泡排序快速排序插入排序选择排序希尔排序归并排序各个算法的时间复杂度附:二分法冒泡排序这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(......
  • Copy 程序变式
    货铺QQ群号:834508274之前因为修改老程序,为方便对比,就copy出来一个新的,在新的上面做的调整。后来上线后,用户反映之前保存的变式没了……额,好吧,我当时应该copy出来后在老的上......
  • pytest
    pytesthttps://docs.pytest.org/en/7.1.x/contents.html#contentoftest_sample.pydeffunc(x):returnx+1deftest_answer():assertfunc(3)==5......
  • python的time库详解
    time库的使用:Python中内置了一些与时间处理相关的库,如time、datatime和calendar库。其中time库是Python中处理时间的标准库,是最基础的时间处理库。time库的功能如下:(1)计......
  • 【python基础教程】csv文件的写入与读取
      csv的简单介绍 CSV(CommaSeparatedValues),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程......