kayagokalp / fluido Goto Github PK
View Code? Open in Web Editor NEWAn equality-saturation based micro-fluidic mixing framework
An equality-saturation based micro-fluidic mixing framework
Currently volume is not encoded anywhere in the process which is invalid.
Currently only single output is given we need multiple outputs
as of #18 nix flake is broken, fails with:
error: builder for '/nix/store/bigjll2fjf9zn29fsrvhv90vqja5wxf4-rust-workspace-unknown.drv' failed with exit code 101;
last 10 log lines:
> ...
> ld: symbol(s) not found for architecture arm64
> clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
>
>
>
> error: aborting due to previous error
>
>
> [naersk] cargo returned with exit code 101, exiting
For full logs, run 'nix log /nix/store/bigjll2fjf9zn29fsrvhv90vqja5wxf4-rust-workspace-unknown.drv'.
#37 adds e2e test suite and ads a ci step to run them. It lacks caching which may end up speeding up things.
Currently we are using rewrite rules to create new fluids out of existing ones. Basically we insert only the initial fluid after doing that we are rewriting it to insert new ones until. Equality saturation is running better once we have rules that are making things simpler, not expanding them as we can do acylic egraphs etc to speed up things. Also it is easier to reason about so it might make sense to initially insert all the possible fluid concentrations (with limited scope)
Built in extractors are only extracting single design from e-graph. What I need is a way to iterate over these results because I have second cost function that can only be calculated over a complete design (storage allocation).
I have some number of phases in the code right now which started to make things interesting. So having a some sort of phase graph visualization would be helpful after #22 is implemented.
Currently dot output is printed directly, hide it under a flag.
As of #34 volume information is encoded into the fluids during saturation, but we are still not using this information during saturation to find better optimized mixer sequences
Sometimes we cannot find exact mixing operations. So a best effort option is provided to the user that gives the exact output concentration. But in reality we would only be able to use what we have in our hand and cannot generate the exact output but something close to it. We should output what we can generate that might not be exactly what we are looking for and report how well we did.
Currently fluido
crate is a binary parsing cli inputs and the driver of the different crates for search and storage allocation. I should introduce a driver/core crate that handles the driving of other crates and leave fludio crate only as an interface. Possibly rename it to fluido-cli.
Currently test suite is very limited, there should be some tests for saturation phase as well
Currently concentrations grow and shrink without any limit. We are possibly generating bunch of mixers that are not valid, because they are using concentrations higher than 1.0 or lower than 0.0. This will probably enable us to do much more finer granularity search in the same amount of time as all the time spent generating invalid mixers can be allocated to finer granularity search
Currently dependency graphs are not de-duplicated meaning that for each concentration that we use there is a separate node in the graph. This leads to duplicated store operations for the flat-ir. For example if 0 concentration is used, flat-ir crates multiple store ops that stores 0 concentration in separate storage units.
We can switch to 1/2, 1/4, 1/8 as incrementing steps rather than 0.1, 0.01.
Add ci step to generate coverage reports.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.