-
-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement specialized posit<16,2> addition #403
Merged
Ravenwater
merged 1 commit into
stillwater-sc:v3.74
from
davidmallasen:davidmallasen-v3.74
Dec 19, 2023
Merged
Implement specialized posit<16,2> addition #403
Ravenwater
merged 1 commit into
stillwater-sc:v3.74
from
davidmallasen:davidmallasen-v3.74
Dec 19, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I'll take a look at the golden reference path |
gnarly situation of crossing bad edits: turns out that the golden reference is ok, the failure is in the proper carry propagation in the exponent and regime, as shown here:
|
Ravenwater
added a commit
that referenced
this pull request
Jan 3, 2024
* Bumping SEMVER to v3.74.1 * removing extraneous function * adding QSNR to the benchmarking * adding range reporting for the Scalar type * adding elastic integer traits to try to disambiguate type_tag (not entirely successful yet) * compilation fix for gcc and clang * streamlining elastic binary integer API test * renaming Adaptive to Elastic * expanding QSNR experiment to sample across multiple sets * generalizing qsnr as a service * adding is_subnormal() attribute method * specialized posit<16,2> engineering * redefining nibble markers to be 0-based * WIP: fast posit<16,2> addition * restructuring specialized posits test infrastructure * adding a posit oracle as a separate data type to be used to validate specialized posits * adding a arithmetic debug test * Implement specialized posit<16,2> addition (#403) * rearchitecting the regression test suite to have a universal number system check * cleaning up include file dependencies * bug fix in the argument order of ReportBinaryArithmeticError as called in the posit test suite * WIP: bug fixes for add/sub, not quite there yet * compilation fix for gcc and clang * WIP: fast posit<16,2> subtraction checks * Implement specialized posit<16,2> sub, mul, div (#404) Div is not working 100% yet * enabling the regression level 1 again in specialized posit<16,2> while we are RCAing the div on extreme regime values * bug fix and reporting improvement of posit randoms * WIP: cleaning up posit<16,1> and posit<16,2> * adding a math library to the posito oracle so we can use it to compare native implementations * WIP: building test infrastructure to RCA specialized posit implementations * WIP: RCAing specialized posit<16,2> divide operator * adding multiplication tests for specialized posits * WIP: code hygiene for old posit code * WIP: redoing the fast posit<16,2> arithmetic operators * restoring the multiplication operator algorithm * configuring a regression test for fast posit multiplication * configuring a regression test for fast posit addition * test name edit * configuring a regression test for fast posit division: not enabled yet * adding a regression suite for fast posit subtraction * code hygiene for old posit code * bug fix in fast posit<32,2> that code hygiene activities had introduced * WIP: fixed bugs in regime and exponent fields for fast posit<16,2>, rounding still buggy * bug fix of bitnplusone calculation in divround of posit<16,2> * code hygiene posit<32,2> * bug fix div operator for fast posit<16,2> * adding new posit attribute functions: maxprecision_max/min, this is the largest value of Regime 0, and the smallest value of Regime -1 * adding full regression results for reference --------- Co-authored-by: David Mallasén Quintana <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Following issue #343 I implemented the specialized posit<16,2> addition following the guidelines from softposit. I think it is working correctly, but the tests are not computing the golden solution correctly. When I run the exhaustive tests with the
reportTestCases=true
, I get the following fails:Where I believe the computed value is correct and the golden one isn't.
I checked the
to_double()
function and it seems to be correct, but calls some other functions inposit_impl.hpp
that I don't know. Could you have a look at this @Ravenwater @theo-lemurian ?