-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
disable optimize
, may speed up
#93
Conversation
JET Benchmark ResultJudge resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
JET Benchmark ResultJudge resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
JET Benchmark ResultJudge resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/JET.jl/JET.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
|
Codecov Report
@@ Coverage Diff @@
## master #93 +/- ##
==========================================
- Coverage 83.67% 83.57% -0.11%
==========================================
Files 10 10
Lines 962 974 +12
==========================================
+ Hits 805 814 +9
- Misses 157 160 +3
Continue to review full report at Codecov.
|
The optimization for `JETInterpreter` was disabled by #93 for minor speed up, but it turns out there are following regressions: 1. error report accuracy regression 2. invalid code cache 1. error report accuracy regression The following piece of code will yield a false positive error ```julia julia> function foo(a) function bar(n) if n > 0 a = n end end bar(rand(Int)) return a end foo (generic function with 1 method) julia> using JET; report_call(foo, (Int,)) ═════ 1 possible error found ═════ ┌ @ REPL[1]:8 a │ local variable a is not defined └───────────── Any ``` While it would be definitely possible to improve our local under var detection logic and fix this, but I think to the previous approach (just ask the optimization step to reveal local under vars) is more reliable and the performance cost is negligible (What I really need to fix is explored in #90). 2. invalid code cache The current hack to forcibly cache unoptimized `CodeInstance` can lead to segmentation fault (while MRE no longer happens on the current master). But as far as JET relies on native code cache logic to restore reports, that should be removed.
The optimization for `JETInterpreter` was disabled by #93 for minor speed up, but it turns out there are following regressions: 1. error report accuracy regression 2. invalid code cache 1. error report accuracy regression The following piece of code will yield a false positive error ```julia julia> function foo(a) function bar(n) if n > 0 a = n end end bar(rand(Int)) return a end foo (generic function with 1 method) julia> using JET; report_call(foo, (Int,)) ═════ 1 possible error found ═════ ┌ @ REPL[1]:8 a │ local variable a is not defined └───────────── Any ``` While it would be definitely possible to improve our local under var detection logic and fix this, but I think to the previous approach (just ask the optimization step to reveal local under vars) is more reliable and the performance cost is negligible (What I really need to fix is explored in #90). 2. invalid code cache The current hack to forcibly cache unoptimized `CodeInstance` can lead to segmentation fault (while MRE no longer happens on the current master), or less performant self-profiling. As far as JET relies on native code cache logic to restore reports, that should be removed anyway.
The optimization for `JETInterpreter` was disabled by #93 for minor speed up, but it turns out there are following regressions: 1. error report accuracy regression 2. invalid code cache 1. error report accuracy regression The following piece of code will yield a false positive error ```julia julia> function foo(a) function bar(n) if n > 0 a = n end end bar(rand(Int)) return a end foo (generic function with 1 method) julia> using JET; report_call(foo, (Int,)) ═════ 1 possible error found ═════ ┌ @ REPL[1]:8 a │ local variable a is not defined └───────────── Any ``` While it would be definitely possible to improve our local under var detection logic and fix this, but I think to the previous approach (just ask the optimization step to reveal local under vars) is more reliable and the performance cost is negligible (What I really need to fix is explored in #90). 2. invalid code cache The current hack to forcibly cache unoptimized `CodeInstance` can lead to segmentation fault (while MRE no longer happens on the current master), or less performant self-profiling. As far as JET relies on native code cache logic to restore reports, that should be removed anyway.
No description provided.