forked from M-Labs/artiq
artiq_run: unbreak
This commit is contained in:
parent
4c6cad2977
commit
f26f446724
|
@ -171,7 +171,7 @@ class Target:
|
||||||
as results:
|
as results:
|
||||||
library = results["output"].read()
|
library = results["output"].read()
|
||||||
|
|
||||||
_dump(os.getenv("ARTIQ_DUMP_ELF"), "Shared library", ".so",
|
_dump(os.getenv("ARTIQ_DUMP_ELF"), "Shared library", ".elf",
|
||||||
lambda: library)
|
lambda: library)
|
||||||
|
|
||||||
return library
|
return library
|
||||||
|
|
|
@ -47,9 +47,9 @@ class StubEmbeddingMap:
|
||||||
|
|
||||||
|
|
||||||
class FileRunner(EnvExperiment):
|
class FileRunner(EnvExperiment):
|
||||||
def build(self):
|
def build(self, file):
|
||||||
self.setattr_device("core")
|
self.setattr_device("core")
|
||||||
self.setattr_argument("file")
|
self.file = file
|
||||||
self.target = OR1KTarget()
|
self.target = OR1KTarget()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -58,7 +58,8 @@ class FileRunner(EnvExperiment):
|
||||||
self.core.comm.load(kernel_library)
|
self.core.comm.load(kernel_library)
|
||||||
self.core.comm.run()
|
self.core.comm.run()
|
||||||
self.core.comm.serve(StubEmbeddingMap(),
|
self.core.comm.serve(StubEmbeddingMap(),
|
||||||
lambda addresses: self.target.symbolize(kernel_library, addresses))
|
lambda addresses: self.target.symbolize(kernel_library, addresses), \
|
||||||
|
lambda symbols: self.target.demangle(symbols))
|
||||||
|
|
||||||
|
|
||||||
class ELFRunner(FileRunner):
|
class ELFRunner(FileRunner):
|
||||||
|
@ -142,6 +143,9 @@ def get_argparser(with_file=True):
|
||||||
|
|
||||||
|
|
||||||
def _build_experiment(device_mgr, dataset_mgr, args):
|
def _build_experiment(device_mgr, dataset_mgr, args):
|
||||||
|
arguments = parse_arguments(args.arguments)
|
||||||
|
argument_mgr = ProcessArgumentManager(arguments)
|
||||||
|
managers = (device_mgr, dataset_mgr, argument_mgr)
|
||||||
if hasattr(args, "file"):
|
if hasattr(args, "file"):
|
||||||
is_elf = args.file.endswith(".elf")
|
is_elf = args.file.endswith(".elf")
|
||||||
is_ll = args.file.endswith(".ll")
|
is_ll = args.file.endswith(".ll")
|
||||||
|
@ -153,11 +157,11 @@ def _build_experiment(device_mgr, dataset_mgr, args):
|
||||||
raise ValueError("experiment-by-name not supported "
|
raise ValueError("experiment-by-name not supported "
|
||||||
"for precompiled kernels")
|
"for precompiled kernels")
|
||||||
if is_elf:
|
if is_elf:
|
||||||
return ELFRunner(device_mgr, dataset_mgr, file=args.file)
|
return ELFRunner(managers, file=args.file)
|
||||||
elif is_ll:
|
elif is_ll:
|
||||||
return LLVMIRRunner(device_mgr, dataset_mgr, file=args.file)
|
return LLVMIRRunner(managers, file=args.file)
|
||||||
elif is_bc:
|
elif is_bc:
|
||||||
return LLVMBitcodeRunner(device_mgr, dataset_mgr, file=args.file)
|
return LLVMBitcodeRunner(managers, file=args.file)
|
||||||
else:
|
else:
|
||||||
import_cache.install_hook()
|
import_cache.install_hook()
|
||||||
module = file_import(args.file, prefix="artiq_run_")
|
module = file_import(args.file, prefix="artiq_run_")
|
||||||
|
@ -165,16 +169,13 @@ def _build_experiment(device_mgr, dataset_mgr, args):
|
||||||
else:
|
else:
|
||||||
module = sys.modules["__main__"]
|
module = sys.modules["__main__"]
|
||||||
file = getattr(module, "__file__")
|
file = getattr(module, "__file__")
|
||||||
exp = get_experiment(module, args.experiment)
|
|
||||||
arguments = parse_arguments(args.arguments)
|
|
||||||
expid = {
|
expid = {
|
||||||
"file": file,
|
"file": file,
|
||||||
"experiment": args.experiment,
|
"experiment": args.experiment,
|
||||||
"arguments": arguments
|
"arguments": arguments
|
||||||
}
|
}
|
||||||
device_mgr.virtual_devices["scheduler"].expid = expid
|
device_mgr.virtual_devices["scheduler"].expid = expid
|
||||||
argument_mgr = ProcessArgumentManager(arguments)
|
return get_experiment(module, args.experiment)(managers)
|
||||||
return exp((device_mgr, dataset_mgr, argument_mgr))
|
|
||||||
|
|
||||||
|
|
||||||
def run(with_file=False):
|
def run(with_file=False):
|
||||||
|
|
Loading…
Reference in New Issue