The Torch-MLIR project aims to provide first class support from the PyTorch ecosystem to the MLIR ecosystem.
 
 
 
 
 
 
Go to file
Stella Laurenzo f514bd533d Add a helper run_lit.sh for interactive debugging. 2020-04-26 18:41:44 -07:00
include/npcomp Add stub numpy dialect. 2020-04-26 17:20:58 -07:00
lib Add npcomp-opt and lit runner. 2020-04-26 17:55:15 -07:00
python Add stub numpy dialect. 2020-04-26 17:20:58 -07:00
test Add npcomp-opt and lit runner. 2020-04-26 17:55:15 -07:00
tools Add a helper run_lit.sh for interactive debugging. 2020-04-26 18:41:44 -07:00
.clang-format Add stub numpy dialect. 2020-04-26 17:20:58 -07:00
.gitignore Add stub numpy dialect. 2020-04-26 17:20:58 -07:00
CMakeLists.txt Add npcomp-opt and lit runner. 2020-04-26 17:55:15 -07:00
README.md Update readme with simple config 2020-04-26 16:32:10 -07:00

README.md

npcomp - An aspirational MLIR based numpy compiler

Scratch-pad of build configurations that have worked

Quick start

export LLVM_SRC_DIR=/path/to/llvm-project
./tools/install_mlir.sh
./tools/cmake_configure.sh

cd build
ninja
./python/run_tests.py

Installing pybind11

The native extension relies on pybind11. In a perfect world, this could just be installed with your system package manager. However, at least on Ubuntu Disco, the system package installed with broken cmake files.

I built/installed from pybind11 head without issue and put it in /usr/local. There are better ways to do this.

Building the python native library

# From the build directory
ninja NPCOMPNativePyExt
# Outputs to tools/npcomp/python/npcomp/native...so
export PYTHONPATH=$(pwd)/tools/npcomp/python
python3 -m npcomp.smoketest

Notes:

  • Python sources are symlinked to the output directory at configure time. Adding sources will require a reconfigure. Editing should not.
  • It is a very common issue to have both python 2.7 (aka. "python") and python 3.x (aka. "python3") on a system at a time (and we can only hope that one day this ends). Since the native library at development time binds to a specific version, if you try to run with a different python, you will get an error about the "native" module not being found.