forked from M-Labs/artiq
benchmarks: add rpc_timing
This commit is contained in:
parent
e10390d142
commit
dda5c167b8
|
@ -1,9 +1,9 @@
|
||||||
from artiq import *
|
from artiq import *
|
||||||
|
|
||||||
import pulse_rate, rtio_skew
|
import pulse_rate, rtio_skew, rpc_timing
|
||||||
|
|
||||||
|
|
||||||
_units = [pulse_rate.PulseRate, rtio_skew.RTIOSkew]
|
_units = [pulse_rate.PulseRate, rtio_skew.RTIOSkew, rpc_timing.RPCTiming]
|
||||||
|
|
||||||
class AllBenchmarks(AutoDB):
|
class AllBenchmarks(AutoDB):
|
||||||
def build(self):
|
def build(self):
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
from math import sqrt
|
||||||
|
|
||||||
|
from artiq import *
|
||||||
|
|
||||||
|
|
||||||
|
class RPCTiming(AutoDB):
|
||||||
|
class DBKeys:
|
||||||
|
repeats = Argument(100)
|
||||||
|
rpc_time_mean = Result()
|
||||||
|
rpc_time_stddev = Result()
|
||||||
|
|
||||||
|
def nop(self, x):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def bench(self):
|
||||||
|
self.ts = [0.0 for _ in range(self.repeats)]
|
||||||
|
for i in range(self.repeats):
|
||||||
|
t1 = self.core.get_rtio_time()
|
||||||
|
self.nop(10)
|
||||||
|
t2 = self.core.get_rtio_time()
|
||||||
|
self.ts[i] = float(t2.amount - t1.amount)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
self.bench()
|
||||||
|
mean = sum(self.ts)/self.repeats
|
||||||
|
self.rpc_time_stddev = sqrt(
|
||||||
|
sum([(t - mean)**2 for t in self.ts]))/self.repeats*s
|
||||||
|
self.rpc_time_mean = mean*s
|
Loading…
Reference in New Issue