Exemple #1
0
def main(*args):
    """run ctree utility stuff, currently only the project generator"""

    if sys.argv:
        args = sys.argv[1:]

    parser = argparse.ArgumentParser(prog="ctree", description="ctree is a python SEJITS framework")
    parser.add_argument('-sp', '--startproject', help='generate a specializer project')
    parser.add_argument(
        '-wu', '--wattsupmeter', help="start interactive watts up meter shell", action="store_true"
    )
    parser.add_argument('-p', '--port', help="/dev name to use for wattsup meter port")
    parser.add_argument('-v', '--verbose', help='show more debug than you like', action="store_true")
    parser.add_argument('-dc', '--disable_cache', help='disable and delete the persistent cache', action="store_true")
    parser.add_argument('-ec', '--enable_cache', help='enable the persistent cache', action="store_true")
    parser.add_argument('-cc', '--clear_cache', help='clear the persistent cache', action="store_true")
    args = parser.parse_args(args)

    if args.startproject:
        specializer_name = args.startproject

        print("create project specializer %s" % specializer_name)

        builder = Builder("create", specializer_name, verbose=args.verbose)
        builder.build(None, None)

    elif args.wattsupmeter:
        from ctree.metrics.watts_up_reader import WattsUpReader

        port = args.port if args.port else WattsUpReader.guess_port()
        meter = WattsUpReader(port_name=port)
        meter.interactive_mode()

    elif args.enable_cache:
        ctree.CONFIG.set("jit", "CACHE", value="True")
        write_success = write_to_config('jit', 'CACHE', True)
        if write_success:
            print("[SUCCESS] ctree caching enabled.")

    elif args.disable_cache:
        wipe_cache()
        ctree.CONFIG.set("jit", "CACHE", value="False")
        write_success = write_to_config('jit', 'CACHE', False)
        args.clear_cache = True
        if write_success:
            print("[SUCCESS] ctree caching disabled.")

    elif args.clear_cache:
        wipe_cache()

    else:
        parser.print_usage()
Exemple #2
0
def main(*args):
    """run ctree utility stuff, currently only the project generator"""

    if sys.argv:
        args = sys.argv[1:]

    parser = argparse.ArgumentParser(prog="ctree", description="ctree is a python SEJITS framework")
    parser.add_argument('-sp', '--startproject', help='generate a specializer project')
    parser.add_argument(
        '-wu', '--wattsupmeter', help="start interactive watts up meter shell", action="store_true"
    )
    parser.add_argument('-p', '--port', help="/dev name to use for wattsup meter port")
    parser.add_argument('-v', '--verbose', help='show more debug than you like', action="store_true")
    parser.add_argument('-dc', '--disable_cache', help='disable and delete the persistent cache', action="store_true")
    parser.add_argument('-ec', '--enable_cache', help='enable the persistent cache', action="store_true")
    parser.add_argument('-cc', '--clear_cache', help='clear the persistent cache', action="store_true")
    args = parser.parse_args(args)

    if args.startproject:
        specializer_name = args.startproject

        print("create project specializer %s" % specializer_name)

        builder = Builder("create", specializer_name, verbose=args.verbose)
        builder.build(None, None)

    elif args.wattsupmeter:
        from ctree.metrics.watts_up_reader import WattsUpReader

        port = args.port if args.port else WattsUpReader.guess_port()
        meter = WattsUpReader(port_name=port)
        meter.interactive_mode()

    elif args.enable_cache:
        ctree.CONFIG.set("jit", "CACHE", value="True")
        write_success = write_to_config('jit', 'CACHE', True)
        if write_success:
            print("[SUCCESS] ctree caching enabled.")

    elif args.disable_cache:
        wipe_cache()
        ctree.CONFIG.set("jit", "CACHE", value="False")
        write_success = write_to_config('jit', 'CACHE', False)
        args.clear_cache = True
        if write_success:
            print("[SUCCESS] ctree caching disabled.")

    elif args.clear_cache:
        wipe_cache()

    else:
        parser.print_usage()
Exemple #3
0
    def __call__(self, A, B):
        """C = A * B"""
        from ctypes import c_double, byref

        C = np.zeros(shape=A.shape, dtype=A.dtype)
        duration = c_double()
        meter = WattsUpReader()
        meter.start_recording()
        self.c_dgemm(C, A, B, byref(duration))
        joules = meter.get_recording()[0].joules
        seconds = duration.value
        self.c_dgemm.report(time=seconds, energy=joules)
        return C, seconds, joules, self.c_dgemm._current_config
Exemple #4
0
    def __call__(self, A, B):
        """C = A * B"""
        from ctypes import c_double, byref

        C = np.zeros(shape=A.shape, dtype=A.dtype)
        duration = c_double()
        meter = WattsUpReader()
        meter.start_recording()
        self.c_dgemm(C, A, B, byref(duration))
        joules = meter.get_recording()[0].joules
        seconds = duration.value
        self.c_dgemm.report(time=seconds, energy=joules)
        return C, seconds, joules, self.c_dgemm._current_config
Exemple #5
0
class Meter(object):
    def __init__(self, use_energy=False):
        self.time_meter = c_double()
        self.use_energy = use_energy
        self.energy_meter = WattsUpReader() if self.use_energy else None

    def start_recording(self):
        if self.use_energy:
            self.energy_meter.start_recording()

    def time_value(self):
        return self.time_meter.value

    def energy_value(self):
        if self.use_energy:
            return self.energy_meter.get_recording()[0].joules
        else:
            return 0.0
Exemple #6
0
class Meter(object):
    def __init__(self, use_energy=False):
        self.time_meter = c_double()
        self.use_energy = use_energy
        self.energy_meter = WattsUpReader() if self.use_energy else None

    def start_recording(self):
        if self.use_energy:
            self.energy_meter.start_recording()

    def time_value(self):
        return self.time_meter.value

    def energy_value(self):
        if self.use_energy:
            return self.energy_meter.get_recording()[0].joules
        else:
            return 0.0
Exemple #7
0
def main(*args):
    """run ctree utility stuff, currently only the project generator"""

    if sys.argv:
        args = sys.argv[1:]

    parser = argparse.ArgumentParser(
        prog="ctree", description="ctree is a python SEJITS framework")
    parser.add_argument('-sp',
                        '--startproject',
                        help='generate a specializer project')
    parser.add_argument('-wu',
                        '--wattsupmeter',
                        help="start interactive watts up meter shell",
                        action="store_true")
    parser.add_argument('-p',
                        '--port',
                        help="/dev name to use for wattsup meter port")
    parser.add_argument('-v',
                        '--verbose',
                        help='show more debug than you like',
                        action="store_true")
    args = parser.parse_args(args)

    if args.startproject:
        specializer_name = args.startproject

        print "create project specializer %s" % specializer_name

        builder = Builder.Builder("create",
                                  specializer_name,
                                  verbose=args.verbose)

        builder.build(None, None)
    elif args.wattsupmeter:
        from ctree.metrics.watts_up_reader import WattsUpReader

        port = args.port if args.port else WattsUpReader.guess_port()
        meter = WattsUpReader(port_name=port)
        meter.interactive_mode()
    else:
        parser.print_usage()
Exemple #8
0
 def __init__(self, use_energy=False):
     self.time_meter = c_double()
     self.use_energy = use_energy
     self.energy_meter = WattsUpReader() if self.use_energy else None
Exemple #9
0
 def __init__(self, use_energy=False):
     self.time_meter = c_double()
     self.use_energy = use_energy
     self.energy_meter = WattsUpReader() if self.use_energy else None