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

Project Samples

Project Activity

See All Activity >

License

MIT License

Follow Tullio.jl

Tullio.jl Web Site

Other Useful Business Software
Earn up to 16% annual interest with Nexo. Icon
Earn up to 16% annual interest with Nexo.

Access competitive interest rates on your digital assets.

Generate interest, borrow against your crypto, and trade a range of cryptocurrencies — all in one platform. Geographic restrictions, eligibility, and terms apply.
Get started with Nexo.
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Tullio.jl!

Additional Project Details

Programming Language

Julia

Related Categories

Julia Data Visualization Software

Registered

2023-11-06