Marl now has a new flag on the task to say that it should be run on the same thread that calls `marl::schedule()`. This can dramatically reduce the scheduling overhead when bouncing between two tasks, as other threads do not have to be woken. ``` > go run ./third_party/marl/tools/cmd/benchdiff/main.go pre.json post.json Delta | Test name | (A) pre.json | (B) post.json -15.53x -1m16.299750679s | Coroutines/Fibonacci/iterations:16777216 | 1m21.551049724s | 5.251299045s -15.71x -1.206771937s | Coroutines/Fibonacci/iterations:262144 | 1.288789249s | 82.017312ms -15.72x -9.624071378s | Coroutines/Fibonacci/iterations:2097152 | 10.277884306s | 653.812928ms -15.77x -35.755µs | Coroutines/Fibonacci/iterations:8 | 38.176µs | 2.421µs -15.77x -150.190662ms | Coroutines/Fibonacci/iterations:32768 | 160.356788ms | 10.166126ms -15.79x -18.864275ms | Coroutines/Fibonacci/iterations:4096 | 20.139344ms | 1.275069ms -15.93x -2.332202ms | Coroutines/Fibonacci/iterations:512 | 2.488404ms | 156.202µs -15.96x -292.896µs | Coroutines/Fibonacci/iterations:64 | 312.481µs | 19.585µs ``` Bug: b/145754674 Change-Id: I0e014083e1dbc9f5cdf51e7abc378df6be22d805 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42410Tested-by:Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| SubmoduleCheck/gtest | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| CPUID.cpp | Loading commit data... | |
| CPUID.hpp | Loading commit data... | |
| Coroutine.hpp | Loading commit data... | |
| Debug.cpp | Loading commit data... | |
| Debug.hpp | Loading commit data... | |
| EmulatedReactor.cpp | Loading commit data... | |
| EmulatedReactor.hpp | Loading commit data... | |
| ExecutableMemory.cpp | Loading commit data... | |
| ExecutableMemory.hpp | Loading commit data... | |
| LLVMJIT.cpp | Loading commit data... | |
| LLVMReactor.cpp | Loading commit data... | |
| LLVMReactor.hpp | Loading commit data... | |
| LLVMReactorDebugInfo.cpp | Loading commit data... | |
| LLVMReactorDebugInfo.hpp | Loading commit data... | |
| Nucleus.hpp | Loading commit data... | |
| Optimizer.cpp | Loading commit data... | |
| Optimizer.hpp | Loading commit data... | |
| Print.hpp | Loading commit data... | |
| Reactor.cpp | Loading commit data... | |
| Reactor.hpp | Loading commit data... | |
| Reactor.vcxproj | Loading commit data... | |
| Reactor.vcxproj.filters | Loading commit data... | |
| ReactorBenchmarks.cpp | Loading commit data... | |
| ReactorDebugInfo.cpp | Loading commit data... | |
| ReactorDebugInfo.hpp | Loading commit data... | |
| ReactorUnitTests.cpp | Loading commit data... | |
| ReactorUnitTests.vcxproj | Loading commit data... | |
| ReactorUnitTests.vcxproj.filters | Loading commit data... | |
| ReactorUnitTests.vcxproj.user | Loading commit data... | |
| Routine.hpp | Loading commit data... | |
| Subzero.vcxproj | Loading commit data... | |
| Subzero.vcxproj.filters | Loading commit data... | |
| SubzeroLLVMDependencies.vcxproj | Loading commit data... | |
| SubzeroLLVMDependencies.vcxproj.filters | Loading commit data... | |
| SubzeroReactor.cpp | Loading commit data... | |
| Traits.hpp | Loading commit data... | |
| Traits.inl | Loading commit data... | |
| x86.hpp | Loading commit data... |