Skip to content

RoundingVariants performance comparison #14

@whirlicote

Description

@whirlicote

Here is the full code setup for compiling a performance comparison code example from CGAL.

Here is a collection of pointers:

  • two benchmark code calls
  • CGAL patches (C++ macro overrides for CGAL)
  • V8 (currently forked from 326f5f8c, changes till 6d0f69f2 (instruction clones + AVX512 calls))
  • chromium patches (there are no patches on chromium other than using the patched V8 version)
  • build instructions: (Everything is supposed to be self-contained. So having nix installed (e.g. Single-user installation) and calling the scripts in the repository (steps_3_build.sh, steps_4_host_bench_test.sh, ...) is supposed enable you to build everything.
  • for running the tests there is this fork with the RoundingVariants extension implemented

Regarding toolchain changes:

  • I used the keyword __attribute__((noinline, used, visibility("default"))) for instruction stubs
  • Then I used my fork of wabt to do an .wat roundtrip with patch_wasm_rounding.py
    • wasm2wat
    • patching callsites of the noinline variants with native instructions
    • wat2wasm

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions