mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
# MobileGL - tools/device_bench/disagg/snapdiff.py
|
|
# Copyright (c) 2025-2026 MobileGL-Dev
|
|
# Licensed under the GNU Lesser General Public License v3.0:
|
|
# https://www.gnu.org/licenses/gpl-3.0.txt
|
|
# https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
# SPDX-License-Identifier: LGPL-3.0-only
|
|
# End of Source File Header
|
|
|
|
import sys
|
|
def rd(p):
|
|
L=open(p).read().split('\n'); up=float(L[0].split()[0]); gpu=sum(int(x) for x in L[1].split())
|
|
T={}
|
|
for l in L[2:]:
|
|
f=l.split()
|
|
if len(f)>=5 and f[0]=='T': T[f[1]]=(int(f[2]),int(f[3]),int(f[4]),' '.join(f[5:]))
|
|
return up,gpu,T
|
|
a=rd(sys.argv[1]); b=rd(sys.argv[2]); wall=b[0]-a[0]
|
|
print(f"wall {wall:.2f}s gpu_clock_stats delta {(b[1]-a[1])/1e6:.3f} (units?) per wall-s {(b[1]-a[1])/wall/1e6:.3f}")
|
|
rows=[]
|
|
for k,v in b[2].items():
|
|
if k in a[2]:
|
|
u=a[2][k]; rows.append(((v[0]-u[0])/1e6,(v[1]-u[1])/1e6,v[2]-u[2],v[3],k))
|
|
rows.sort(reverse=True)
|
|
for r in rows[:12]: print(f"{r[3]:<22} tid {r[4]:>6} cpu {r[0]:8.1f} ms ({100*r[0]/1e3/wall:5.1f}%) runq-wait {r[1]:7.1f} ms switches {r[2]}")
|