Note: Community contributions shared here are not endorsed by the NGA team (unless explicitly stated) for posit compliance.
Team Members: Neil Ryan, Katie Lim, Gus Smith, Dan Petrisko (University of Washington)
Click Here to read paper/poster.
A parameterized Verilog HDL posit arithmetic core generator is developed for posit arithmetic (adder, multiplier and division arithmetic). These generators support the posit standard including rounding to nearest rounding method and can be used to generate the Verilog HDL for any combination of Word-Size (N) and Exponent-Size (ES).
A posit arithmetic emulator. Julia types for the C-based SoftPosit library.
An exploration of log domain "alternative floating point" for hardware ML/AI accelerators by Jeff Johnson of Facebook AI Research
Click Here to read paper
Click Here for article published
Tensorflow has been ported to support 16-bit posit.
This is the python wrapper (using SWIG) of SoftPosit. It works with both Python 2 and 3.
This is a fast posit C implementation of by S.H. Leong (Cerlane). It includes a C++ wrapper to override operators (slower) for easier use. Currently it supports 8-bit posit(es=0), 16-bit posit (es=1), 32-bit (es=2) and a flexible size type for 2 to 32-bit posits (es=2). For deep learning, please use quire for error free accumulations. Functionalities include add, subtract, divide, multiply, fused-multiply-add, fused-dot-products with quire, square root, conversion of types from double to posit and vice versa, round to nearest integer, convert to 32 bit integer and comparison (less than, less than equal and equal). Square root and round to nearest integer are written in collaboration with J. Gustafson. This software is endorsed by NGA.
This is an untitled verilog effort by Isaac Yonemoto, intended for Deep Learning applications Addition, Subtraction and Multiplication only.
This is a sigmoid function based on posit Julia implementation by Isaac Yonemoto.
This is a fast sigmoid function based on posit C++ implementation by Isaac Yonemoto.
This is a posit Javascript implementation of by S.H. Leong (Cerlane) to convert decimals to posits of different sizes and the generation of posit lookup table of varying sizes. A working version can be accessed in the "Knowledge Hub"->"Unum and Posit Widgets" section. These widgets have been tested for posit compliance (endorsed by NGA Team).
This is a Type II Unum implementiation using Python by Emanuele Ruffaldi.
This is a Type II Unum implementation using C++ by Emanuele Ruffaldi.
This is a Type II Julia implementation by Rex-Computing. Support for this work came in part from the following sources: DARPA Contract D15PC00135 awarded to REX Computing, Inc, DARPA Contract HR0011-17-9-0007 awarded to Etaphase, Inc.
This is a Python implementation of Unum (Pnums) by Jason Merrill. It is based on Type II Unum proposal but have several limitations and differences.
This is a Python port of the Mathematica unum prototype by Jeff Muizelaar.
This is a C implementation by Lawrence Livermore National Laboratory. It is based on Type I Unum and includes functions that support the creation of unums and conversion between unums and primitive 'C' types.
This is a Java implementation by Lawrence Livermore National Laboratory. It is based on Type I Unum.