announcing Triton VM v0.40.0
⚓ Triton VM 📅 2024-04-16 👤 jfs 👁️ 201Triton VM v0.40.0 is now live. The main highlights are:
Performance
This release fixes a previously unknown performance bottleneck when proving programs that perform a lot of RAM I/O. One such program is Triton VM’s very own recursive verifier, making this performance boost mission critical.
As another perfomance highlight, Triton VM now consumes considerably less RAM when proving the correct execution of a program.
Profiling
The profiler for Triton assembly programs now reports not only the clock cycle contribution of any encountered subroutine, but the contribution to any of parts critical for prover performance.
On any Triton VM program, you can execute .profile()
to get the new report. The Display
implementation of that report gives you a markdown table listing all the new goodies.
Full Changelog
✨ Features
- (!) Generate profiles despite unfinished tasks (f7ebd2cb)
- (!) Streamline accessing AET’s heights (3f3a9fd1)
- (!) Track all relevant tables in VM profiler (fa38fa8b)
🐛 Bug Fixes
- (!) Don’t treat randomizer polynomial special (9bbe963b)
⚡️ Performance
- Minimize squeezes for combination weights (50b803c7)
- Re-organize prover steps (86a7799f)
- (test) Use minimal size for quotient domain (727ff8ec)
- Use faster polynomial coset evaluation (29849abe)
- Compute Bézout coefficients faster (652b7e9c)
📚 Documentation
- Add rationale for performed DEEP updates (74814884)
- Update documentation of
MasterTable
(d5c2049c) - Describe computation of Bézout coefficients (06123843)
⚙️ Miscellaneous
- Use fewer glob
use
s (9ca39513) - (!) (circuit) Use challenge’s index (e05e3ff3)
- (!) (circuit) No
Challenges
inevaluate
(15a8cd7f) - Use constant “lookup table height” more (22834b03)
- Benchmark Bézout coefficient computation (ab135be4)
♻️ Refactor
- Deprecate method
num_quotients()
(363ae773) - (!) Use
BFieldElement
s everywhere (05bd271a) - (!) Make
ProofStream
non-generic (bde928d4) - (!) Remove deprecated type aliases (14d08ef8)
- (!) Rename
TableId
variants (c265cf4d) - Bypass quotient table (ff305459)
✅ Testing
- Benchmark program with lots of memory I/O (c7613878)
🎨 Styling
- Improve readability of
.verify()
slightly (e0ac1096)