spcl / daceml

A Data-Centric Compiler for Machine Learning
https://daceml.readthedocs.io
BSD 3-Clause "New" or "Revised" License
81 stars 14 forks source link

compatible version of dace #130

Closed rohanrayan closed 1 year ago

rohanrayan commented 1 year ago

Which version of dace do I need to compile this with? With the latest version of dace (0.14.4) I get this error:

ModuleNotFoundError: No module named 'dace.codegen.targets.common'

tbennun commented 1 year ago

DaCeML is compatible with DaCe v0.13.*. If you install it with setup.py, it will use v0.14.* with backported fixes.

rohanrayan commented 1 year ago

Sorry I am still not able to get DaCeML installed. Any suggestions will be appreciated!

I tried a few things:

I first installed dace (v0.13) by cloning the repo and then using the setup.py script I then installed the ONNXruntime by cloning the modified version (https://github.com/orausch/onnxruntime.git), I built it for CPUs only

I then tried a few ways to install DaCeML:

  1. I tried -> pip install git+https://github.com/spcl/daceml
  2. I tried to clone the repository and then -> VENV_PATH='' make install
  3. I tried using the setup.py, but it keeps failing for me for some reason.

Both the steps 1 and 2 worked, but I still get the following error when trying -> from daceml.torch import dace_module Error:

ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 2 1 import torch.nn.functional as F ----> 2 from daceml.torch import dace_module

File ~/.local/lib/python3.8/site-packages/daceml/init.py:4 1 import os 2 import logging ----> 4 import daceml.transformation # this registers the transformations with dace 5 from dace import config 7 log = logging.getLogger(name)

File ~/.local/lib/python3.8/site-packages/daceml/transformation/init.py:1 ----> 1 from .constant_folding import ConstantFolding 2 from .input_to_constant import InputToConstant 3 from .parameter_to_transient import parameter_to_transient

File ~/.local/lib/python3.8/site-packages/daceml/transformation/constant_folding.py:19 16 from dace.transformation.passes import dead_dataflow_elimination 17 from dace.transformation import pass_pipeline ---> 19 import daceml.onnx as donnx 20 from daceml.onnx.binary_utilities.python_onnx_node_evaluation import evaluate_node 21 from daceml.onnx.converters import clean_onnx_name

File ~/.local/lib/python3.8/site-packages/daceml/onnx/init.py:3 1 from dace.library import register_library, _DACE_REGISTERED_LIBRARIES 2 from .environments import ONNXRuntime, ONNXRuntimeCUDA ----> 3 from .nodes import * 4 from .schema import onnx_representation, ONNXAttributeType, ONNXAttribute, ONNXTypeConstraint, ONNXParameterType, ONNXSchema, ONNXParameter 5 from .onnx_importer import ONNXModel

File ~/.local/lib/python3.8/site-packages/daceml/onnx/nodes/init.py:1 ----> 1 from .onnx_op import * 2 # we don't want to export ONNXOp 3 del globals()["ONNXOp"]

File ~/.local/lib/python3.8/site-packages/daceml/onnx/nodes/onnx_op.py:662 656 cls.register_implementation('onnxruntime', Expansion) 658 # Register pure implementations 659 ########################################## 660 661 # avoid import loop --> 662 from daceml.onnx.forward_implementation_abc import ONNXForward 664 registered = False 665 for impl, args in ONNXForward.extensions().items():

File ~/.local/lib/python3.8/site-packages/daceml/onnx/forward_implementation_abc.py:55 51 return impls 54 # register expansions ---> 55 import daceml.onnx.op_implementations

File ~/.local/lib/python3.8/site-packages/daceml/onnx/op_implementations/init.py:5 3 from .fpga_implementations import 4 from .img_op_implementations import ----> 5 from .cudnn_implementations import 6 from .criteria_implementations import

File ~/.local/lib/python3.8/site-packages/daceml/onnx/op_implementations/cudnn_implementations.py:6 4 import dace 5 from dace import SDFGState, nodes as nd, SDFG, dtypes, data as dt ----> 6 from dace.codegen.targets.common import sym2cpp 8 from daceml.onnx import environments 9 from daceml.onnx.converters import clean_onnx_name

ModuleNotFoundError: No module named 'dace.codegen.targets.common'

rohanrayan commented 1 year ago

I figured out my mistake. Sorry for the trouble.