1. 03 Apr, 2020 2 commits
  2. 02 Apr, 2020 7 commits
  3. 01 Apr, 2020 7 commits
  4. 30 Mar, 2020 6 commits
  5. 29 Mar, 2020 2 commits
  6. 28 Mar, 2020 5 commits
    • Regres: Generate coverage data on nightly runs · 536e2c80
      Ben Clayton authored
      Push this to https://github.com/swiftshader-regres/swiftshader-coverage so that it can be viewed at:
      https://swiftshader-regres.github.io/swiftshader-coverage/
      
      There's quite a lot of new code and fixes in this change. The most notable:
      * The regres daily run for the subzero backend now produces combined coverage information for all the test runs. The LLVM backend does not produce coverage information.
      * Regres now takes two additional command line arguments: `gh-user` and `gh-pass` for the swiftshader-regres account. If you omit these, then coverage will not be produced.
      * test.srcDir has been renamed to checkoutDir, as this was confusing with the `src` directory in the repo.
      * The coverage JSON now contains a root field to describe the git revision to which it relates. This prevents the coverage going out of sync with the source.
      * `git.CheckoutRemoteBranch()` drops back to a depth of 1 again. This was only increased to 99 to deal with issues checking out from gitlab, which we don't do any more.
      * Regres  now builds using `third_party/llvm-10.0`
      * Fixed the `--limit` regres command line flag which wasn't actually limiting, as it was using the len() on the number of groups, not the number of tests.
      
      Bug: b/152192800
      Bug: b/152339534
      Change-Id: I2d25735f485097d4efb080546d989056a3a8aab3
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43168
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarBen Clayton <bclayton@google.com>
    • Subzero Coroutines: Use ultra-low-level marl APIs · c346653b
      Ben Clayton authored
      Instead of using the `marl::Event` synchronization primitives, drop all the way down to using `marl::Scheduler::Fiber` APIs directly, and use the new `marl::Scheduler::Fiber::wait()` function that does not take a lock.
      
      Provides around another 2x performance boost:
      
      ```
      go run ./third_party/marl/tools/cmd/benchdiff/main.go pre.json post.json
      Delta                | Test name                                | (A) pre.json | (B) post.json
      -2.08x -81.186µs     | Coroutines/Fibonacci/iterations:512      | 156.202µs    | 75.016µs
      -2.10x -668.201µs    | Coroutines/Fibonacci/iterations:4096     | 1.275069ms   | 606.868µs
      -2.11x -5.359326ms   | Coroutines/Fibonacci/iterations:32768    | 10.166126ms  | 4.8068ms
      -2.12x -10.342µs     | Coroutines/Fibonacci/iterations:64       | 19.585µs     | 9.243µs
      -2.13x -2.784542745s | Coroutines/Fibonacci/iterations:16777216 | 5.251299045s | 2.4667563s
      -2.13x -347.220746ms | Coroutines/Fibonacci/iterations:2097152  | 653.812928ms | 306.592182ms
      -2.14x -43.615678ms  | Coroutines/Fibonacci/iterations:262144   | 82.017312ms  | 38.401634ms
      ```
      
      Bug: b/145754674
      Change-Id: I5f6b0c8c92af645cc2a825c6f1e2769b2440638e
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42850Tested-by: 's avatarBen Clayton <bclayton@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
    • Subzero: Ensure coroutines are same-thread. · 76e9e535
      Ben Clayton authored
      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: 's avatarBen Clayton <bclayton@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
    • Rename constant cache to snapshot cache · d53eecae
      Nicolas Capens authored
      This helps clarify that the cache is able to take snapshots of its
      contents, and this snapshot can be queried without the overhead of
      acquiring a mutex.
      
      Bug: b/131246679
      Change-Id: I4317628a22f70d37309908b24df62dc5ec5a946c
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42568
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
    • Add sampling routine documentation · 28f4ec36
      Nicolas Capens authored
      Bug: b/152424696
      Change-Id: Ib064ff7f6d88bf965e58c0b640cd90f7f1bc2d83
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42988Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarSean Risser <srisser@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
  7. 27 Mar, 2020 11 commits