glow
egg
glow | egg | |
---|---|---|
6 | 25 | |
3,151 | 1,239 | |
1.0% | 2.7% | |
8.2 | 6.8 | |
5 days ago | 7 days ago | |
C++ | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
glow
-
Accelerating AI inference?
Pytorch supports other kinds of accelerators (e.g. FPGA, and https://github.com/pytorch/glow), but unless you want to become a ML systems engineer and have money and time to throw away, or a business case to fund it, it is not worth it. In general, both pytorch and tensorflow have hardware abstractions that will compile down to device code. (XLA, https://github.com/pytorch/xla, https://github.com/pytorch/glow). TPUs and GPUs have very different strengths; so getting top performance requires a lot of manual optimizations. Considering the the cost of training LLM, it is time well spent.
-
Decompiling x86 Deep Neural Network Executables
It's pretty clear its referring to the output of Apache TVM and Meta's Glow
-
US government bans export of NVIDIA A100 to China and Russia, effective immediately
I also disagree with this. For example, Meta seems desperate about AI accelerators, and in fact is already doing "hardware customers develop software stack themselves" I mentioned above: Glow is that stack. Meta is doing Glow even if there is no promising AI accelerators right now, they are that desperate.
-
If data science uses a lot of computational power, then why is python the most used programming language?
For reference: In Tensorflow and JAX, for example, the tensor gets compiled to the intermediate XLA format (https://www.tensorflow.org/xla), then passed to the XLA complier (https://github.com/tensorflow/tensorflow/tree/master/tensorflow/compiler/xla/service) or the new TFRT runtime (https://github.com/tensorflow/runtime/blob/master/documents/tfrt_host_runtime_design.md), or some more esoteric hardware (https://github.com/pytorch/glow).
-
Esperanto Champions the Efficiency of Its 1,092-Core RISC-V Chip
The main reasons are hiring, and depth and breadth of the product.
Compilers are hard, device support is hard, the compiler community is small and closed source compilers quickly become weird tech islands.
https://github.com/pytorch/glow
- From Julia to Rust
egg
-
An Introduction to Graph Theory
Maybe program optimization?
https://egraphs-good.github.io/
- The E-graph extraction problem is NP-complete
-
What is the state of the art for creating domain-specific languages (DSLs) with Rust?
For semantic analyzers, check out egg and egglog. They're custom data structures for representing compiler rewrite rules in a non-destructive way.
-
Ask HN: What is new in Algorithms / Data Structures these days?
E-graphs are pretty awesome, and worth keeping in your back pocket. They're like union-find structures, except they also maintain congruence relations (i.e. if `x` and `y` are in the same set, then `f(x)` and `f(y)` must likewise be in the same set).
https://egraphs-good.github.io/
(Incidentally, union-find structures are also great to know about. But they're not exactly "new".)
-
What are the current hot topics in type theory and static analysis?
I would add that Equality saturation/E-graphs has become quite a hot topic recently, since their POPL21 paper, with workshops dedicated to applications of e-graphs. They have even recently been added to Cranelift as an IR for optimizations.
-
Compiler Optimizations Are Hard Because They Forget
Egraphs solve the rewrite ordering problem quite nicely. https://egraphs-good.github.io/
Note that one solution to this problem is to use equality saturation (which, coincidentally, has a great implementation in rust!).
-
Modularity in IR representation and modification
Have you thought about trying to parallelize e-graphs? This way you can do a bunch of rewrite rules in parallel and then extract your desired graph at the end instead of having conflicts.
-
Any recommendations for good resources that show how algorithms and data structures are converted into fpga circuits
I think the equality saturation papers are a good start. A good start is egg. They have a presentation, a research paper and code you can play with. I think ultimately you want to translate arithmetic operations into logical operation that can be understood by the fpga. So I think it would be good to research how adders and multipliers are implemented in logic and ultimately include equalities between adders/multipliers with their logical counterpart. Note the this translation also depends on the representations of your numbers and their bit width.
-
Strategies for doing symbolic integration algorithmically
For rewriting, you may also find interesing equality saturation: https://egraphs-good.github.io/
What are some alternatives?
tvm - Open deep learning compiler stack for cpu, gpu and specialized accelerators
prose - Microsoft Program Synthesis using Examples SDK is a framework of technologies for the automatic generation of programs from input-output examples. This repo includes samples and sample data for the Microsoft Program Synthesis using Example SDK.
serving - A flexible, high-performance serving system for machine learning models
Symbolics.jl - Symbolic programming for the next generation of numerical software
XLA.jl - Julia on TPUs
Catlab.jl - A framework for applied category theory in the Julia language
StaticArrays.jl - Statically sized arrays for Julia
Dagger.jl - A framework for out-of-core and parallel execution
runtime - A performant and modular runtime for TensorFlow
JET.jl - An experimental code analyzer for Julia. No need for additional type annotations.