コード例 #1
0
 def __init__(self,
              n_neurons,
              machine_time_step,
              timescale_factor,
              spikes_per_second,
              ring_buffer_sigma,
              constraints=None,
              label="SpikeSourcePoisson",
              rate=1.0,
              start=0.0,
              duration=None,
              seed=None):
     """
     Creates a new SpikeSourcePoisson Object.
     """
     AbstractPartitionableVertex.__init__(
         self,
         n_atoms=n_neurons,
         label=label,
         constraints=constraints,
         max_atoms_per_core=self._model_based_max_atoms_per_core)
     AbstractPopulationRecordableVertex.__init__(self, machine_time_step,
                                                 label)
     AbstractDataSpecableVertex.__init__(
         self,
         machine_time_step=machine_time_step,
         timescale_factor=timescale_factor)
     AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
     self._rate = rate
     self._start = start
     self._duration = duration
     self._seed = seed
コード例 #2
0
    def __init__(self,
                 n_neurons,
                 max_delay_per_neuron,
                 source_vertex,
                 machine_time_step,
                 timescale_factor,
                 constraints=None,
                 label="DelayExtension"):
        """
        Creates a new DelayExtension Object.
        """

        AbstractPartitionableVertex.__init__(self,
                                             n_atoms=n_neurons,
                                             constraints=constraints,
                                             label=label,
                                             max_atoms_per_core=256)
        AbstractDataSpecableVertex.__init__(
            self,
            machine_time_step=machine_time_step,
            timescale_factor=timescale_factor)
        AbstractProvidesIncomingEdgeConstraints.__init__(self)
        AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)

        self._max_delay_per_neuron = max_delay_per_neuron
        self._max_stages = 0
        self._source_vertex = source_vertex
        joint_constrant = PartitionerSameSizeAsVertexConstraint(source_vertex)
        self.add_constraint(joint_constrant)
コード例 #3
0
    def __init__(self,
                 n_neurons,
                 spike_times,
                 machine_time_step,
                 spikes_per_second,
                 ring_buffer_sigma,
                 timescale_factor,
                 port=None,
                 tag=None,
                 ip_address=None,
                 board_address=None,
                 max_on_chip_memory_usage_for_spikes_in_bytes=None,
                 space_before_notification=640,
                 constraints=None,
                 label="SpikeSourceArray"):
        if ip_address is None:
            ip_address = config.get("Buffers", "receive_buffer_host")
        if port is None:
            port = config.getint("Buffers", "receive_buffer_port")

        AbstractDataSpecableVertex.__init__(
            self,
            machine_time_step=machine_time_step,
            timescale_factor=timescale_factor)
        AbstractPartitionableVertex.__init__(
            self,
            n_atoms=n_neurons,
            label=label,
            max_atoms_per_core=self._model_based_max_atoms_per_core,
            constraints=constraints)
        AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
        self._spike_times = spike_times
        self._max_on_chip_memory_usage_for_spikes = \
            max_on_chip_memory_usage_for_spikes_in_bytes
        self._space_before_notification = space_before_notification

        self.add_constraint(
            TagAllocatorRequireIptagConstraint(ip_address,
                                               port,
                                               strip_sdp=True,
                                               board_address=board_address,
                                               tag_id=tag))

        if self._max_on_chip_memory_usage_for_spikes is None:
            self._max_on_chip_memory_usage_for_spikes = \
                front_end_common_constants.MAX_SIZE_OF_BUFFERED_REGION_ON_CHIP

        # check the values do not conflict with chip memory limit
        if self._max_on_chip_memory_usage_for_spikes < 0:
            raise ConfigurationException(
                "The memory usage on chip is either beyond what is supportable"
                " on the spinnaker board being supported or you have requested"
                " a negative value for a memory usage. Please correct and"
                " try again")

        # Keep track of any previously generated buffers
        self._send_buffers = dict()
    def __init__(self, machine_time_step, timescale_factor, spikes_per_second,
                 ring_buffer_sigma, n_neurons, label, spinnaker_link_id):

        if n_neurons != 20:
            print "Warning, this device has 20 neurons"

        AbstractVirtualVertex.__init__(self, n_neurons, spinnaker_link_id,
                                       label, n_neurons)
        AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
    def __init__(self, machine_time_step, timescale_factor, spikes_per_second,
                 ring_buffer_sigma, n_neurons, label,
                 spinnaker_link_id):

        if n_neurons != 20:
            print "Warning, this device has 20 neurons"

        AbstractVirtualVertex.__init__(self, n_neurons, spinnaker_link_id,
                                       label, n_neurons)
        AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
