forked from M-Labs/artiq
benchmarks/*: remove
Benchmarks should be shaped as unittests and run as part of CI.
This commit is contained in:
parent
f7427dda39
commit
5442ae312f
@ -1,18 +0,0 @@
|
||||
from artiq import *
|
||||
|
||||
import pulse_rate, rtio_skew, rpc_timing
|
||||
|
||||
|
||||
_exps = [pulse_rate.PulseRate, rtio_skew.RTIOSkew, rpc_timing.RPCTiming]
|
||||
|
||||
class AllBenchmarks(Experiment, AutoDB):
|
||||
"""All benchmarks"""
|
||||
|
||||
def build(self):
|
||||
self.se = []
|
||||
for exp in _exps:
|
||||
self.se.append(exp(self.dbh))
|
||||
|
||||
def run(self):
|
||||
for se in self.se:
|
||||
se.run()
|
@ -1,28 +0,0 @@
|
||||
{
|
||||
"comm": {
|
||||
"type": "local",
|
||||
"module": "artiq.coredevice.comm_tcp",
|
||||
"class": "Comm",
|
||||
"arguments": {"host": "192.168.0.42"}
|
||||
},
|
||||
"core": {
|
||||
"type": "local",
|
||||
"module": "artiq.coredevice.core",
|
||||
"class": "Core",
|
||||
"arguments": {}
|
||||
},
|
||||
|
||||
"pmt0": {
|
||||
"type": "local",
|
||||
"module": "artiq.coredevice.ttl",
|
||||
"class": "TTLInOut",
|
||||
"arguments": {"channel": 0}
|
||||
},
|
||||
|
||||
"ttl0": {
|
||||
"type": "local",
|
||||
"module": "artiq.coredevice.ttl",
|
||||
"class": "TTLOut",
|
||||
"arguments": {"channel": 2}
|
||||
},
|
||||
}
|
@ -1 +0,0 @@
|
||||
{}
|
@ -1,26 +0,0 @@
|
||||
from artiq import *
|
||||
from artiq.coredevice.runtime_exceptions import RTIOUnderflow
|
||||
|
||||
|
||||
class PulseRate(Experiment, AutoDB):
|
||||
"""Sustained pulse rate"""
|
||||
|
||||
class DBKeys:
|
||||
core = Device()
|
||||
ttl0 = Device()
|
||||
pulse_rate = Result()
|
||||
|
||||
@kernel
|
||||
def run(self):
|
||||
T = time_to_cycles(100*ns)
|
||||
while True:
|
||||
try:
|
||||
for i in range(1000):
|
||||
self.ttl0.pulse(cycles_to_time(T))
|
||||
delay(cycles_to_time(T))
|
||||
except RTIOUnderflow:
|
||||
T += 1
|
||||
self.core.break_realtime()
|
||||
else:
|
||||
self.pulse_rate = cycles_to_time(2*T)
|
||||
break
|
@ -1,32 +0,0 @@
|
||||
from math import sqrt
|
||||
|
||||
from artiq import *
|
||||
|
||||
|
||||
class RPCTiming(Experiment, AutoDB):
|
||||
"""RPC timing"""
|
||||
|
||||
class DBKeys:
|
||||
core = Device()
|
||||
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] = t2 - t1
|
||||
|
||||
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
|
@ -1,29 +0,0 @@
|
||||
from artiq import *
|
||||
|
||||
|
||||
class PulseNotReceived(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class RTIOSkew(Experiment, AutoDB):
|
||||
"""RTIO skew"""
|
||||
|
||||
class DBKeys:
|
||||
core = Device()
|
||||
pmt0 = Device()
|
||||
rtio_skew = Result()
|
||||
|
||||
@kernel
|
||||
def run(self):
|
||||
self.pmt0.output()
|
||||
delay(1*us)
|
||||
with parallel:
|
||||
self.pmt0.gate_rising(10*us)
|
||||
with sequential:
|
||||
delay(5*us)
|
||||
out_t = now()
|
||||
self.pmt0.pulse(5*us)
|
||||
in_t = self.pmt0.timestamp()
|
||||
if in_t < 0*s:
|
||||
raise PulseNotReceived
|
||||
self.rtio_skew = out_t - in_t
|
Loading…
Reference in New Issue
Block a user