Skip to content

ENH: isfinite() to API std#97

Merged
NaderAlAwar merged 1 commit intokokkos:developfrom
tylerjereddy:treddy_isfinite_api
Oct 5, 2022
Merged

ENH: isfinite() to API std#97
NaderAlAwar merged 1 commit intokokkos:developfrom
tylerjereddy:treddy_isfinite_api

Conversation

@tylerjereddy
Copy link
Copy Markdown
Contributor

  • changes needed to pass test_isfinite() in the array API conformance suite, and turn this test on in CI

  • this required me to write substantially more workunits/kernels for that ufunc, and to fill
    in some more gaps in the type info system, including the scalar int conversion for single-element views

@tylerjereddy
Copy link
Copy Markdown
Contributor Author

tylerjereddy commented Sep 29, 2022

I think the array API test suite is starting to share my viewpoint on the compiler ("compilation step") performance:

hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 7 valid examples in 32.11 seconds

tylerjereddy added a commit to tylerjereddy/pykokkos that referenced this pull request Sep 29, 2022
* as discussed briefly on Slack, this is a draft
branch for precompiling a subset of the ufuncs
to avoid JIT slowdown errors like the one
described here for the `hypothesis`-driven array
API conformance test suite:
kokkos#97 (comment)

* for now, this focuses on `pk.double` type in a single dimension,
simply because all ufuncs should support that for pre-compilation
at this time (we can broaden the dim/type pre-compile as ufuncs
gain more flexibile type/dim support)

* one major issue I see here is that I don't think the pre-compilation
will actually do anything useful yet because of how the `pk_cpp`
directory structures work on a per-module non-shared hierarchy
basis:
tylerjereddy added a commit to tylerjereddy/pykokkos that referenced this pull request Oct 4, 2022
* this is in part a copy of the NumPy patch applied at:
numpy/numpy#22365
and is related to this failure we were seeing with
`hypothesis`: kokkos#65 (comment)

* the standard section related to this is:
https://data-apis.org/array-api/latest/future_API_evolution.html#versioning

* unpin `hypothesis` in our CI as a result; to be fair,
this is the solution @ShahzadUmair wanted from the start
I think

* the updated testing behavior required me to cherry-pick
some data type info improvements from kokkosgh-97
* changes needed to pass `test_isfinite()` in the array
API conformance suite, and turn this test on in CI

* this required me to write substantially more
workunits/kernels for that ufunc, and to fill
in some more gaps in the type info system, including
the scalar `int` conversion for single-element views
@tylerjereddy
Copy link
Copy Markdown
Contributor Author

I rebased/updated/force-pushed. This already has an approval, but I'd like to see CI flush through again after the update (maybe be some delay with actions at the moment because of a degraded performance report: https://www.githubstatus.com/).

@NaderAlAwar NaderAlAwar merged commit d2e254a into kokkos:develop Oct 5, 2022
@tylerjereddy tylerjereddy deleted the treddy_isfinite_api branch October 5, 2022 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants