Code Monkey home page Code Monkey logo

fpbench's Introduction

FPBench

FPBench makes it easier to compare and combine tools from the floating-point research community by developing common standards and benchmark suites.

Build Status

Standards

The FPBench standards are documented in www/spec/. FPBench currently contains three standards:

  • FPCore describes floating-point computations. FPCore is a simple S-expression functional programming language and can represent arithmetic, transcendental operators, loops, and conditionals.
  • Metadata describe the provenance and interpretation of FPCore computations.
  • Measures describe accuracy measurements for FPCore computations. Several measures are standardized.

Each standard has achieved 1.0 status and can be used by implementations.

Benchmarks

The FPBench benchmarks are located in benchmarks/ in FPCore format.

FPBench contains 72 benchmarks from four sources (FPTaylor, Herbie, Salsa, and Rosa) covering a variety of application domains and the full complement of FPCore features.

Tools

The FPBench tools are located in tools/, and make it easier to write, test, and use FPCore computations. These tools include:

  • fpcore.rkt runs FPCore computations and can be used as a reference for FPCore implementation work.
  • core2c.rkt exports FPCore computations to C

These tools are documented in www/tools.html.

FPBench also ships with a set of tools based on the FPImp intermediate language. FPImp is an imperative extension to FPCore which makes translating C, Fortran, Matlab, or other imperative languages to FPCore simpler. FPImp is documented in www/fpimp.html, and FPBench ships with tools for manipulating FPImp programs:

  • fpimp.rkt runs FPImp programs
  • imp2core.rkt compiles FPImp to FPCore

We recommend using FPImp only for writing FPCore computations; FPImp is not a standard and we do not recommend using it in other tools.

Papers

Toward a Standard Benchmark Format and Suite for Floating-Point Analysis, at NSV’16, by N. Damouche, M. Martel, P. Panchekha, C. Qiu, A. Sanchez-Stern, and Z. Tatlock

Described the FPBench standards project, including the FPCore standard. The standards (in www/spec) continue this work.

Combining Tools for Optimization and Analysis of Floating-Point Computations, at FM’18, by H. Becker, P. Panchekha, E. Darulova, and Z. Tatlock

Described experiments combining Daisy and Herbie using the FPBench format and tools. All scripts are available in the daisy_herbie branch.

Helping Out

FPBench is organized on our mailing list where we discuss work in progress, edit proposed standards, and announce major improvements. Email us if you have questions or would like to get involved!

fpbench's People

Contributors

billzorn avatar bmkessler avatar hazardouspeach avatar heikobecker avatar jasonqiu95 avatar mmartel66 avatar monadius avatar ndamouche avatar pavpanchekha avatar ztatlock avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.