repos
Parameterizing Branch-and-Bound Search Trees to Learn Branching Policies
angr is a platform-agnostic binary analysis framework
angr's power comes not from it being an emulator, but from being able to execute with what we call symbolic variables.
Apple AMX Instruction Set
potential target for low latency (or sparse?) stuff
SDSL - Succinct Data Structure Library
gonna need this sooner or later
GILP (Geometric Interpretation of Linear Programs)
just useful for learning about BB (what about interior point?)
Symbolic Fourier-Motzkin elimination
is this the actual basis of PIP?
Page-Visibility-User-Script
for hackerrank interviews...
islpy
Solve puzzles. Learn CUDA.
Clockwork: Polyhedral Analysis for Hardware Accelerators
AST-transformations (jetbrains)
can i use this for a better python ast? also https://plugins.jetbrains.com/docs/intellij/psi.html
Entropy-Directed Scheduling
implement for CIRCT?
Circle
Circle is a C++ bare metal programming environment for the Raspberry Pi.
Easy creation of custom import hooks to experiment on alternatives to Python's syntax
basically does rewrite on import which enables python files to host alternative syntax. kind of cute but not really what i want
Optimization Modulo Theories examples
static memory allocation problem can be formulated as LRA opt + XOR? also https://optimathsat.disi.unitn.it/.
Symbolic Fourier-Motzkin elimination
not sure
clan
Chunky Loop Analyzer: A Polyhedral Representation Extraction Tool for High Level Programs
compiling is annoying af
- python bindings
- use clan to analyze python for loops
langcc
A Next-Generation Compiler Compiler
- use it to parse python into MLIR (using mll)
The Yices SMT Solver
- extract the BDD and combine with PIP
Intel Extension for MLIR
- use the python frontend to lower to affine
SymEngine
if i'm gonna solve things symbolically (ie DSA) this might be useful
xeus-cling
just take for a test drive
Binary Decision Diagrams
use in combination with yices?
Parma Polyhedra Library (PPL)
how is it different from ISL? sage bindings?. also python bindings
TAMUparametric PPOPT
can this solve DSA?
VPL (Verified Polyhedra Library)
somewhere in here there's an implementation of a PIP solver
Polyhedral projection is a main operation of the polyhedron abstract domain. It can be computed via parametric linear programming (PLP), which is more efficient than the classic Fourier-Motzkin elimination method.
^ hmm is that really true? i thought one relied on the other?
related to this paper (An efficient parametric linear programming solver and application to polyhedral projection)
CuPPy
A naive implementation of the Gomory cutting plane algorithm
is this faster than solving the CSP?
The Dynamic Runtime Inlining (DRTI) project
The basic concept is to get the normal compiler front end like clang to emit its LLVM Intermediate Representation (IR) as a bitcode file, then run a custom LLVM pass over this to inject DRTI code at the appropriate places.
papers
SCIL - Symbolic Constraints in Integer Linear programming
also https://software.cs.uni-koeln.de/scil/documentation/html/main.html
Bounded Search and Symbolic Inference for Constraint Optimization
We present a novel algorithm for finite domain constraint optimization that generalizes branch-and-bound search by reasoning about sets of assignments rather than individual assignments.
High Throughput Low Latency Online Image Processing by GPU/FPGA Coprocessors Using RDMA Techniques
the next step of the low latency work
A Lightweight Symbolic Virtual Machine for Solver-Aided Host Languages
don't quite understand this but symbolic virtual machine is what i need for various parts of the static memory planning thing
Symbolic Optimization with SMT Solvers
An Efficient Parametric Linear Programming Solver and Application to Polyhedral Projection
Geometric Algorithm for Multiparametric Linear Programming
faster way to solve PIPs?
Reinforcement Learning for Integer Programming: Learning to Cut
approx method for solving ILPs (learning). probably not that easy to implement (gym env?)
Efficiently Solving Repeated Integer Linear Programming Problems by Learning Solutions of Similar Linear Programming Problems using Boosting Trees
approx method for solving ILPs (learning). probably easy to prototype using xgboost
Presburger Formulas and Polyhedral Compilation
isl official tutorial (read after completing pollylabs tuts)
Discovering faster matrix multiplication algorithms with reinforcement learning
Interestingly, AlphaTensor finds algorithms with a larger number of additions compared with Strassen-square (or equivalently, denser decompositions), but the discovered algorithms generate individual operations that can be efficiently fused by the specific XLA33 grouping procedure and thus are more tailored towards the compiler stack we use.
A Scalable Approach to Exact Resource-Constrained Scheduling Based on a Joint SDC and SAT Formulation
implement in CIRCT
maybe this can be done using or-tools?
maybe this can be done with https://github.com/siala/Hybrid-Mistral
Formulating Integer Linear Programs: A Rogues’ Gallery
just good to know
Symbolic Optimization with SMT Solvers
can this solve the DSA problem?
Lock-Free Data Structures
just good to know
Clockwork: Resource-Efficient Static Scheduling for Multi-Rate Image Processing Applications on FPGAs
implement in CIRCT
Macro-embedding Compiler Intermediate Languages in Racket
read after learning racket
books
CMSC 430: Design and Implementation of Programming Languages
racket class on implementing small languages
PURELY FUNCTIONAL DATA STRUCTURES
probably useful for lockfree?
Game Programming Patterns
just good to know
Optimizing Compilers for Modern Architectures
required reading but i'll probably never get to it?
Types and Programming Languages
required reading but i'll probably never get to it?
blags/websites
An Introduction to Binary Decision Diagrams
Building a Tiny Mutex
definitely need to know this for HFT
Race Conditions Can Be Useful for Parallelism
The Solid-State Register Allocator
suitable allocation algo for nns?
Static, Shared Dynamic and Loadable Linux Libraries
re the MLIR pass plugin project. also https://developer.ibm.com/tutorials/l-dynamic-libraries/
Practical Guide to Bare Metal C++
maybe for bare metal arm but also maybe bare metal gpu
Boosting Inline Packet Processing Using DPDK and GPUdev with GPUs
this is the next stage of the low latency project
also https://forums.developer.nvidia.com/t/boosting-inline-packet-processing-using-dpdk-and-gpudev-with-gpus/212943)) and Benchmarking GPUDirect RDMA on Modern Server Platforms
mp-LE, explicit solutions
can this solve the DSA problem?
Blossom algorithm
should probably know this after teaching rohan
Procedural Macros: Parsing custom syntax
learn in order to use rust a compiler. another source.
VLIW, Software Pipelining, and Limits to ILP
read in prep for luminous
hn post about autodiff in haskell
some useful discussion on symbolic autodiff
hn post about Measuring CPU core-to-core latency
useful for ... everything?
A look at the performance of expression templates in C++: Eigen vs Blaze vs Fastor vs Armadillo vs XTensor
probably inflated but worth a read
hn post about compiling Clang to WASM
compile MLIR to wasm in order to run in browser? maybe that's useless and just use torch-mlir wheels
PCIe latency
hack pcie to get lower than 0.5us latency
Simplification of Presburger formulas in practice
cs.theory discussing how presburger formulas actually work - including some discussion of BDDs