Yesterday marked Mojo🔥's first birthday 🎂, launching last year on May 2, 2023. We launched with just an online Jupyter environment and have since released the SDK locally for macOS and Linux on arm64 and x86, and bought up our inference and serving stack MAX⚡️. Yesterday we released Mojo and MAX 24.3 to mark the occasion, along with the first community contributions, 32 of which made it into the official changelog. We're so excited to go on this journey out in the open with our amazing community, thank you to everyone who has been participating!
Blogs, Tutorials, and Videos
- Read our blog on what’s New in Mojo 24.3.
- Learn about a new feature in MAX 24.3: Engine Extensibility.
- Watch an in-depth interview about Mojo and MAX from Kris Jenkins Developer Voices podcast with Chris Lattner.
- Read an X tutorial for bit operations on SIMD values and integers.
- Check out our blog on multimodal search with Snowflake embedding and MAX Engine.
- Learn about how we prevent supply chain attacks at Modular.
- Chris talked about programming and AI at Startup Grind.
- RD4com created a tutorial on parameterizing and compile time constraining a Mojo app.
Awesome Mojo
- Vladyslav updated mojo-atol-simd and it's now up to 20% faster than the stdlib.
- Benny added flag features to his Mojo CLI library prism.
- Alex updated mojo-pytest with support for the latest 24.3 release.
- MadAlex has continued development on his numpy-like Mojo library with up to 6x better performance: NuMojo.
MAX Engine
- ONNX
- 20% speedup for llama2 & mistral-7b
- 20% speedup on stable-diffusion
- 25-45% speedups on image encoders
- 25-45% speedups on dynamically-quantized transformers
- PyTorch
- 20% speedups for mistral-7b
- 20% speedup on llama2
- 25% speedup on dlrm-rm2-multihot
- 25% speedup on replit-3b
Open Source Contributions
- Gabriel had 10 PRs merged!
- #2454: Allow StringRef to work with both Int8 and UInt8
- #2451: Removed FileCheck from the dev guide
- #2448: Allow String() to be created from UInt8 ptr and List too
- #2407: Use UnsafePointer in builtin_list.mojo
- #2405: Use UnsafePointer in _cpython.mojo
- #2404: Use UnsafePointer in info.mojo and some test files
- #2403: Use UnsafePointer in hex|io|os.mojo
- #2402: Replace Pointer by UnsafePointer in hash|simd.mojo
- #2361: Add repr() function and Representable trait
- #2024: Remove FileCheck in test_object.mojo and removed object.print()
- #2364 mikowals: add b64decode
- #2315 mikowals: SIMD.shuffle with StaticIntTuple mask
- #2294 lsh: Create InlineArray type
- #2190 arvindavoudi: Add new ComparableCollectionElement trait and index(list, value, start, end) function APIs