def get_sdram_usage_in_bytes(self, n_neurons, spikes_per_timestep): if not self.__record: return ConstantSDRAM(0) out_spike_bytes = int(math.ceil(n_neurons / 32.0)) * BYTES_PER_WORD return VariableSDRAM(0, (2 * BYTES_PER_WORD) + (out_spike_bytes * spikes_per_timestep))
def get_variable_sdram_usage(self, vertex_slice): """ :param ~pacman.model.graphs.common.Slice vertex_slice: :rtype: ~pacman.model.resources.VariableSDRAM """ fixed_sdram = 0 per_timestep_sdram = 0 for variable in self.__sampling_rates: rate = self.__sampling_rates[variable] fixed_sdram += self._get_fixed_sdram_usage(vertex_slice) if rate > 0: fixed_sdram += self._SARK_BLOCK_SIZE per_record = self.get_buffered_sdram_per_record( variable, vertex_slice) if rate == 1: # Add size for one record as recording every timestep per_timestep_sdram += per_record else: # Get the average cost per timestep average_per_timestep = per_record / rate per_timestep_sdram += average_per_timestep # Add the rest once to fixed for worst case fixed_sdram += (per_record - average_per_timestep) for variable in self.__per_timestep_recording: per_timestep_sdram += self.get_buffered_sdram_per_record( variable, vertex_slice) return VariableSDRAM(fixed_sdram, per_timestep_sdram)
def get_sdram_usage_in_bytes(self, n_neurons, spikes_per_timestep): """ :rtype: ~pacman.model.resources.AbstractSDRAM """ if not self.__record: return ConstantSDRAM(0) out_spike_bytes = (int(math.ceil(n_neurons / BITS_PER_WORD)) * BYTES_PER_WORD) return VariableSDRAM(0, (2 * BYTES_PER_WORD) + (out_spike_bytes * spikes_per_timestep))
def get_variable_sdram_usage(self, vertex_slice): fixed_sdram = 0 per_timestep_sdram = 0 for variable in self.__sampling_rates: rate = self.__sampling_rates[variable] fixed_sdram += self._get_fixed_sdram_usage(vertex_slice) if rate > 0: fixed_sdram += self.SARK_BLOCK_SIZE per_record = self.get_buffered_sdram_per_record( variable, vertex_slice) if rate == 1: # Add size for one record as recording every timestep per_timestep_sdram += per_record else: # Get the average cost per timestep average_per_timestep = per_record / rate per_timestep_sdram += average_per_timestep # Add the rest once to fixed for worst case fixed_sdram += (per_record - average_per_timestep) return VariableSDRAM(fixed_sdram, per_timestep_sdram)