Data Science Night: xtensor and jet
- Wolf Vollprecht
In order to catch a great speaker who is leaving the country, we are swapping around our usual talk topics. This talk falls into "Data Science", rather than the previously scheduled beginner talk. We are sure you will enjoy it!
xtensor and jet : bringing NumPy to C++ and JIT compiled C++ to Python
xtensor is a C++ linear algebra library offering a unifying interface to data science for Python (NumPy), R and Julia. We are aiming for feature and API parity with NumPy and are borrowing NumPy's expressiveness for the C++ world. In this talk I will present the three features that make xtensor unique:
- ND-Arrays in C++ (most other C++ libraries only offer 2- to 3D)
- NumPy style broadcasting
- Lazy evaluation of expressions
xtensor is of great interest for those who want to write high speed libraries for Python, Julia and R, as we offer very simple ways to plug C++ code into Python/Julia or R. For Python, this is implemented in the xtensor-python module which allows to modify NumPy arrays in place, as will be demonstrated during the talk. xtensor-python also offers the easiest way to create NumPy style ufuncs. All of this enables the write-once-use-everywhere paradigm for Data Science libraries.
jet is a new take on a JIT. Borrowing ideas from TensorFlow and Theano, it consists of a small Python library which effectively records a graph of NumPy operations and rewrites them in C++ source code. The C++ is then compiled using an optimizing compiler, and a Python module is created and imported.Using this method, we have been able to speed up numeric problems in tight loops up to 20 times. Currently, jet is using Armadillo as a C++ linalg backend, but obviously this is supposed to change in the near future to xtensor. jet is used for numeric optimizations on physical systems and robotic controllers.
Wolf is currently finishing his Master in Robotics, Systems and Controls at ETH Zurich. Right now he is visiting the Autonomous Systems Lab at Stanford where he writes his master thesis on the subject of autonomous cars, and tries to make autonomous cars smarter by using machine learning to infer the intent of human drivers in certain scenarios. He is passionate about robots, open source libraries and free distribution of education and knowledge worldwide.
- Video of Presentation
- From YouTube
- 7:00 pm Networking and food
- 7:15 pm Announcements and presentation
- 8:45 pm Random access
- 9:00 pm Event ends
- Meeting Room:
- Yosemite Room