Introduction
Hi, my name is David, and I’m in my 5th semester of the CPA program at Seneca. Over the last two terms, I worked as a Co-op student at Kinaxis as a Core Algorithm Developer, focusing on C++ and supply chain optimization. I’ve always loved programming, but my real passion is compilers. I think they represent some of the most beautiful and important work in modern software.
I’m taking this open source course because open source has had a huge impact on me personally and professionally. Over the past eight months, I’ve been actively contributing to LLVM, one of the world’s most influential compiler toolchains. I’ve mainly worked on Clang-Tidy, creating checks to modernize C++ code, and ClangIR, building platform-specific code generation for ARM, X86, and PTX. So far, I’ve opened more than 30 pull requests, and each contribution has been a chance to learn from the community and improve as a developer.
What attracted me to open source in the first place was the idea that I could not only learn from world-class codebases but also give back to them. There’s something really exciting about knowing that my code could end up helping developers across the globe. This term, I hope to deepen that involvement by collaborating with others in the class and getting into new projects, especially ones connected to compilers or developer tooling.
What do I want to achieve?
Well, I wanna keep enhancing my knowledge about the different open source communities. One of my objectives within this term is to contribute to one of the major ML compilers specifically IREE. I'll not get a lot into detail but it essentially allows us to run ML models tailored to different hardware architectures (GPU's, CPU's, TPU's) very efficiently. It will be certainly a challenge given that for some architectures like GPU's to put it lightly; code is executed differently since these accelerators execute in parallel.
The Open source project I chose
I chose Mojo.
Mojo It's a new programming language that attempts to get the most efficient performance out of hardware without compromising ergonomics. What I mean by ergonomics is: Syntax is quite simple. In fact It's mostly inspired by the simplicity of Python.
Mojo by itself is not only a general purpose programming language, Mojo has builtin GPU programming support and It's amazing. I believe It's the future of computing, I'll explain it very briefly.
Kernels are basically functions executed on a device(a GPU). Mojo allows the user to write kernels that can be run (As of now) in both NVIDIA and AMD hardware. The code written is portable amongst these GPU's Which is pretty unique if you wanted to run code For NVIDIA Gpu's you'd most likely need to rely on CUDA and for AMD ROCM(HIP). both which are variations from C++ specialized on parallel programming.
As I mentioned earlier, I really wish I can sharpen my knowledge in Open source in general and keep making an impact in more projects of my interest.
Top comments (0)