Skip to content

deterministic evaluation of performance via instruction counting

Notifications You must be signed in to change notification settings

kaleidawave/depict

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Depict

Depict: deterministic evaluation of performance via instruction counting.

Important

Currently QBDI only works on ARM MacOs. SDE works on Linux and Windows. Using these requires additional tools or libraries present in paths. See issues.

A tool for benchmarking!

Modes:

  • SDE (x86 only)
  • QBDI

Required dependencies

QBDI

The tool is compiled. Not sure whether QBDI is required is needed but you can get it on macos here.

- name: Get and build QBDI (macos)
  if: ${{ matrix.os == 'macos-latest' }}
  run: |
    curl https://github.com/QBDI/QBDI/releases/download/v0.12.0/QBDI-0.12.0-osx-AARCH64.pkg -L > QBDI.pkg
    sudo installer -pkg QBDI.pkg -target ~

Runtime libraries are required adjacent to the binary.

On Windows: libqbdi_tracer.dll and QBDIWinPreloader.exe are required. On MacOS: libqbdi_tracer.dylib is required. On Linux libqbdi_tracer.so is required. They should be present in the releases assets section.

SDE

This uses an external binary.

You can download it here. sde must be under PATH or SDE_PATH

You can get it on GitHub actions with the following.

- name: Setup SDE binaries (linux or windows)
  if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'windows-latest' }}
  uses: petarpetrovt/setup-sde@v3.0
  with:
    environmentVariableName: SDE_PATH # default value is `SDE_PATH`
    sdeVersion: 9.58.0 # possible values: 9.58.0 (default), 9.33.0

TODO

  • Find some way to bundle the SDE and QBDI components
  • Explain difference between SDE and QBDI
  • Add wall-clock and unix-events tools
  • Get QBDI working on more platforms / backends

About

deterministic evaluation of performance via instruction counting

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published