You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IIRC the way Mixtape is currently doing overlays breaks with dynamic function calls, and thus is not dynamically correct.
Case function passed as arguemt
f(func, args...) = func(args...)
Case function not inferrable
function f(x)
g = rand() < 0.5 ? sin : cos
g(x)
end
The way to fix this (I realized this morning) is to replace all f(args...) with lookup_in_ctx(Ctx, f)(args...) and then writing an inference rule that turns lookup_in_ctx(Ctx, f) into the result of the overlay table. Ctx should be the type and you shan't be allowed to make runtime decisions.
The text was updated successfully, but these errors were encountered:
@vchuravy should this functionality (Mixtape) even live externally from GPUCompiler?
The reason why I ask this is because of AbsInt composition issues outside of native pipeline -- here this is a package with another interpreter (which prevents, I presume, usage of Mixtape and Enzyme, or Mixtape and JET).
And regarding Tom's recent PR: tshort/StaticCompiler.jl#69 I wonder if putting it somewhere close to GPUCompiler is a better idea.
IIRC the way Mixtape is currently doing overlays breaks with dynamic function calls, and thus is not dynamically correct.
The way to fix this (I realized this morning) is to replace all
f(args...)
withlookup_in_ctx(Ctx, f)(args...)
and then writing an inference rule that turnslookup_in_ctx(Ctx, f)
into the result of the overlay table.Ctx
should be the type and you shan't be allowed to make runtime decisions.The text was updated successfully, but these errors were encountered: