-
Notifications
You must be signed in to change notification settings - Fork 124
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
OCaml 5.2 support #657
Comments
In addition to the missing Float16 pattern matches the C code has warnings from the K&R C style function declarations and incompatible pointer types. https://github.com/tmcgilchrist/owl/tree/ocaml_5_2 has basic fix for pattern matches in ef69ebe and silenced K&R C warnings in c3a3582 Haven't looked into the last warnings about incompatible pointer types.
I expect that proper Float16 support will need more work. |
Most scientific computing libraries support higher precision floating point operations (floats and doubles), to support float16 or bfloat16 or more exotic float8 the common BLAS functions has to be implemented with reduced precision. To support float16 now in Owl, the linear algebra operation can be done in higher precision (float32) by converting float16 array buffer to float32 array buffer and then stored back again in float16 array buffer. Raising precision would cause some overhead but not that much, also accumulation in higher precision (float32) is also more stable. This is what ml_types library does for accumulation. |
@mtk2xfugaku thank you for the details, that makes sense. |
@tmcgilchrist I cloned your branch and ran the tests and everything passes. Based on your experience, what else do you feel needs to be done before this can be merged?
In your opinion could this be left to a future project, or is this a necessary prerequisite before users of OCaml 5.2 can reliably use Owl? |
This compilation issue is fixed in the current Owl. |
OCaml 5.2 added support for float16 bigarrays and owl-base fails with:
The text was updated successfully, but these errors were encountered: