benchmarks: add rpc_timing

This commit is contained in:
Sebastien Bourdeauducq 2015-02-18 09:57:00 -07:00
parent e10390d142
commit dda5c167b8
2 changed files with 31 additions and 2 deletions

View File

@ -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):

29
benchmarks/rpc_timing.py Normal file
View File

@ -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