コード例 #6
0
    def __init__(
            self, n_neurons, spike_times, machine_time_step, spikes_per_second,
            ring_buffer_sigma, timescale_factor, port=None, tag=None,
            ip_address=None, board_address=None,
            max_on_chip_memory_usage_for_spikes_in_bytes=None,
            space_before_notification=640,
            constraints=None, label="SpikeSourceArray"):
        if ip_address is None:
            ip_address = config.get("Buffers", "receive_buffer_host")
        if port is None:
            port = config.getint("Buffers", "receive_buffer_port")

        AbstractDataSpecableVertex.__init__(
            self, machine_time_step=machine_time_step,
            timescale_factor=timescale_factor)
        AbstractPartitionableVertex.__init__(
            self, n_atoms=n_neurons, label=label,
            max_atoms_per_core=self._model_based_max_atoms_per_core,
            constraints=constraints)
        AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
        AbstractPopulationRecordableVertex.__init__(
            self, machine_time_step, label)
        self._spike_times = spike_times
        self._max_on_chip_memory_usage_for_spikes = \
            max_on_chip_memory_usage_for_spikes_in_bytes
        self._space_before_notification = space_before_notification

        self.add_constraint(TagAllocatorRequireIptagConstraint(
            ip_address, port, strip_sdp=True, board_address=board_address,
            tag_id=tag))

        if self._max_on_chip_memory_usage_for_spikes is None:
            self._max_on_chip_memory_usage_for_spikes = \
                front_end_common_constants.MAX_SIZE_OF_BUFFERED_REGION_ON_CHIP

        # check the values do not conflict with chip memory limit
        if self._max_on_chip_memory_usage_for_spikes < 0:
            raise ConfigurationException(
                "The memory usage on chip is either beyond what is supportable"
                " on the spinnaker board being supported or you have requested"
                " a negative value for a memory usage. Please correct and"
                " try again")

        if (self._max_on_chip_memory_usage_for_spikes <
                self._space_before_notification):
            self._space_before_notification =\
                self._max_on_chip_memory_usage_for_spikes

        # Keep track of any previously generated buffers
        self._send_buffers = dict()
        self._spike_recording_region_size = None
コード例 #7
0
 def __init__(self, binary, n_neurons, label, constraints,
              max_atoms_per_core, machine_time_step, timescale_factor,
              spikes_per_second, ring_buffer_sigma,
              master_pop_algorithm=None):
     AbstractSynapticManager.__init__(self, master_pop_algorithm)
     AbstractPartitionablePopulationVertex.__init__(
         self, n_atoms=n_neurons, label=label,
         machine_time_step=machine_time_step,
         timescale_factor=timescale_factor, constraints=constraints,
         max_atoms_per_core=max_atoms_per_core)
     AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
     self._binary = binary
     self._spikes_per_second = spikes_per_second
     self._ring_buffer_sigma = ring_buffer_sigma
コード例 #8
0
 def __init__(self, n_neurons, machine_time_step, timescale_factor,
              spikes_per_second, ring_buffer_sigma,
              constraints=None, label="SpikeSourcePoisson",
              rate=1.0, start=0.0, duration=None, seed=None):
     """
     Creates a new SpikeSourcePoisson Object.
     """
     AbstractPartitionableVertex.__init__(
         self, n_atoms=n_neurons, label=label, constraints=constraints,
         max_atoms_per_core=self._model_based_max_atoms_per_core)
     AbstractPopulationRecordableVertex.__init__(
         self, machine_time_step, label)
     AbstractDataSpecableVertex.__init__(
         self, machine_time_step=machine_time_step,
         timescale_factor=timescale_factor)
     AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
     self._rate = rate
     self._start = start
     self._duration = duration
     self._seed = seed
コード例 #9
0
    def __init__(self, n_neurons, max_delay_per_neuron, source_vertex,
                 machine_time_step, timescale_factor, constraints=None,
                 label="DelayExtension"):
        """
        Creates a new DelayExtension Object.
        """

        AbstractPartitionableVertex.__init__(self, n_atoms=n_neurons,
                                             constraints=constraints,
                                             label=label,
                                             max_atoms_per_core=256)
        AbstractDataSpecableVertex.__init__(
            self, machine_time_step=machine_time_step,
            timescale_factor=timescale_factor)
        AbstractProvidesIncomingEdgeConstraints.__init__(self)
        AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)

        self._max_delay_per_neuron = max_delay_per_neuron
        self._max_stages = 0
        self._source_vertex = source_vertex
        joint_constrant = PartitionerSameSizeAsVertexConstraint(source_vertex)
        self.add_constraint(joint_constrant)
コード例 #10
0
 def __init__(self,
              binary,
              n_neurons,
              label,
              constraints,
              max_atoms_per_core,
              machine_time_step,
              timescale_factor,
              spikes_per_second,
              ring_buffer_sigma,
              master_pop_algorithm=None):
     AbstractSynapticManager.__init__(self, master_pop_algorithm)
     AbstractPartitionablePopulationVertex.__init__(
         self,
         n_atoms=n_neurons,
         label=label,
         machine_time_step=machine_time_step,
         timescale_factor=timescale_factor,
         constraints=constraints,
         max_atoms_per_core=max_atoms_per_core)
     AbstractOutgoingEdgeSameContiguousKeysRestrictor.__init__(self)
     self._binary = binary
     self._spikes_per_second = spikes_per_second
     self._ring_buffer_sigma = ring_buffer_sigma