`perf_counters` are handled as a special case for invocation descriptions.
Closed this issue · 0 comments
stevenjswanson commented
You can't run a piece of code with different sets of perf counters. For instance, this doesn't work:
run(b, "foo", perf_counters=arg_map([[cycles], [instructions]])
The underlying problem is that arg_map
treats singles values as lists of length 1:
>>> arg_map(a=1)
[{'a': 1}]
For perf_counters
the desired behavior would be
>>> arg_map(a=[4])
[{'a': [4]}]
But, instead we get
>>> arg_map(a=[4])
[{'a': 4}]
run_list()
circumvents this problems by not passing the perf_counter
argument through arg_map()
.