mu-perf-benchmarks issueshttps://gitlab.anu.edu.au/mu/mu-perf-benchmarks/-/issues2018-09-14T20:32:48+10:00https://gitlab.anu.edu.au/mu/mu-perf-benchmarks/-/issues/15Clock callback issue for Mu IR and wasm2018-09-14T20:32:48+10:00Zixian CaiClock callback issue for Mu IR and wasmBackground: we run fib benchmarks on different languages/implementations.
First problem I noticed is that when we use `clock_getttime` and compile through wasm toolchain, we always get `0.000000` as reading. Use `clock` instead of `cl...Background: we run fib benchmarks on different languages/implementations.
First problem I noticed is that when we use `clock_getttime` and compile through wasm toolchain, we always get `0.000000` as reading. Use `clock` instead of `clock_gettime` solved the problem. A possible cause is that wasm environment doesn't have access to some low-level things.
Then, we found that around 30% of the time, the executable produced by feeding handwritten Mu IR to Zebu gives `0.000000`. Following is the debug attempts:
- Changing `clock_gettime` to `clock` doesn't solve the problem
- John used Holstein and the problem could not be reproduced
- Yi used lldb with conditional breakpoint and found that sometimes even when the register containing the result is non-zero, we still got `0.000000` as reading.Yi LinYi Linhttps://gitlab.anu.edu.au/mu/mu-perf-benchmarks/-/issues/14Multiple iterations of fib are optimized way2018-09-14T20:32:48+10:00Zixian CaiMultiple iterations of fib are optimized wayhttps://gitlab.anu.edu.au/mu/mu-perf-benchmarks/blob/master/mubench/suite/micro/fib/fib.c
Under `clang -O3` , using scaling factor of 1 or 10 doesn't make much difference.https://gitlab.anu.edu.au/mu/mu-perf-benchmarks/blob/master/mubench/suite/micro/fib/fib.c
Under `clang -O3` , using scaling factor of 1 or 10 doesn't make much difference.https://gitlab.anu.edu.au/mu/mu-perf-benchmarks/-/issues/13incorrect type in mu callbacks2018-09-14T20:32:48+10:00Yi Linincorrect type in mu callbacksThe following instruction appears in `cb_init` from mu call backs: <br/>
> `(int<1>(%m.c.v.b.cmpres #1097) = SGT int<32>(%m.c.v.b.slen #1096) int<64>(0))`<br/>
It tries to compare int32 with int64.The following instruction appears in `cb_init` from mu call backs: <br/>
> `(int<1>(%m.c.v.b.cmpres #1097) = SGT int<32>(%m.c.v.b.slen #1096) int<64>(0))`<br/>
It tries to compare int32 with int64.John ZhangJohn Zhanghttps://gitlab.anu.edu.au/mu/mu-perf-benchmarks/-/issues/12Micro exception benchmark produces an error when run through mubench2018-09-14T20:32:48+10:00Isaac Garianoisaac@ecs.vuw.ac.nzMicro exception benchmark produces an error when run through mubenchWhen I run my new modified mubench through:
I get the following output:
```
[INFO] 2017-06-17 14:11:28,512 local Constructing a LocalRevision
[INFO] 2017-06-17 14:11:28,536 local Running tasks specified in file
[INFO] 2017-06-17 1...When I run my new modified mubench through:
I get the following output:
```
[INFO] 2017-06-17 14:11:28,512 local Constructing a LocalRevision
[INFO] 2017-06-17 14:11:28,536 local Running tasks specified in file
[INFO] 2017-06-17 14:11:28,537 taskset [except_rpyc] start task
[INFO] 2017-06-17 14:11:28,537 __init__ Running pypy /home/isaacg/mu-client-pypy/rpython/bin/rpython --backend=c -O3 --no-shared --output=example/targetexcept-c /home/isaacg/mu-perf-benchmarks/mubench/suite/micro/except/targetexcept.py ClockCallback
[INFO] 2017-06-17 14:12:59,388 __init__ Running example/targetexcept-c 6 1 2000 1
[INFO] 2017-06-17 14:12:59,688 taskset [except_rpyc] FAILED
[CRITICAL] 2017-06-17 14:12:59,689 taskset Executing 'example/targetexcept-c 6 1 2000 1' failed.
[INFO] 2017-06-17 14:12:59,690 taskset [except_rpyc] error output written to example/except_rpyc.log
[INFO] 2017-06-17 14:12:59,690 taskset [except_rpymu_zebu] start task
[INFO] 2017-06-17 14:12:59,691 __init__ Running pypy /home/isaacg/mu-client-pypy/rpython/bin/rpython --backend=mu --mu-impl=zebu --mu-suplibdir=example -O3 --no-shared --output=example/targetexcept-mu /home/isaacg/mu-perf-benchmarks/mubench/suite/micro/except/targetexcept.py ClockCallback
[INFO] 2017-06-17 14:13:48,812 __init__ Running example/targetexcept-mu 6 1 2000 1
[INFO] 2017-06-17 14:13:48,913 taskset [except_rpymu_zebu] FAILED
[CRITICAL] 2017-06-17 14:13:48,913 taskset Executing 'example/targetexcept-mu 6 1 2000 1' failed.
[INFO] 2017-06-17 14:13:48,914 taskset [except_rpymu_zebu] error output written to example/except_rpymu_zebu.log
[INFO] 2017-06-17 14:13:48,914 local Generating report, compare?: False
[INFO] 2017-06-17 14:13:48,915 utils Going through pipelines to process the report
[INFO] 2017-06-17 14:13:48,915 utils [('mubench.models.pipeline.LogOutputPipeline', 42)]
[INFO] 2017-06-17 14:13:48,916 pipeline Report for Revision: LocalRevision(example/test_except.yml)
```
The contents of the mentioned log files:
example/except_rpyc.log:
```
---------------- stdout ----------------
---------------- stderr ----------------
RPython traceback:
File "implement.c", line 84, in main
File "rpython_rtyper_lltypesystem.c", line 456, in ll_int__rpy_stringPtr_Signed
Fatal RPython error: ValueError
```
example/except_rpymu_zebu.log:
```
---------------- stdout ----------------
---------------- stderr ----------------
Caught exception: <ValueError object at 0x86f894>
```
When I run the programs directly (e.g. typing `example/targetexcept-c 6 1 2000 1` into my shell), I get no error message and they behave as expected.Isaac Garianoisaac@ecs.vuw.ac.nzIsaac Garianoisaac@ecs.vuw.ac.nz