darchr / AutoTM

Thinking is hard - automate it
MIT License
18 stars 3 forks source link

How to install and use ngraph here? #3

Open QYQ0909 opened 1 year ago

QYQ0909 commented 1 year ago

Hi,sir. I've tried to focus on the paper and install the AutoTM. But I met some problems about ngraph while installing.

  1. Run julia --color=yes setup.jl , the result is ERROR: LoadError: SystemError: opening file "/home/lthpc/qyq/autotm/AutoTM/deps/nGraph/deps/build.json": No such file or directory If it is showing that I haven't install the ngraph or other reasons?
  2. Run pip install --upgrade pip==19.3.1 and pip install ngraph-core (from https://github.com/NervanaSystems/ngraph), the result is ERROR: Could not find a version that satisfies the requirement ngraph-core (from versions: none) ERROR: No matching distribution found for ngraph-core If it is showing that nGraph has moved to OpenVINO and I can't install it in this way?
  3. When reading the code, I couldn't understand some functions (such as nGraph.compile) because I couldn't find the documentation about ngraph (https://www.ngraph.ai/ couldn't opended). I would appreciate it if you know how to find it.

Thanks a lot if you can help me.

hildebrandmw commented 1 year ago

Hi @QYQ0909, thank you for your interest! Unfortunately, much of the ecosystem related to nGraph, OpenVINO, Julia, C++ compilers etc. has changed over the last couple of years and this project has not been maintained over that period (see my response to this issue). To that end, I unfortunately would recommend that getting this project working again would not be an efficient use of time 😞.

However, I'm happy to answer any conceptual questions you might have about the code or the process 😄 .

I can provide some details regarding nGraph.compile. The AutoTM package used nGraph.jl as a front end for the ngraph compiler (which has since been moved to OpenVINO. I experimented some time ago with OpenVINO.jl mostly for fun, but that repository is very incomplete). Now, nGraph.jl would build the graph representation from Julia code using Cassette.jl to trace and override Julia function calls. A side-effect of this tracing is that a list of all input and output nodes would be collected.

The function nGraph.compile takes the given input and output nodes (which are implicitly linked with the computation graph), and compile a callable function implementing that computation graph.