def get_sdram_usage_for_atoms(self, vertex_slice, graph): sdram_requirement = ( self._get_sdram_usage_for_neuron_params(vertex_slice) + ReceiveBuffersToHostBasicImpl.get_buffer_state_region_size(3) + PopulationPartitionedVertex.get_provenance_data_size( PopulationPartitionedVertex.N_ADDITIONAL_PROVENANCE_DATA_ITEMS) + self._synapse_manager.get_sdram_usage_in_bytes( vertex_slice, graph.incoming_edges_to_vertex(self)) + (self._get_number_of_mallocs_used_by_dsg( vertex_slice, graph.incoming_edges_to_vertex(self)) * common_constants.SARK_PER_MALLOC_SDRAM_USAGE)) # add recording SDRAM if not automatically calculated if not self._using_auto_pause_and_resume: spike_buffer_size = self._spike_recorder.get_sdram_usage_in_bytes( vertex_slice.n_atoms, self._no_machine_time_steps) v_buffer_size = self._v_recorder.get_sdram_usage_in_bytes( vertex_slice.n_atoms, self._no_machine_time_steps) gsyn_buffer_size = self._gsyn_recorder.get_sdram_usage_in_bytes( vertex_slice.n_atoms, self._no_machine_time_steps) sdram_requirement += recording_utils.get_buffer_sizes( self._spike_buffer_max_size, spike_buffer_size, self._enable_buffered_recording) sdram_requirement += recording_utils.get_buffer_sizes( self._v_buffer_max_size, v_buffer_size, self._enable_buffered_recording) sdram_requirement += recording_utils.get_buffer_sizes( self._gsyn_buffer_max_size, gsyn_buffer_size, self._enable_buffered_recording) else: sdram_requirement += self._minimum_buffer_sdram return sdram_requirement
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