kerncraft/models/ecm.py
def conv_cy(self, cy_cl):
        """Convert cycles (cy/CL) to other units, such as FLOP/s or It/s."""
        if not isinstance(cy_cl, PrefixedUnit):
            cy_cl = PrefixedUnit(cy_cl, '', 'cy/CL')
        clock = self.machine['clock']
        element_size = self.kernel.datatypes_size[self.kernel.datatype]
        elements_per_cacheline = int(self.machine['cacheline size']) // element_size
        it_s = clock/cy_cl*elements_per_cacheline
        it_s.unit = 'It/s'
        flops_per_it = sum(self.kernel._flops.values())
        performance = it_s*flops_per_it
        performance.unit = 'FLOP/s'
        cy_it = cy_cl*elements_per_cacheline
        cy_it.unit = 'cy/It'

        return {'It/s': it_s,
                'cy/CL': cy_cl,
                'cy/It': cy_it,
                'FLOP/s': performance}
def conv_cy(self, cy_cl):
        """Convert cycles (cy/CL) to other units, such as FLOP/s or It/s."""
        if not isinstance(cy_cl, PrefixedUnit):
            cy_cl = PrefixedUnit(cy_cl, '', 'cy/CL')
        clock = self.machine['clock']
        element_size = self.kernel.datatypes_size[self.kernel.datatype]
        elements_per_cacheline = int(self.machine['cacheline size']) // element_size
        it_s = clock/cy_cl*elements_per_cacheline
        it_s.unit = 'It/s'
        flops_per_it = sum(self.kernel._flops.values())
        performance = it_s*flops_per_it
        performance.unit = 'FLOP/s'
        cy_it = cy_cl*elements_per_cacheline
        cy_it.unit = 'cy/It'

        return {'It/s': it_s,
                'cy/CL': cy_cl,
                'cy/It': cy_it,
                'FLOP/s': performance}
def conv_cy ( self , cy_cl ) : if not isinstance ( cy_cl , PrefixedUnit ) : cy_cl = PrefixedUnit ( cy_cl , '' , 'cy/CL' ) clock = self . machine [ 'clock' ] element_size = self . kernel . datatypes_size [ self . kernel . datatype ] elements_per_cacheline = int ( self . machine [ 'cacheline size' ] ) // element_size it_s = clock / cy_cl * elements_per_cacheline it_s . unit = 'It/s' flops_per_it = sum ( self . kernel . _flops . values ( ) ) performance = it_s * flops_per_it performance . unit = 'FLOP/s' cy_it = cy_cl * elements_per_cacheline cy_it . unit = 'cy/It' return { 'It/s' : it_s , 'cy/CL' : cy_cl , 'cy/It' : cy_it , 'FLOP/s' : performance }
Convert cycles (cy/CL) to other units, such as FLOP/s or It/s.
Convert cycles ( cy / CL ) to other units such as FLOP / s or It / s .