dotnet / jitutils

MIT License
144 stars 59 forks source link

RLCSE: streaming SPMI mode #397

Closed AndyAyersMS closed 6 months ago

AndyAyersMS commented 6 months ago

Add support to use streaming SPMI servers. When enabled, RLCSE will launch one SPMI server process per core. Work dispatched to servers picks an idle server from the pool of servers. This greatly reduces the overhead of doing single-method evaluations.

SPMI streaming mode requires the changes in dotnet/runtime#98440.

Update the main Policy graident work loop and the greedy status loop to use the streaming mode, if enabled. MCMC can leverage this too, but I haven't done that just yet.

Add the ability to track server status.

Add the ability to log the server activity. The intent is that these logs can be replayed by a server instance to diagnose problems. This was useful during bring-up.

Add a running log of the Policy Gradient parameter values, so we can see how they change over time.

Refactor out some of the code in the main Policy Gradient loops.

AndyAyersMS commented 6 months ago

@EgorBo PTAL cc @dotnet/jit-contrib