artiq
Metatheory.jl
artiq | Metatheory.jl | |
---|---|---|
2 | 5 | |
403 | 334 | |
1.0% | 1.2% | |
9.6 | 8.1 | |
8 days ago | 6 days ago | |
Python | Julia | |
GNU Lesser General Public License v3.0 only | 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.
artiq
-
Senior FPGA Engineer in quantum computing startup, Oxfordshire UK
At Oxford Ionics we're looking for a senior FPGA engineer to work on our ARTIQ-based experimental control system and build our FPGA team. We're using Migen HDL and Python and software engineering knowledge are highly desirable. No prior quantum computing knowledge is required!
-
Show HN: prometeo – a Python-to-C transpiler for high-performance computing
No, I mean nanosecond and picosecond precision real-time systems. Exhibit A: https://github.com/m-labs/artiq
Metatheory.jl
-
[ANN] E-graphs and equality saturation: hegg 0.1
I'd love to see something in the lines of Julia's https://juliasymbolics.github.io/Metatheory.jl/dev/
-
Twitter Thread: Symbolic Computing for Compiler Optimizations in Julia
From that example you can see how this makes some rather difficult compiler questions all be subsumed in the e-graph saturation solve. That solve itself isn't easy, it's an NP-hard problem that requires good heuristics and such, and that's what Metatheory.jl, and that's what chunks of the thesis are about. But given a good enough solver, the ability to write such transformation passes becomes rather trivial and you get an optimal solution in the sense of the chosen cost function. So problems like enabling automatic FMA on specific codes is rather simple with this tool: just declare a*b + c = fma(a,b,c), the former is a cost of 2 the latter is a cost of one, and let it rip.
-
Show HN: prometeo – a Python-to-C transpiler for high-performance computing
Well IMO it can definitely be rewritten in Julia, and to an easier degree than python since Julia allows hooking into the compiler pipeline at many areas of the stack. It's lispy an built from the ground up for codegen, with libraries like (https://github.com/JuliaSymbolics/Metatheory.jl) that provide high level pattern matching with e-graphs. The question is whether it's worth your time to learn Julia to do so.
You could also do it at the LLVM level: https://github.com/JuliaComputingOSS/llvm-cbe
For interesting takes on that, you can see https://github.com/JuliaLinearAlgebra/Octavian.jl which relies on loopvectorization.jl to do transforms on Julia AST beyond what LLVM does. Because of that, Octavian.jl beats openblas on many linalg benchmarks
- From Julia to Rust
- Algebraic Metaprogramming in Julia with Metatheory.jl
What are some alternatives?
quantumcat - quantumcat is a platform-independent, open-source, high-level quantum computing library, which allows the quantum community to focus on developing platform-independent quantum applications without much effort.
JET.jl - An experimental code analyzer for Julia. No need for additional type annotations.
py2many - Transpiler of Python to many other languages
Dagger.jl - A framework for out-of-core and parallel execution
acados - Fast and embedded solvers for nonlinear optimal control
MacroTools.jl - MacroTools provides a library of tools for working with Julia code and expressions.
PhysAI - PhysAI is an open-source AI project that aims to link quantum mechanics and general relativity by generating, testing, and improving physical equations. It leverages machine learning, integrates with existing research, generates LaTeX documents, and encourages collaborative learning. It relies on community-driven contributions to improve accuracy.
StaticCompiler.jl - Compiles Julia code to a standalone library (experimental)
Octavian.jl - Multi-threaded BLAS-like library that provides pure Julia matrix multiplication
cqasm_development_interface - Framework for writing and running cQASM files against any Quantum Inspire's emulator backend via their API
SciMLBenchmarks.jl - Scientific machine learning (SciML) benchmarks, AI for science, and (differential) equation solvers. Covers Julia, Python (PyTorch, Jax), MATLAB, R