文本分类的项目,有个需求是测服务器算力,*终填写表格如下:

%title插图%num

需要测试的是一秒能跑多少词,多少条文本,以及每个词和文本占用的内存和显存。
测试方式:去除模型加载等不需要的时间,采取逐步加数据量的方式,通过差值计算。

一、测试运行时间

from time import time

start = time()
for i in range(10):
print(“你要测试的代码段”)
stop = time()
print(“Stop: ” + str(stop))
print(str(stop-start) + “秒”)

二、测内存占用

memory_profiler 每行代码的内存使用情况

首先,安装所需要的模块

pip install memory_profiler
pip install psutil

##导包,函数前加装饰器
from memory_profiler import profile

@profile(precision=4,stream=open(‘memory_profiler.log’,’w+’))
def test():
pass

脚本运行方式:
运行方式不同

mprof run memory_profiler_test.py : 分析结果会保存到一个 .dat格式文件中
mprof plot :把结果以图片到方式显示出来(直接在本目录下运行此命令即可,程序会自动找出.dat文件,也可以直接打开,看具体数值) (要安装 pip install matplotlib)
mprof clean : : 清空所有 .dat文件

三、测显存

pip安装pynvml

pip install nvidia-ml-py3

这一块不是太懂,我自己的使用方式是运行我的模型,然后用再运行下面的代码脚本。

import pynvml
pynvml.nvmlInit()
# 这里的0是GPU id
handle = pynvml.nvmlDeviceGetHandleByIndex(0) # 指定GPU ID ,这里指定为0
meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
print(meminfo.used)

*后的显示结果应该是字节。