def test_L1_detour_at_side_switch_usage(self): """ [155] 191 [223] 224 225 x226x {227} test detour and predecessor settings at the edge of a wafer """ pylogging.set_loglevel(pylogging.get("marocco"), pylogging.LogLevel.TRACE) pylogging.set_loglevel(pylogging.get("Calibtic"), pylogging.LogLevel.ERROR) self.marocco.persist = '' # or add test suite TestWithRuntime? runtime = Runtime(self.marocco.default_wafer) pynn.setup(marocco=self.marocco, marocco_runtime=runtime) settings = pysthal.Settings.get() settings.synapse_switches.max_switches_per_column_per_side = 1 settings.crossbar_switches.max_switches_per_row = 1 source = pynn.Population(1, pynn.IF_cond_exp, {}) target1 = pynn.Population(1, pynn.IF_cond_exp, {}) target2 = pynn.Population(1, pynn.IF_cond_exp, {}) proj = pynn.Projection( source, target1, pynn.AllToAllConnector(weights=1.)) proj = pynn.Projection( source, target2, pynn.AllToAllConnector(weights=1.)) source_hicann = C.HICANNOnWafer(Enum(227)) target1_hicann = C.HICANNOnWafer(Enum(155)) target2_hicann = C.HICANNOnWafer(Enum(225)) self.marocco.manual_placement.on_hicann(source, source_hicann) self.marocco.manual_placement.on_hicann(target1, target1_hicann) self.marocco.manual_placement.on_hicann(target2, target2_hicann) disabled_hicanns = [226, 263] wafer = self.marocco.default_wafer self.marocco.defects.set(pyredman.Wafer(runtime.wafer().index())) for hicann in C.iter_all(C.HICANNOnWafer): if hicann.toEnum().value() in disabled_hicanns: self.marocco.defects.wafer().hicanns().disable(C.HICANNGlobal(hicann, wafer)) continue pynn.run(0) pynn.end() for hicann in runtime.wafer().getAllocatedHicannCoordinates(): h = runtime.wafer()[hicann] print(hicann, h.check()) self.assertEqual(h.check(), "")
def setup(self, timestep=1.0, min_delay=1.0, per_sim_params={}, **kwargs): setup_args = {'timestep': timestep, 'min_delay': min_delay} self._extra_config = per_sim_params if self.sim_name == BSS: #do extra setup for BrainScaleS wafer = per_sim_params.get("wafer", None) marocco = per_sim_params.get("marocco", PyMarocco()) if wafer is not None: sys.stdout.write("Specifying Wafer %d\n\n" % wafer) sys.stdout.flush() per_sim_params.pop('wafer') self.BSS_wafer = C.Wafer(int(wafer)) marocco.default_wafer = self.BSS_wafer self._wafer = WAL(wafer_id=wafer) runtime = Runtime(marocco.default_wafer) setup_args['marocco_runtime'] = runtime self.BSS_runtime = runtime calib_path = per_sim_params.get( "calib_path", "/wang/data/calibration/brainscales/wip") # "/wang/data/calibration/brainscales/current") marocco.calib_path = calib_path marocco.defects.path = marocco.calib_path # marocco.verification = PyMarocco.Skip # marocco.checkl1locking = PyMarocco.SkipCheck marocco.continue_despite_synapse_loss = True per_sim_params.pop('calib_path', None) setup_args['marocco'] = marocco self.marocco = marocco self.SYNAPSE_DECODER_DISABLED_SYNAPSE = HICANN.SynapseDecoder(1) for k in per_sim_params: setup_args[k] = per_sim_params[k] self._setup_args = setup_args self._sim.setup(**setup_args) # sys.exit(0) if self.sim_name == BSS: self._BSS_set_sthal_params(gmax=1023, gmax_div=1)
else: proxy.weight = HICANN.SynapseWeight(digital_w) proxy.decoder = original_decoders[syn] return out_mtx ############################################################################ ############################################################################ ############################################################################ wafer = int(os.environ.get("WAFER", 33)) marocco = PyMarocco() marocco.backend = PyMarocco.Hardware marocco.default_wafer = C.Wafer(wafer) runtime = Runtime(marocco.default_wafer) # calib_path = "/wang/data/calibration/brainscales/WIP-2018-09-18" # marocco.calib_path = calib_path # marocco.defects.path = marocco.calib_path marocco.verification = PyMarocco.Skip marocco.checkl1locking = PyMarocco.SkipCheck marocco.continue_despite_synapse_loss = True SYNAPSE_DECODER_DISABLED_SYNAPSE = HICANN.SynapseDecoder(1) ### ====================== NETWORK CONSTRUCTION =========================== ### sim.setup(timestep=1.0, min_delay=1.0, marocco=marocco, marocco_runtime=runtime) e_rev = 92 # mV
neuron_parameters = { 'cm': 0.2, 'v_reset': -70., 'v_rest': -20., 'v_thresh': -10, 'e_rev_I': -100., 'e_rev_E': 60., 'tau_m': 20., 'tau_refrac': 0.1, 'tau_syn_E': 5., 'tau_syn_I': 5., } marocco = PyMarocco() marocco.default_wafer = Wafer(int(os.environ.get("WAFER", 33))) runtime = Runtime(marocco.default_wafer) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network —————————————————————————————————————————————————————————— pop = pynn.Population(1, pynn.IF_cond_exp, neuron_parameters) pop.record() pop.record_v() hicann = HICANNOnWafer(Enum(297)) marocco.manual_placement.on_hicann(pop, hicann) connector = pynn.AllToAllConnector(weights=1) exc_spike_times = [
marocco.neuron_placement.minimize_number_of_sending_repeaters(False) marocco.merger_routing.strategy(marocco.merger_routing.one_to_one) marocco.bkg_gen_isi = 125 marocco.pll_freq = 125e6 marocco.backend = PyMarocco.Hardware marocco.calib_backend = PyMarocco.XML marocco.defects.path = marocco.calib_path = "/wang/data/calibration/ITL_2016" marocco.defects.backend = Defects.XML marocco.default_wafer = C.Wafer(33) marocco.param_trafo.use_big_capacitors = True marocco.input_placement.consider_firing_rate(True) marocco.input_placement.bandwidth_utilization(0.8) runtime = Runtime(marocco.default_wafer) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network —————————————————————————————————————————————————————————— pop = pynn.Population(1, pynn.IF_cond_exp, neuron_parameters) pop.record() pop.record_v() hicann = C.HICANNOnWafer(C.Enum(367)) marocco.manual_placement.on_hicann(pop, hicann) connector = pynn.AllToAllConnector(weights=1) exc_spike_times = [
neuron_parameters = { 'cm': 0.2, 'v_reset': -70., 'v_rest': -20., 'v_thresh': -10, 'e_rev_I': -100., 'e_rev_E': 60., 'tau_m': 20., 'tau_refrac': 0.1, 'tau_syn_E': 5., 'tau_syn_I': 5., } marocco = PyMarocco() marocco.default_wafer = Wafer(int(os.environ.get("WAFER", 33))) runtime = Runtime(marocco.default_wafer) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network —————————————————————————————————————————————————————————— pop = pynn.Population(1, pynn.IF_cond_exp, neuron_parameters) pop.record() pop.record_v() hicann = HICANNOnWafer(Enum(297)) marocco.manual_placement.on_hicann(pop, hicann) connector = pynn.AllToAllConnector(weights=1) duration = 1500.0
neuron_parameters = { 'cm': 0.2, 'v_reset': -70., 'v_rest': -20., 'v_thresh': -10, 'e_rev_I': -100., 'e_rev_E': 60., 'tau_m': 20., 'tau_refrac': 0.1, 'tau_syn_E': 5., 'tau_syn_I': 5., } marocco = PyMarocco() marocco.default_wafer = C.Wafer(int(os.environ.get("WAFER", 33))) runtime = Runtime(marocco.default_wafer) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network —————————————————————————————————————————————————————————— pop = pynn.Population(1, pynn.IF_cond_exp, neuron_parameters) pop.record() pop.record_v() hicann = C.HICANNOnWafer(C.Enum(297)) marocco.manual_placement.on_hicann(pop, hicann) connector = pynn.AllToAllConnector(weights=1) duration = 1500.0
import os import numpy as np import pyhmf as pynn from pymarocco import PyMarocco from pymarocco.runtime import Runtime from pymarocco.results import Marocco from pyhalco_common import Enum from pyhalco_hicann_v2 import HICANNOnWafer, Wafer import pysthal from pysthal.command_line_util import init_logger init_logger("WARN", [("guidebook", "DEBUG"), ("marocco", "DEBUG"), ("Calibtic", "DEBUG"), ("sthal", "INFO")]) marocco = PyMarocco() runtime = Runtime(Wafer(int(os.environ.get("WAFER", 22)))) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network —————————————————————————————————————————————————————————— neuron_parameters = { 'cm': 0.2, 'v_reset': -70., 'v_rest': -20., 'v_thresh': -10, 'e_rev_I': -100., 'e_rev_E': 60., 'tau_m': 20., 'tau_refrac': 0.1, 'tau_syn_E': 5., 'tau_syn_I': 5.,
neuron_parameters = { 'cm': 0.2, 'v_reset': -70., 'v_rest': -20., 'v_thresh': -10, 'e_rev_I': -100., 'e_rev_E': 60., 'tau_m': 20., 'tau_refrac': 0.1, 'tau_syn_E': 5., 'tau_syn_I': 5., } marocco = PyMarocco() marocco.default_wafer = C.Wafer(int(os.environ.get("WAFER", 33))) runtime = Runtime(marocco.default_wafer) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network —————————————————————————————————————————————————————————— pop = pynn.Population(1, pynn.IF_cond_exp, neuron_parameters) pop.record() pop.record_v() hicann = C.HICANNOnWafer(C.Enum(297)) marocco.manual_placement.on_hicann(pop, hicann) connector = pynn.AllToAllConnector(weights=1) exc_spike_times = [