示例#1
0
 def _get_sdram_usage_for_neuron_params(self, vertex_slice):
     per_neuron_usage = (
         self._input_type.get_sdram_usage_per_neuron_in_bytes() +
         self._threshold_type.get_sdram_usage_per_neuron_in_bytes())
     if self._additional_input is not None:
         per_neuron_usage += \
             self._additional_input.get_sdram_usage_per_neuron_in_bytes()
     return (
         (common_constants.DATA_SPECABLE_BASIC_SETUP_INFO_N_WORDS * 4) +
         ReceiveBuffersToHostBasicImpl.get_recording_data_size(3) +
         (per_neuron_usage * vertex_slice.n_atoms) +
         self._neuron_model.get_sdram_usage_in_bytes(vertex_slice.n_atoms))
示例#2
0
    def get_sdram_usage_for_atoms(self, vertex_slice, graph):
        poisson_params_sz = self.get_params_bytes(vertex_slice)
        total_size = \
            ((front_end_common_constants.
              DATA_SPECABLE_BASIC_SETUP_INFO_N_WORDS * 4) +
             ReceiveBuffersToHostBasicImpl.get_recording_data_size(1) +
             ReceiveBuffersToHostBasicImpl.get_buffer_state_region_size(1) +
             SpikeSourcePoissonPartitionedVertex.get_provenance_data_size(0) +
             poisson_params_sz)
        total_size += self._get_number_of_mallocs_used_by_dsg(
            vertex_slice, graph.incoming_edges_to_vertex(self)) * \
            front_end_common_constants.SARK_PER_MALLOC_SDRAM_USAGE

        if self._using_auto_pause_and_resume:
            total_size += self._minimum_buffer_sdram
        else:
            spike_buffer_size = self._spike_recorder.get_sdram_usage_in_bytes(
                vertex_slice.n_atoms, self._no_machine_time_steps)
            total_size += recording_utils.get_buffer_sizes(
                self._spike_buffer_max_size, spike_buffer_size,
                self._enable_buffered_recording)

        return total_size