Shared events for synchronization + async eval (#998)

* more async eval

* fix rebase

* try correct async eval

* fix async

* more tests for async eval

* use shared events for synchronization

* comment + cleanup

* with autorelease pool

* fix no metal build

* fix compile

* fix patch

* don't eval if asyn evale'd

* don't use is_evaled

* comments

* more multi stream tests

* try and cleanup use of is_evaled

* use a status flag
This commit is contained in:
Awni Hannun
2024-04-17 06:16:02 -07:00
committed by GitHub
parent b18468bf81
commit 8a0677d56d
28 changed files with 424 additions and 125 deletions

View File

@@ -100,7 +100,7 @@ TEST_CASE("test jvp") {
auto fun1 = [](const array& x) {
auto y = 3 * x;
eval(y);
CHECK(y.is_evaled());
CHECK(y.is_available());
CHECK(y.has_primitive());
CHECK(y.is_tracer());
return 2 * y;
@@ -253,7 +253,7 @@ TEST_CASE("test grad") {
eval(y);
CHECK(x.is_tracer());
CHECK(!y.is_tracer());
CHECK(y.is_evaled());
CHECK(y.is_available());
CHECK(!y.has_primitive());
return square(x);
};
@@ -265,7 +265,7 @@ TEST_CASE("test grad") {
x = x + 2.0f;
eval(x);
CHECK(x.is_tracer());
CHECK(x.is_evaled());
CHECK(x.is_available());
CHECK(x.has_primitive());
return square(x);
};
@@ -1259,7 +1259,7 @@ TEST_CASE("test update state") {
grad(fn)(y);
eval(state);
CHECK(!state.has_primitive());
CHECK(state.is_evaled());
CHECK(state.is_available());
CHECK(array_equal(state, array({1.0, 1.0})).item<bool>());
}