Tullio is a very flexible einsum macro. It understands many array operations written in index notation -- not just matrix multiplication and permutations, but also convolutions, stencils, scatter/gather, and broadcasting. Used by itself the macro writes ordinary nested loops much like Einsum.@einsum. One difference is that it can parse more expressions, and infer ranges for their indices. Another is that it will use multi-threading (via Threads.@spawn) and recursive tiling, on large enough arrays.
Features
- It uses LoopVectorization.@avx to speed many things up
- It uses KernelAbstractions.@kernel to make a GPU version
- The macro also tries to provide a gradient for use with Tracker
- The entire right hand side is summed over the full possible range of any indices not appearing on the left
- Co-operates with various other packages
- One difference is that it can parse more expressions
Categories
Data VisualizationLicense
MIT LicenseFollow Tullio.jl
Other Useful Business Software
Earn up to 16% annual interest with Nexo.
Generate interest, borrow against your crypto, and trade a range of cryptocurrencies — all in one platform.
Geographic restrictions, eligibility, and terms apply.
Rate This Project
Login To Rate This Project
User Reviews
Be the first to post a review of Tullio.jl!