コード例 #1
0
    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))
コード例 #2
0
 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)
コード例 #3
0
    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))
コード例 #4
0
 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)