Khushiyant

Research Intern, GSoC 2024 Contributor

email: khushiyant2002@gmail.com

Education: B.Tech in Computer Science and Engineering, G.G.S.I.P.U, India

Ongoing project: STL/Eigen - Automatic conversion and plugins for Python based ML-backends
Cppyy is an automatic, run-time, Python-C++ bindings generator, for calling C++ from Python and Python from C++. Cppyy uses pythonized wrappers of useful classes from libraries like STL and Eigen that allow the user to utilize them on the Python side. Current support follows container types in STL like std::vector, std::map, and std::tuple and the Matrix-based classes in Eigen/Dense. These cppyy objects can be plugged into idiomatic expressions that expect Python builtin-types. This behaviour is achieved by growing pythonistic methods like len while also retaining its C++ methods like size. Efficient and automatic conversion between C++ and Python is essential towards high-performance cross-language support. This approach eliminates overheads arising from iterative initialization such as comma insertion in Eigen. This opens up new avenues for the utilization of Cppyy’s bindings in tools that perform numerical operations for transformations, or optimization. The on-demand C++ infrastructure wrapped by idiomatic Python enables new techniques in ML tools like JAX/CUTLASS. This project allows the C++ infrastructure to be plugged into at service to the users seeking high-performance library primitives that are unavailable in Python.

Project Proposal: URL

Mentors: Vassil Vassilev, Wim Lavrijsen, Aaron Jomy, Jonas Rembser

Presentations



STL/Eigen - Automatic conversion and plugins for Python based ML-backends in cppyy, Slides, Team Meeting, 29 May 2024